Сейчас на форуме: padad42664, kris_sexy, site-pro, vasilevradislav (+6 невидимых) |
eXeL@B —› Крэки, обсуждения —› Взлом и распаковка PingPlotter Pro |
Посл.ответ | Сообщение |
|
Создано: 01 августа 2007 22:42 · Личное сообщение · #1 |
|
Создано: 01 августа 2007 23:25 · Личное сообщение · #2 |
|
Создано: 06 августа 2007 10:47 · Личное сообщение · #3 Спасибо за распаковку, очень помогло. Но в нём есть баг. Он выдаёт ошибку, после чего неработает его основная функция рисования. Я немного не понимаю из-за чего. В отладчике пройти до этого место не получаеться: защита от отладки. Я нашёл её и пытался удалить: поменял все JE на следующие, а он всё равно не запускаеться через олю. 0046B02B PingPlot JMP SHORT PingPlot.0046B03C 0046BEDC PingPlot NOP 005DCFA4 PingPlot JMP SHORT PingPlot.005DCFB5 Я сначала думал, что я что-то не правильно сделал, а потом понял, что у проги есть свой отладчик, который ловит эту ошибку, и поэтому оля уходит в аут. Помогите исправить эту ошибку, а то у меня не получилось. Никак не получаеться использовать олю и распакованную программу. |
|
Создано: 09 августа 2007 12:14 · Личное сообщение · #4 |
|
Создано: 09 августа 2007 15:16 · Личное сообщение · #5 |
|
Создано: 09 августа 2007 21:22 · Личное сообщение · #6 Да, но по сути пропала важная функция , может можно как-то вручную. Вообще я до этого стрипером (Stripper v2.11 RC2) тоже пробывал, но чегось не получилось. Писал 21:19:17 - starting d:\program files\pingplotter pro\pingplotter2.exe.. Victim ImageBase - 00400000 Victim EntryPoint - 00001000 21:19:21 - unhandled break at 00d775bb.. 21:19:58 - asprotect detected.. 21:19:58 - loading modules.. 21:19:59 - hooking modules.. 0x014a0000 - module kernel32.dll export hooked.. 0x014b0000 - module user32.dll export hooked.. 0x01630000 - module gdi32.dll export hooked.. 0x01640000 - module advapi32.dll export hooked.. 0x01650000 - module rpcrt4.dll export hooked.. 0x01660000 - module oleaut32.dll export hooked.. 0x01670000 - module msvcrt.dll export hooked.. 0x01680000 - module ole32.dll export hooked.. 0x01690000 - module mpr.dll export hooked.. 0x016a0000 - module version.dll export hooked.. 0x016b0000 - module olepro32.dll export hooked.. 0x016c0000 - module comctl32.dll export hooked.. 0x016d0000 - module shlwapi.dll export hooked.. 0x016e0000 - module shell32.dll export hooked.. 0x016f0000 - module comdlg32.dll export hooked.. 0x01700000 - module wsock32.dll export hooked.. 0x01710000 - module ws2_32.dll export hooked.. 0x01720000 - module ws2help.dll export hooked.. 0x01730000 - module winspool.drv export hooked.. 0x01740000 - module winmm.dll export hooked.. 0x01750000 - module iphlpapi.dll export hooked.. 21:20:00 - error in finding last SEH, (drn == 0).. 21:20:25 - error in reaching last SEH.. 21:20:25 - unpacked file was not created.. 21:20:25 - done.. Вообщем кто может помочь, может, кто вручную. П.С.: исправить ошибку в распаковке не получаеться. |
|
Создано: 09 августа 2007 21:27 · Поправил: Maximus · Личное сообщение · #7 |
|
Создано: 09 августа 2007 21:40 · Личное сообщение · #8 Так не интересно, я просто хочу понять где ошибка. У меня вообще по жизни проблема с распаковкой. Когда программа распакована, то другое дело. Но последнее время много запакованых программ, вот я и остановился на этой. Я стриппером пользовался но ничего. Интересно какая версия??? Нужно еще пофиксить апи аспра после распаковки А по подробнее... я срадостью пофиксю. |
|
Создано: 09 августа 2007 21:53 · Личное сообщение · #9 |
|
Создано: 09 августа 2007 21:58 · Личное сообщение · #10 |
|
Создано: 09 августа 2007 22:10 · Личное сообщение · #11 |
|
Создано: 10 августа 2007 07:04 · Поправил: Maximus · Личное сообщение · #12 Albond бугага прога жжот, вывело после неверного ввода в лог такое: disassembling: [...] 005b6ff4 jmp loc_5b700c 005b6ff6 mov ecx, $5b71b4 ; 'Invalid license key.' 005b6ffb mov dl, 1 005b6ffd mov eax, [$451584] 005b7002 call -$160537 ($456ad0) 005b7007 > call -$1b263c ($4049d0) 005b700c xor eax, eax 005b700e pop edx 005b700f pop ecx 005b7010 pop ecx 005b7011 mov fs:[eax], edx [...] А если по теме, то надо падчить тут: 5BC320, jmp dword ptr [006E0D78]... GetTrialDays(ModeID: Byte; var Total: DWORD; var Left: DWORD ): Boolean; 5BC328, jmp dword ptr [006E0D74]... function GetHardwareID(): PChar; 5BC330, jmp dword ptr [006E0D70]... SetUserKey(Key: Pointer; KeySize: DWORD ): Boolean; Еще проверки CRC: 6ADB01 заменить на JMP 5F716B заменить на JMP 5FC576 заменить на JMP 6AD4AF заменить на JMP + в проге ВМ старая, по этому после падчей, распакованная стриппером прога будет работать как миленькая. Если надо распакованый РАБОЧИЙ пропадченый вариант, пиши в личку ----- StarForce и Themida ацтой! |
|
Создано: 10 августа 2007 12:49 · Личное сообщение · #13 Albond пишет: Кто может помоч с ошибкой, и ещё плиз в двух словах что делали Сегодня CrackLab на http://www.exelab.ru/rar/dl/CRACKLAB.rU_76.rar выложил мою статью по распаковке Asprotect 2.2 SKE. В ней я постарался подробно описать процесс распаковки. Почитайте эту статью, она Вам поможет разобраться с ошибками. |
|
Создано: 11 августа 2007 01:05 · Личное сообщение · #14 |
|
Создано: 11 августа 2007 17:19 · Личное сообщение · #15 |
|
Создано: 11 августа 2007 17:35 · Поправил: vnekrilov · Личное сообщение · #16 Albond пишет: Буду распаковывать по статье. При распаковке программы по статье обратите внимание на следующее: 1. Здесь нет Stolen Code, для прохождения на OEP используйте скрипт, который приведен в статье. 2. Здесь не нужно восстанавливать таблицу INIT, поскольку она не испорчена. 3. При восстановлении таблицы IAT увидите три значения в регистре ESI: 22, 23 и EF. Не восстанавливаются значения API при ESI=EF. Вместо значения EF в скрипте надо использовать значение 23 (значение 22 дает сбой) 4. Вы увидите такой код: 005BC320 - FF25 58006E00 JMP DWORD PTR DS:[6E0058] ; dump_.00DA7F0C 005BC326 8BC0 MOV EAX,EAX 005BC328 - FF25 54006E00 JMP DWORD PTR DS:[6E0054] ; dump_.00DA806C 005BC32E 8BC0 MOV EAX,EAX 005BC330 - FF25 50006E00 JMP DWORD PTR DS:[6E0050] ; dump_.00DA80D0 005BC336 8BC0 MOV EAX,EAX Значения, выделенные жирным текстом - это эмуляция каких-то API, по этой причине стриппер не берет эти API, и Вы получаете нерабочую правую часть программы. Я пока с этим не разбирался. Импорт в ImpREC вставляйте на родное место по адресу 006E0258 (kernel32.GetACP), а три вышеприведенных инструкции я перенес в начало секции IAT, поскольку на их место будут записаны ссылки таблицы IAT (поэтому здесь появились новые адреса 6E0050, 6E0054 и 6E0058). 5. Вырезайте две последние секции пакера, но, перед этим, восстановите секцию ресурса с Resource Builder by Dr. Golova, и не забудьте поправить ссылки на секции tls и reloc. Т.е. все делайте по статье. Удачи при распаковке, ничего сложного в ней нет. |
|
Создано: 11 августа 2007 20:48 · Личное сообщение · #17 vnekrilov пишет: Значения, выделенные жирным текстом - это эмуляция каких-то API, по этой причине стриппер не берет эти API, и Вы получаете нерабочую правую часть программы. Я пока с этим не разбирался. Ну я же расписал все: Maximus пишет: А если по теме, то надо падчить тут: 5BC320, jmp dword ptr [006E0D78]... GetTrialDays(ModeID: Byte; var Total: DWORD; var Left: DWORD ): Boolean; 5BC328, jmp dword ptr [006E0D74]... function GetHardwareID(): PChar; 5BC330, jmp dword ptr [006E0D70]... SetUserKey(Key: Pointer; KeySize: DWORD ): Boolean; ----- StarForce и Themida ацтой! |
|
Создано: 11 августа 2007 21:10 · Личное сообщение · #18 |
|
Создано: 11 августа 2007 21:59 · Личное сообщение · #19 |
|
Создано: 12 августа 2007 07:16 · Поправил: Maximus · Личное сообщение · #20 Albond пишет: Вообщем что и зачем патчить если можно по подробней. Чего-то опять мысль ушла. Maximus пишет: Ну я же расписал все: Maximus пишет: 5BC320, jmp dword ptr [006E0D78]... GetTrialDays(ModeID: Byte; var Total: DWORD; var Left: DWORD ): Boolean; 5BC328, jmp dword ptr [006E0D74]... function GetHardwareID(): PChar; 5BC330, jmp dword ptr [006E0D70]... SetUserKey(Key: Pointer; KeySize: DWORD ): Boolean; Maximus пишет: Еще проверки CRC: 6ADB01 заменить на JMP 5F716B заменить на JMP 5FC576 заменить на JMP 6AD4AF заменить на JMP Какие то в этом топеге все обкуренные ----- StarForce и Themida ацтой! |
|
Создано: 12 августа 2007 07:54 · Личное сообщение · #21 Maximus пишет: Какие то в этом топеге все обкуренные Albond пытается самостоятельно изучить процесс распаковки программы, запакованной Asprotect, и, как это видно по задаваемым им вопросам, он в этом вопросе новичок. Поэтому и появляются у него много вопросов, связанных с распаковкой этой программы. Все мы начинали когда-то crack'ing с нуля, и у нас тоже было очень много неясных вопросов, пока не пришел определенный опыт. И нам тоже, на первых порах помогали советами, подсказками и т.д. Поэтому говорить о том, что в этом топике "все обкуренные", мне кажется - НЕ КОРРЕКТНО. |
|
Создано: 12 августа 2007 18:55 · Личное сообщение · #22 |
|
Создано: 12 августа 2007 22:10 · Личное сообщение · #23 Спасибо за коментарии. Я действительно никогда не распаковывал вручную. Крекал либо не запакованные, либо распаковывающиеся unpackом любым. Но вот решил попробывать на этой проге. Мне ясна процедура запаковки и распаковки. Но я так понял попадаються разные фокусы. Мне не понятно следующий момент: Maximus пишет: 5BC320, jmp dword ptr [006E0D78]... GetTrialDays(ModeID: Byte; var Total: DWORD; var Left: DWORD ): Boolean; 5BC328, jmp dword ptr [006E0D74]... function GetHardwareID(): PChar; 5BC330, jmp dword ptr [006E0D70]... SetUserKey(Key: Pointer; KeySize: DWORD ): Boolean; Проверки которые на JMP надо поменять я и сам нашёл. Но вот выше написано что прыжки типа 5BC320, jmp dword ptr [006E0D78] это вызов функций, внутренних. Я непонимаю что и зачем это. Помогите мне понять что это за прыжки и кого надо пачить. |
|
Создано: 13 августа 2007 06:56 · Личное сообщение · #24 Albond GetTrialDays - количество дней триала, ее можно не падчить, потому что если все правильно сделаешь, то к этой функции прога обращатся не должна, а если ее пропадчить то можно получить вечный триал GetHardwareID - получение ID тачки, падчить обязательно. Найди где нить пустое место в проге, забей туда XXXXXXXX-XXXX и потом опять же в пустом месте вбей такой код: mov eax, ячейко_где_начинается_XXXXXXXX-XXXX ret SetUserKey - устанавливает ключ и возвращяет true если ключ правильный по этому падчить обязательно (+ расшифровывает пошифрованные куски, если они есть в проге то тебе не повезло, надо искать ключик что бы сломать) код такой: mov al,1 ret 8 Ну соответственно надо поправить переходники, что бы они не вели в никуда, а вели на твой код. ----- StarForce и Themida ацтой! |
|
Создано: 13 августа 2007 08:22 · Личное сообщение · #25 |
|
Создано: 13 августа 2007 22:37 · Личное сообщение · #26 Так, хорошо. Это всё я так понимаю относится к взлому. Но меня волнует ошибка в распакованном файле. Я начал распаковку по статье. И попал на OEP found! OEP stolen. vnekrilov написал что там нет Stolen Code, но 00D6778C 84C0 TEST AL,AL это явно не OEP. И ещё, можно как-то восстановить ошибки стрипера? |
|
Создано: 14 августа 2007 06:23 · Поправил: Maximus · Личное сообщение · #27 |
|
Создано: 14 августа 2007 10:45 · Личное сообщение · #28 Albond пишет: vnekrilov написал что там нет Stolen Code, но Проверь, чтобы у тебя не стояли никакие HardWare BP. Если стоят HardWare BP, скрипт для прохождения на OEP дает сбой. Если нет никаких BP, скрипт останавливает программу на адресе 6CD8F0 - это OEP программы, написанной на Delphi. Если перейдешь в окне dump на этот адрес, то увидишь неповрежденную таблицу INIT, которая содержит 138 адресов инициализации (просто еще одна проверка). |
eXeL@B —› Крэки, обсуждения —› Взлом и распаковка PingPlotter Pro |