Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

АРХИВ ФОРУМА eXeL@B
https://exelab.ru/f/

   

Gloomy Хитрый наг (C++ Builder) Исследую прогу Open Book


Gloomy Хитрый наг (C++ Builder) Исследую прогу Open Book (http://www.vinidiktov.ru/d/openbook.exe 1,1 Mb), пакована аспром, stripper ее спокойно берет. А вот после распаковки начинаются чудеса - прога показывает наг что осталось -1 дней и закрывается. Проблема в том что определение того что именно появится - наг или главное окно зависит от значения регистров и переменных, т.е. подделать их не получается - код слишком навороченный и хитровыделанный. Как такое можно обойти?
И еще: хотел поставить бряк на RegQueryValueExA а в списке импорта только несколько безымянных функций и бряк не ставится. Как быть?
KLAUS :: Попробуй отыскать где время определяется используя (может поможет):
bpint 21 if ah==2A (DOS)
bpx GetLocalTime
bpx GetFileTime
bpx GetSystemtime
bpx GetTickCount
bpx FileTimeToSystemTime

При Флагах в регистрах: bpx cs:eip if EAX==0

Gloomy :: KLAUS
Спасибо, ты указал правильный путь - постоянно сидя в отладчике напрочь забываешь о таких простых вещах как Api-шпион

KLAUS :: Базара нет, случается......

Gloomy :: Дату откатывать бесполезно - прога явно шизанулась после распаковки - ставлю любую дату - все равно »-1» день показывает. Ни в реестр ни в файлы ничего не пишет и ничего не проверяет, считает время только по системной дате. И очень уж изнеженная - чуток значение регистра подправишь - и вот тебе, бабушка, и access violation

MozgC [TSRh] :: Stripper дампит в тот момент когда в двух ячейках, где хранится сколько дней осталось, лежат числа FFFFFFF
Эти ячейка найти и исправить можно найдя апи аспра, которая и записывает в них кол-во оставшихся дней.
Либо лучше распаковывать самому и все будет ок.

Mario555 :: Вручную распаковать не получается (пока), stolen bytes какие-то извратные, да и спать уже хочется.
Если stripper’ом, то наг убирается так:

0040122A FF15 BC524B00 CALL DWORD PTR DS:[4B52BC] ; _Open_Bo.004011AD

на

0040122A . E8 D9FEFFFF CALL _Open_Bo.00401108
0040122F . 90 NOP

потом ещё занопить 00401253 CALL _Open_Bo.00450498.

При этом уберётся только наг и триал, в about останется unregged, так что если есть другие ограничения, то лучше
подолбаться найти эти stolen bytes и распаковать вручную.

Gloomy :: Mario555
Спасибо большое за помощь, все отлично работает, никаких других ограничений нет. Но все равно попробую распаковать вручную - чисто для тренировки

DOLTON :: Mario555 пишет:
цитата:
Если stripper’ом, то наг убирается так:


Сегодня столкнулся с похожей программой - после распаковки Stripperom сразу вылетает «trial period expired»

Если можно, то поясните пожалуйста метод (алгоритм действий) по излечению программ данного рода на примере Open Book.
Заранее tnks!

MoonShiner :: Найдите адреса апи аспра. Эмулить необязательно, но гляньте в коде, куда они обращаются и поправьте значения... Мозгоё... МозгЦ прав.

Gloomy :: MoonShiner пишет:
цитата:
Найдите адреса апи аспра


А как их искать? Может статья какая есть? Очень актуальная тема, полезно было бы почитать.

Mario555 :: DOLTON пишет:
цитата:
Если можно, то поясните пожалуйста метод (алгоритм действий) по излечению программ данного рода на примере Open Book.


В olly доходишь до какого-то там exception (я их не считаю никогда) внизу должно быть что-то типа

00C735DE ›JE SHORT 00C735EC
00C735E0 ›PUSH 0C73648 ; ASCII «15»
00C735E5 ›CALL 00C725EC
00C735EA ›JMP SHORT 00C735FC
00C735EC ›MOV EAX,DWORD PTR SS:[EBP-18]
00C735EF ›MOV DWORD PTR DS:[C77EB4],EAX
00C735F4 ›MOV EAX,DWORD PTR SS:[EBP-1C]
00C735F7 ›MOV DWORD PTR DS:[C77EB0],EAX
00C735FC ›PUSHAD
00C735FD ›PUSH 0C763AC
00C73602 ›LEA EAX,DWORD PTR SS:[EBP-C]
00C73605 ›PUSH DWORD PTR DS:[C77AA4] ; Open_Boo.00400000
00C7360B ›CALL DWORD PTR DS:[EAX]

Потом ещё пару раз Shift-F9 там аспр целостность кода проверит.
Alt-M и выбитраешь секцию с протектором (адр С60000). Там Ctrl-B и вводишь 40 00 00 00 40 00.
Найдётся такое:

00C77AA6 40 00 00 00 40 00 00 50 0F 00 00 00 00 00 00 00 @...@..P.......
00C77AB6 00 00 0E AB 41 00 00 00 00 00 FC A3 41 00 06 9F ..«A.....ьЈA.џ
00C77AC6 41 00 00 00 00 00 00 00 00 00 08 11 40 00 AD 11 A.........@.-
00C77AD6 40 00 C6 11 40 00 00 00 00 00 00 00 00 00 00 00 @.Ж@...........

Адреса типа 41ab0e - это апи аспра. Ставишь на них бряки и смотришь что они делают. Так например функция по адр 41ab0e возвращает адрес, куда записано имя юзера, а 4011с6 записывает либо 401108 (execute Trial) либо 4011ad (execute expire).

PS Кста я раньше сказал: «потом ещё занопить 00401253 CALL _Open_Bo.00450498. » дык вот на самом деле нопить её не надо, т.к. там проверяется имя пользователя, и если его вписать по нужному адресу, то и в about будет «Пpaвoм пoльзoвaния oблaдaeт...»

PPS апи аспра ОЧЕНЬ удобно использовать для взлома.

DOLTON :: MoonShiner
Mario555
Спасибо, буду разбираться!

Mario555 пишет:
цитата:
В olly доходишь до какого-то там exception


Относительно давно с удовольствием юзаю Ice... в нём вроде бы никаких exception при отладке Аспровских прог у меня не вылетает.

Mario555 пишет:
цитата:
Потом ещё пару раз Shift-F9 там аспр целостность кода проверит.


То есть исследовать нужно нераспакованную прогу?

Mario555 :: DOLTON пишет:
цитата:
То есть исследовать нужно нераспакованную прогу?


Of course...






   
Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS