Сейчас на форуме: padad42664, kris_sexy, site-pro, vasilevradislav (+6 невидимых)

 eXeL@B —› Крэки, обсуждения —› Взлом и распаковка PingPlotter Pro
Посл.ответ Сообщение

Ранг: 2.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 августа 2007 22:42
· Личное сообщение · #1

Хочу взломать PingPlotter, но сам. Она запакована ASProtect. Я так вообщем в памяти разобрался, но это в памяти. Распаковать не получаеться. Помогите с её распаковкой. www.pingplotterpro.com




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 01 августа 2007 23:25
· Личное сообщение · #2

hexcsl.com/upload/stats/115

-----
Computer Security Laboratory




Ранг: 2.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 06 августа 2007 10:47
· Личное сообщение · #3

Спасибо за распаковку, очень помогло. Но в нём есть баг. Он выдаёт ошибку, после чего неработает его основная функция рисования. Я немного не понимаю из-за чего. В отладчике пройти до этого место не получаеться: защита от отладки. Я нашёл её и пытался удалить: поменял все JE на следующие, а он всё равно не запускаеться через олю.

0046B02B PingPlot JMP SHORT PingPlot.0046B03C
0046BEDC PingPlot NOP
005DCFA4 PingPlot JMP SHORT PingPlot.005DCFB5

Я сначала думал, что я что-то не правильно сделал, а потом понял, что у проги есть свой отладчик, который ловит эту ошибку, и поэтому оля уходит в аут. Помогите исправить эту ошибку, а то у меня не получилось. Никак не получаеться использовать олю и распакованную программу.



Ранг: 23.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 09 августа 2007 12:14
· Личное сообщение · #4

[HEX]

А можно в двух словах как распаковал?




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 09 августа 2007 15:16
· Личное сообщение · #5

N_E_O
можно. стрипером прогу даже не смотрел. запускается и хрен с ней. Просили распаковать я распаковал.

-----
Computer Security Laboratory




Ранг: 2.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 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..

Вообщем кто может помочь, может, кто вручную.

П.С.: исправить ошибку в распаковке не получаеться.




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 09 августа 2007 21:27 · Поправил: Maximus
· Личное сообщение · #7

Albond зачем вручную если стриппер распаковал. Нужно еще пофиксить апи аспра после распаковки. А вообще советую тебе отправится в запросы на взлом.

-----
StarForce и Themida ацтой!




Ранг: 2.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 09 августа 2007 21:40
· Личное сообщение · #8

Так не интересно, я просто хочу понять где ошибка. У меня вообще по жизни проблема с распаковкой. Когда программа распакована, то другое дело. Но последнее время много запакованых программ, вот я и остановился на этой. Я стриппером пользовался но ничего. Интересно какая версия???
Нужно еще пофиксить апи аспра после распаковки
А по подробнее... я срадостью пофиксю.



Ранг: 23.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 09 августа 2007 21:53
· Личное сообщение · #9

[HEX] пишет:
можно. стрипером


А каким стрипером пользовался?



Ранг: 161.0 (ветеран)
Активность: 0.120
Статус: Участник

Создано: 09 августа 2007 21:58
· Личное сообщение · #10

Хекс юзал либо 2.13.9, либо приватный стриппер..
я думаю



Ранг: 2.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 09 августа 2007 22:10
· Личное сообщение · #11

Я скачал и попробывал 2.13.9 он распаковывает с этой ошибкой. Кто может помоч с ошибкой, и ещё плиз в двух словах что делали ...




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 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 ацтой!




Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

Создано: 10 августа 2007 12:49
· Личное сообщение · #13

Albond пишет:
Кто может помоч с ошибкой, и ещё плиз в двух словах что делали


Сегодня CrackLab на http://www.exelab.ru/rar/dl/CRACKLAB.rU_76.rar
выложил мою статью по распаковке Asprotect 2.2 SKE. В ней я постарался подробно описать процесс распаковки. Почитайте эту статью, она Вам поможет разобраться с ошибками.



Ранг: 23.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 11 августа 2007 01:05
· Личное сообщение · #14

[HEX] пишет:
можно. стрипером


Жду ответа...



Ранг: 2.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 11 августа 2007 17:19
· Личное сообщение · #15

Буду распаковывать по статье.



Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

Создано: 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. Т.е. все делайте по статье.



Удачи при распаковке, ничего сложного в ней нет.




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 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 ацтой!




Ранг: 2.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 11 августа 2007 21:10
· Личное сообщение · #18

Ага понятно: есть эмуляция API. Для этого их нужно вызвать обычным call я так понимаю???
Вообщем что и зачем патчить если можно по подробней. Чего-то опять мысль ушла.



Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

Создано: 11 августа 2007 21:59
· Личное сообщение · #19

Maximus пишет:
Ну я же расписал все:


Извини, не обратил внимания.




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 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 ацтой!




Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

Создано: 12 августа 2007 07:54
· Личное сообщение · #21

Maximus пишет:
Какие то в этом топеге все обкуренные


Albond пытается самостоятельно изучить процесс распаковки программы, запакованной Asprotect, и, как это видно по задаваемым им вопросам, он в этом вопросе новичок. Поэтому и появляются у него много вопросов, связанных с распаковкой этой программы. Все мы начинали когда-то crack'ing с нуля, и у нас тоже было очень много неясных вопросов, пока не пришел определенный опыт. И нам тоже, на первых порах помогали советами, подсказками и т.д. Поэтому говорить о том, что в этом топике "все обкуренные", мне кажется - НЕ КОРРЕКТНО.




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 12 августа 2007 18:55
· Личное сообщение · #22

vnekrilov ладно, ладно, пусть учится, больше мешать не буду)))

Maximus пишет:
Если надо распакованый РАБОЧИЙ пропадченый вариант, пиши в личку


-----
StarForce и Themida ацтой!




Ранг: 2.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 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] это вызов функций, внутренних. Я непонимаю что и зачем это. Помогите мне понять что это за прыжки и кого надо пачить.




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 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 ацтой!




Ранг: 2.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 13 августа 2007 08:22
· Личное сообщение · #25

А теперь понял. Я должен заменить эти переходы на эмуляцию своих функций. Чтоб прога думула что вызывает их. Буду искать свободное место в коде.



Ранг: 2.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 13 августа 2007 22:37
· Личное сообщение · #26

Так, хорошо. Это всё я так понимаю относится к взлому. Но меня волнует ошибка в распакованном файле. Я начал распаковку по статье. И попал на OEP found! OEP stolen. vnekrilov написал что там нет Stolen Code, но
00D6778C 84C0 TEST AL,AL
это явно не OEP.

И ещё, можно как-то восстановить ошибки стрипера?




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 14 августа 2007 06:23 · Поправил: Maximus
· Личное сообщение · #27

Albond он все правильно написал, OEP 6CD8F0, короче чего то ты не правильно делаешь

>И ещё, можно как-то восстановить ошибки стрипера?
Че за ошибки такие? Стриппер распаковывает прогу без ошибок, тебе об этом с первых постов толдычат.

-----
StarForce и Themida ацтой!




Ранг: 329.6 (мудрец), 192thx
Активность: 0.140.01
Статус: Участник

Создано: 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
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати