RCE.SU - реверсинг, кодинг, выделенные сервера, ICQ, proxy

Нет! Вампирам. Регистрируем Net Vampire 3.3

Продолжаем борьбу с баннерными прогами...

Инструменты: DeDe, Softice

Снова банер... Уберем его.
Тут я изощерятся с поиском банеров не буду. Я просто зарегю Net Vampire. Берем Dede и декомпилим вампира. Оказывается он написан на Delphi 3!!!! Видать чувак реально легализовался, так что денег на лицензионный 5 или 6 Delphi у него нету, и пишет на том что лицензировано. Заходим во вкладку Procedures. Там выбираем Unit "AboutDlg" дальше щелкаем на event "FormCreate" и видим:

0048C46F   A1A0C94A00             mov     eax, dword ptr [$4AC9A0]
0048C474   833800                 cmp     dword ptr [eax], +$00
0048C477   7432                   jz      0048C4AB 	<- Если не зарегено то прыгнем
0048C479   8D45F4                 lea     eax, [ebp-$0C]
0048C47C   50                     push    eax

* Reference to pointer to GlobalVar_004ADA60
|
0048C47D   A1A0C94A00             mov     eax, dword ptr [$4AC9A0]
0048C482   8B00                   mov     eax, [eax]
0048C484   8945EC                 mov     [ebp-$14], eax
0048C487   C645F00B               mov     byte ptr [ebp-$10], $0B
0048C48B   8D55EC                 lea     edx, [ebp-$14]
0048C48E   33C9                   xor     ecx, ecx

* Possible String Reference to: 'Registered to %s' <- а сюда дойдем если не прыгнем jz 0048C4AB
|
0048C490   B8D4C44800             mov     eax, $0048C4D4
Самое итересное хранится по адресу который попадает в eax тут:
0048C46F   A1A0C94A00             mov     eax, dword ptr [$4AC9A0]
Поставив bpx на 0048C46F и вызвав потом About мы получим что в eax будет 4ADA60. Т.е. данные по этому адресу влияют на зарегеность. Когда прога не зарегена - там ноль. Но не стоит пытаться записать туда 1 в надежде что прога зарегится :) Тут все несколько по-другому.

Попробуем зарегится нормальным способом :) Нет, номер покупать не надо :))) Просто зайдем в регистрацию и введем имя и номер от фонаря. Вампир скажет что проверит номер при перезапуске. Как тока мы так "зарегились" был создан файл VAMPIRE.key. Когда мы запустим вампира он проверит номер, узнает что номер не тот и удалит этот файл :( Нехорошо, а может и хорошо. "Регимся" снова. Выходим и ставим bpx deletefilea. Запускаем вампира. Айс сработает по адресу 48BF92. Жмем F12 два раза. И видим:

0049AF5D   E87A0FFFFF             call    0048BEDC
0049AF62   A1A0C94A00             mov     eax, dword ptr [$4AC9A0]
0049AF67   833800                 cmp     dword ptr [eax], +$00
0049AF6A   7521                   jnz     0049AF8D
опять mov eax, dword ptr [$4AC9A0]. И опять EAX=4ADA60. Это как раз и была проверка... Значит если в результате проверки ключевого файл - не правильный, то его удаляют. Значит перед тем как удалить файл где-то идет проверка. Интересно что будет если не дать удалить файл? Регимся. Ставим bpx на 0049AF5D и на Deletefilea. Запускаем вампира снова. Опять айс. Заходим в call 0048BEDC и идем через F10 пока найдем call где будет вызвана Deletefilea. Вот она родная:
0048BF4A   E8C17EF7FF             call    00403E10 - проверка
0048BF4F   7405                   jz      0048BF56 - прыгаем если все OK
0048BF51   E89EEDF7FF             call    0040ACF4 - а тут удаляется файл
Меняем jz на jmp и... Радуемся :) Зарегилось!


<= Вернуться к статьям


Rambler's Top100