![]() |
eXeL@B —› Основной форум —› Как отлаживать DLL если она грузиться через CreateProcess |
Посл.ответ | Сообщение |
|
Создано: 03 февраля 2006 23:02 · Личное сообщение · #1 В общем программа PhotoRescue Pro 3.5 в демо версии при одним из ограничений являеться то что в окне картинки которую хочешь восстановить множество надписей Unregistered Version отображение этого окна происходит за счет View.dll пробовал ставить в Olly Break on new module так эта dll в списке даже не появляеться через брекпоинт на LoadLibrary тоже ничего не дал.После долгих исследований обнаружил что библиотека грузиться через createprocess,но остановиться на её функциях не получается. ПС Пожалуйста не предлагайте отправлять в запросы на взлом мне эта программа особенно не нужна просто интересен сам процесс.К тому же основное ограничение(не возможность восстановления) я уже обошел. ![]() |
|
Создано: 04 февраля 2006 02:34 · Личное сообщение · #2 Может быть это EXE'шник. Так иногда делают какой-нибудь blablabla.dat и лодырь (loader) к нему. Если это ДЛЛка, то значит логично что должен быть экспорт и ессно часть кода, выполняющаяся при загрузке библиотеки. В любом случае, на месте EP можно поставить int3 и всё будет ок! Только старый байт восстановить не забудь ) timon пишет: отображение этого окна происходит за счет View.dll Занопить вызов ДЛЛки =) ----- Я медленно снимаю с неё UPX... *FF_User* ![]() |
|
Создано: 04 февраля 2006 16:26 · Личное сообщение · #3 |
|
Создано: 04 февраля 2006 16:38 · Личное сообщение · #4 |
|
Создано: 04 февраля 2006 17:11 · Личное сообщение · #5 AlexZ пишет: Занопить вызов ДЛЛки =) Занопить вызов DLL не подойдет так как она рисует все окно а не только надпись Unregistered User.Скорее всего это всё таки библиотека так как даже если периименовать её в view.exe и попытаться запустить через Olly то отладчик напишет что это библиотека и спросит запустить LoadDLL.exe a грузиться она след образом вызываеться CreateProcess где во втором параметре(что то там про командную строку)запускаеться Rundll32 которая и запускает эту View.dll Rascal пишет: Может быть только что запущенный процесс загрузит библу, но в главном процессе она видна не будет. а это как? PS Спасибо всем за помощь обошелся Ida нашел в библиотеке участки кода отвечающие за прорисовку надписи о подправил переходы. ![]() |
|
Создано: 04 февраля 2006 19:48 · Личное сообщение · #6 timon пишет: Спасибо всем за помощь обошелся Ida нашел в библиотеке участки кода отвечающие за прорисовку надписи о подправил переходы. Чего-то ты, по-моему, перехитрил. Там можно просто бряк поставить BP CreateFileA и выловить открытие файла PhotoRescuePro.key (он по любому создаётся при попытке ввести ключ). Ну а сразу за открытием идёт тупая обработка содержимого (размер, данные, чёрный список и т.д.). Короче говоря, как всегда – зри в корень! Пачтчить нужно процедуру проверки регистрации. ----- Всем привет, я вернулся ![]() |
|
Создано: 04 февраля 2006 22:08 · Личное сообщение · #7 |
|
Создано: 05 февраля 2006 13:45 · Личное сообщение · #8 |
|
Создано: 05 февраля 2006 18:24 · Личное сообщение · #9 timon пишет: но у меня мозгов не хватило разобраться в проверке его правильности поэтому пришлось сделать так. Вот сейчас посмотрел, думал, может действительно там хитрая защита. Патч приличный делать мне конечно некогда, но если всё как ты говоришь (одно ограничение), то вот так вот в лоб, можно решить проблему. Смотри: 004D8C02 E8 C5B3FDFF call PhotoRes.004B3FCC ; здесь проверка файла ключа 004D8C07 837D F0 00 cmp dword ptr ss:[ebp-10], 0 ; в EBP-10 "значение триала" 004D8C0B 0F9FC3 setg bl ; 004D8C0E 80F3 01 xor bl, 1 ; EBX теперь будет флагом демо-версии 004D8C11 33C0 xor eax, eax ; И выход... 004D8C13 5A pop edx 004D8C14 59 pop ecx 004D8C15 59 pop ecx 004D8C16 64:8910 mov dword ptr fs:[eax], edx 004D8C19 68 338C4D00 push PhotoRes.004D8C33 004D8C1E 8D45 F4 lea eax, dword ptr ss:[ebp-C] 004D8C21 BA 03000000 mov edx, 3 004D8C26 E8 49C0F2FF call PhotoRes.00404C74 004D8C2B C3 retn Так вот если забить на проверку ключа, а сразу выставить флаг-демо в 0, то прога вроде больше не пристаёт... Вроде. Типа так: 004D8C07 90 nop 004D8C08 90 nop 004D8C09 90 nop 004D8C0A 90 nop 004D8C0B 90 nop 004D8C0C 90 nop 004D8C0D 90 nop 004D8C0E 90 nop 004D8C0F 33DB xor ebx, ebx 004D8C11 33C0 xor eax, eax ; И выход... ЗЫ Если я неправ – извините, времени сейчас совсем в обрез. ----- Всем привет, я вернулся ![]() |
|
Создано: 05 февраля 2006 21:40 · Поправил: timon · Личное сообщение · #10 |
![]() |
eXeL@B —› Основной форум —› Как отлаживать DLL если она грузиться через CreateProcess |
Эта тема закрыта. Ответы больше не принимаются. |