ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > Реверсинг
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Снятие с QIP проверки CRC
  #1  
Старый 17.02.2009, 11:19
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию Снятие с QIP проверки CRC

Небольшая заметка по модификации QIP


Бывает такое, что необходимо чтото подправить в интерфейсе QIP. И вот вы берете какой нибудь редактор ресурсов типа ResHack, подправляете то, что вам нужно, сохраняете и.... при запуске qip орет Sorry, qip.exe file is corrupted

Для того чтобы снять проверку CRC нам потребуются 2 вещи:
1) Cам qip.exe
2) Отладчик OllyDbg

Для теста был взят QIP 8080

Шаг 1: Открываем qip.exe в OllyDbg. Ждем, пока пройдет анализ кода и нас не кинет на точку входа в программу.
Шаг 2: Необходимо найти часть, где располагается сообщение об ошибке в памяти. Для этого в окне CPU нажимаем комбинацию клавиш Ctrl+B (поиск бинарных данных). В открывшемся окне в поле ASCII вписываем текст Sorry, qip.exe file is corrupted и нажимаем OK. Результатом выполнения будет код на экране примерно таков:
Код:
00604FEC   . 53 6F 72 72 79 2>ascii   "Sorry, qip.exe f"
00604FFC   . 69 6C 65 20 69 7>ascii   "ile is corrupted"
0060500C   . 2E 00            ascii   ".",0
0060500E     00               db      00
Как мы видим, по адресу 00604FEC располагается начало нашей строки.
Шаг 3: Теперь нам нужно найти команду, в которой используется этот адрес.
Для этого выделяем адрес начала строки (00604FEC) и нажимаем Ctrl+R (поиск ссылки для этого адреса). В результате откроется окно с командами, где используется этот адрес и их адрес в памяти. Мы видим следующую картину:
References in qip:CODE to 00604FEC
Address Disassembly Comment
00604F1F mov edx, 604FEC ASCII "Sorry, qip.exe file is corrupted."
00604FEC ascii "Sorry, qip.exe f" (Initial CPU selection)
Теперь мы знаем, что наш текст был записан в регистр командой mov edx, 604FEC находящейся по адресу 00604F1F. Делаем двойной клик на этой строке, чтобы переместиться на тот участок кода.
Теперь в окне CPU мы можем наблюдать часть кода:
Код:
$-1C     >|. 55               push    ebp
$-1B     >|. 68 CA4F6000      push    604FCA
$-16     >|. 64:FF30          push    dword ptr fs:[eax]
$-13     >|. 64:8920          mov     dword ptr fs:[eax], esp
$-10     >|. E8 70FFFFFF      call    00604E84                         ;  qip.00604E84
$-B      >|. 84C0             test    al, al
$-9      >   75 1D            jnz     short 00604F35                   ;  qip.00604F35
$-7      >|. 6A 00            push    0
$-5      >|. B9 D84F6000      mov     ecx, 604FD8                      ;  ASCII "Bad qip.exe file"
$ ==>    >|. BA EC4F6000      mov     edx, 604FEC                      ;  ASCII "Sorry, qip.exe file is corrupted."
$+5      >|. A1 A0BD6900      mov     eax, dword ptr ds:[69BDA0]
$+A      >|. 8B00             mov     eax, dword ptr ds:[eax]
$+C      >|. E8 342EE8FF      call    00487D64                         ;  qip.00487D64
$+11     >|. E8 EFFCDFFF      call    00404C24                         ;  qip.00404C24
$+16     >|> 8D55 F4          lea     edx, dword ptr ss:[ebp-C]
$+19     >|. A1 A0BD6900      mov     eax, dword ptr ds:[69BDA0]
$+1E     >|. 8B00             mov     eax, dword ptr ds:[eax]
Шаг 4: Теперь необходимо найти условие, по которому данный код выполняется или не выполняет. Для этого перемещаемся выше по коду в поисках инструкций условного перехода j**
Сразу замечаем, что выше есть инструкция:
$-9 > 75 1D jnz short 00604F35 ; qip.00604F35
Которая, как бы перепрыгивает код вывода сообщения.
Шаг 5: Изменяем логику проверки инструкции на противоположную.
jnz(если не равно нулю) мы должны заменить её на jz(равно нулю) Для этого двойным щелчком открываем окно редактирования, где изменяем jnz на jz и нажимаем на кнопку Assemble, а потом Cancel(Отмена).
Шаг 6: Вроде всё хорошо, но изменения, которые мы сделали, находятся пока что только в оперативной памяти. Для сохранения изменений в файле необходимо в контекстном меню выбрать пункт Copy to executable file. В открывшемся окне , в контекстном меню выбираем пункт Save File, и сохраняем с именем qip1.exe. Теперь появится файл qip1.exe в, котором будет отключена проверка CRC. Теперь можно закрыть отладчик.

Вот и всё ) (С) SLESH
 
Ответить с цитированием

  #2  
Старый 17.02.2009, 15:09
-c0d3r-
Новичок
Регистрация: 11.02.2009
Сообщений: 19
Провел на форуме:
18184

Репутация: 3
Отправить сообщение для -c0d3r- с помощью ICQ
По умолчанию

Слеш ты как всегда на высоте - спасибо именно это мне и нужно было
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Официальное заявление ICQ: использовать QIP — опасно xxxPixelxxxx Мировые новости 63 14.11.2009 04:13
QIP PDA Build 1000 (Testers Build) rijy ICQ 7 05.01.2007 20:27
Qip теперь для КПК и смартфонов. m0le[x] Новости мира "железа" 1 16.12.2006 08:44
QIP 2005 Build 7970. †Romi4† ICQ 0 05.09.2006 22:43



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ