Сейчас на форуме: (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Исследование проги на Делфи. Куда двигаться дальше? |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 21 августа 2010 13:06 · Поправил: byOstaff · Личное сообщение · #1 Здравствуйте, уважаемые товарищи специалисты реверсинга! После того, как изложу вопрос, сильно не пинайте, ведь я совсем новичек в этом деле ;) Итак, оговорился я как-то раз, что типа "крэкер" (конечно, не тот, что в пачке и на полке в магазине ;))) ) ну, естественно, меня и попросили об услуге реверсинга. Я чтоб не обламываться взял и согласился, блин. Мне объяснили задачу и я наспех сделал вывод - легко! А задача состаяла в том, чтобы убрать надоедливое сообщение (MessageBoxW) о том, что используется триал-версия программы. По порядку. Программа называется Jigsaw Puzzle Creator (jpc.exe - объект исследования, написан на Делфи и ничем не упакован) от разработчика Casperlab Software. С помощью этой программы можно создавать пазлы из картинок и сохранять созданую пазл-игру в отдельный exe-шник (упаковывает его), в котором рамдомно и выскакивает этот MessageBox, если программа триальна. Сначала я думал, что игра создается из jigsaw.exe - по идеи автора будто так и должно быть, даже если запустить этот ехе-шник, то рамдомно выскакивает это самое сообщение. Поэтому я и решил, что будет легко, именно поэтому, сняв с него все то, что напялил разработчик - UPX 1.xx-2.0 - я первым сунул в Оллю его (прям эротика получается ;) ). QUnpack показал: Opened jigsaw.exe Quick self analyze.... UPX 1.xx-2.0 PESniffer EP Scan: UPX v0.89.6 - v1.02 / v1.05 -v1.22 (Delphi) stub PEiD scanning... UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo Вдоволь начитавшись мануалов по крэкингу я все-таки нашел тот джамп, который вызывает процедуру генерации MessageBox по адресу 0054F0EF, вот: Code:
Для отмены сообщения я изменил код на: Code:
И в этот момент я подумал, что стал супер-пупер крекером и быстренько запустил jpc.exe, создал новый пазл, нажал "Build EXE" и полез искать только-что созданную игру. Какое было разочарование, когда игра снова показала это надоедливое сообщение... Выяснил, что прога просто проверяет на существование jigsaw.exe, даже если подменить файл, она достанет из ресурсов свой ехе-шник. А может я ошибаюсь. И тут начались бессонные ночи ;) Мои дальнейшие действия. В About'е программы есть label с текстом "Evaluation version", а в заголовке надпись [Shareware]. Было бы легче найти код проверки на валидность рег.кода, если б триал закончился и можно было бы отлавливать сообщение о неправильном рег.коде. Но так и непонял, куда пишет дату. Пробовал Filemon7.03 - ничего такого не заметил, а Regmon_v7.04 вообще отказывается запускаться, пишет ошибку "Отказано в доступе. Убедитесь в том, что ваша учетная запись имеет права на загрузку драйверов и не запущен ли уже RegMon [перевод]", хотя на компе (WinXP SP3) только одна админ.учетка. Не знаю, что это может быть. Потом пробовал отловить вызов формы - модального окна - (возможно ли вообще такое?), чтоб уже потом найти код, который генерит эту надпись "Evaluation version" в About'e. Искал зацепки по API-функциям типа CreateWindow, ShowWindow и т.д. Потом пытался найти код, который пишет в заголовок всякую чушь, типа "Шаровары" - бесполезно. Но оказалось не под силу - потерял много времени и сил (моя жена была от меня в шоке, она до сих пор думает, что я не спал 3 сутки подряд ;))). Но я такой настойчивый, что просто дальше - некуда, вот и привела моя наивность на КрэкЛаб, который давно уже забит в закладках браузера. Подскажите, пожалуйста, с чего начать двигаться, где искать, толкните носом, что хотите, то и делайте со мной, но только помогите, чтоб я мог насладиться расправой над этой софтиной. Вот. P.S. Извините, совсем забыл за программу... Вот ссыль, надеюсь таже сборка, что и уменя (№63) ![]() |
|
Создано: 21 августа 2010 13:18 · Личное сообщение · #2 |
|
Создано: 21 августа 2010 13:34 · Личное сообщение · #3 |
|
Создано: 21 августа 2010 14:14 · Личное сообщение · #4 |
|
Создано: 21 августа 2010 14:18 · Личное сообщение · #5 ProcessMonitor.v2.7 тоже не работает, пишет ошибку "Невозможно загрузить драйвер устройства"... Сейчас декомпилил с помощью SourceRescuer.exe (шустрый, собака), есть адреса процедур, продолжаем исследование. Будут новости - отпишусь. А пока вопрос: можно ли вызвать вместо одной формы другую? Т.е., например, кликаешь на About, а выводится форма для регистрации вместо формы "О программе"? Пробовал через РесурсХакер подменивать - прога ругается на отсутствие формы ![]() |
|
Создано: 21 августа 2010 14:20 · Поправил: byOstaff · Личное сообщение · #6 |
|
Создано: 21 августа 2010 14:41 · Личное сообщение · #7 Стандартный борландовский Randomize генератор /*402BB0*/ ADD ESP,-8 /*402BB3*/ PUSH ESP /*402BB4*/ CALL 00401408 /*402BB9*/ TEST EAX,EAX /*402BBB*/ JE SHORT 00402BC8 /*402BBD*/ MOV EAX,[ESP] /*402BC0*/ MOV [521008],EAX========> записываем рамндомное число /*402BC5*/ POP ECX /*402BC6*/ POP EDX /*402BC7*/ RETN /*402BC8*/ CALL 00401410 /*402BCD*/ MOV [521008],EAX /*402BD2*/ POP ECX /*402BD3*/ POP EDX /*402BD4*/ RETN /*51AE8A*/ MOV EAX,0A=======>рамдомное число от 0...A /*51AE8F*/ CALL 00402EBC====>матем. преоброзование из рандомного числа получегонного генератором /*51AE94*/ CMP EAX,4========> если чило меньше 4 то /*51AE97*/ JLE SHORT 0051AEAE==> сообщение о шароварне не появится /*51AE99*/ PUSH 0============>начало кода вызывающего сообщение о регистрации /*51AE9B*/ MOV CX,[51B074] /*51AEA2*/ MOV DL,2 /*51AEA4*/ MOV EAX,51B080 /*51AEA9*/ CALL 00437108 ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]() |
|
Создано: 21 августа 2010 14:41 · Личное сообщение · #8 |
|
Создано: 21 августа 2010 14:44 · Поправил: byOstaff · Личное сообщение · #9 ClockMan, а как обнаружил само место генерации и регистрации? В каком ехе-шнике? У меня в Олли по адресу 0051AE94 вообще не то в обоих ехе-шниках А вот что Олли показывает по этому участку: Code:
==== может у меня не правильно настроен отладчик? ![]() |
|
Создано: 21 августа 2010 15:17 · Личное сообщение · #10 может у меня не правильно настроен отладчик? Скорее всего разные сборки или версии у меня тоже с вами обоими ничего не совпадает, поэтому видимо прийдется выложить программу которая у тебя установлена, либо ищи по сигнатурам эти места. ----- Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше ![]() |
|
Создано: 21 августа 2010 15:25 · Поправил: byOstaff · Личное сообщение · #11 |
|
Создано: 21 августа 2010 16:19 · Личное сообщение · #12 |
|
Создано: 21 августа 2010 16:21 · Личное сообщение · #13 |
|
Создано: 21 августа 2010 16:35 · Поправил: byOstaff · Личное сообщение · #14 Кажется нашел генерацию случайных чисел: Code:
=== это оно? === Подменил формы - теперь вместо формы About вызывается форма Регистрации. Поменял джамп и теперь после ввода любых данных пишет "Спасибо за регистрацию!", но... но программа всеравно остается триальной... Пытаюсь найти код проверки на триальность, но мало что получается. Помогите с поиском, пожалуйста! === Удалите последний мой пост ![]() |
|
Создано: 21 августа 2010 17:08 · Личное сообщение · #15 |
|
Создано: 21 августа 2010 18:52 · Поправил: byOstaff · Личное сообщение · #16 А вот и код, который генерирует серийник: Code:
==== А вот и регистрационные данные: Code:
==== п.с. Все-таки никак НЕ получается найти код проверки на ТРИАЛ. Помогите, пожалуйста. ![]() |
|
Создано: 21 августа 2010 18:54 · Личное сообщение · #17 |
|
Создано: 21 августа 2010 21:52 · Личное сообщение · #18 |
|
Создано: 21 августа 2010 22:04 · Личное сообщение · #19 |
|
Создано: 21 августа 2010 22:26 · Личное сообщение · #20 BoRoV пишет: Как побороть такую уловку: "fb:c++hook" вначале программы? дык, так это у тя програма написана на борландовском билдере, а не на делфи Наверное, я не знаю. Это игры из серии Хорина Максима. Думал потренироваться, вроде чистый код, но облом( а как прорваться через эти "защиты" пока не знаю.. Подскажешь? ![]() |
|
Создано: 21 августа 2010 22:59 · Личное сообщение · #21 |
|
Создано: 21 августа 2010 23:50 · Поправил: byOstaff · Личное сообщение · #22 |
|
Создано: 22 августа 2010 00:45 · Личное сообщение · #23 |
|
Создано: 22 августа 2010 09:40 · Личное сообщение · #24 byOstaff Да это чисто триальная версия зарегать её никак неполучится ![]() впринципе их можно пропатчить и запехнуть обратно тогда игра будет запускатся без вызова мессаги slil.ru/29586226 ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]() |
|
Создано: 22 августа 2010 11:32 · Личное сообщение · #25 |
|
Создано: 22 августа 2010 11:48 · Личное сообщение · #26 |
|
Создано: 22 августа 2010 12:42 · Поправил: byOstaff · Личное сообщение · #27 |
|
Создано: 22 августа 2010 13:04 · Поправил: ClockMan · Личное сообщение · #28 byOstaff пишет: Но у меня еще одна маленькая просьба - можно краткое объяснение как ты это сделал? Ну вытащил файлы с player.dat посмотрел какой версией UPX упаковн и с каким степенем сжатия расспаковал пропатчил где наг вылазиет и запоковал обратно с темеже атрибутами и получил файл такогоже размера запихал обратно с помощью WinHex ![]() Как - то так ![]() ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]() |
|
Создано: 22 августа 2010 13:27 · Личное сообщение · #29 ClockMan пишет: Ну вытащил файлы с player.dat посмотрел какой версией UPX упаковн и с каким степенем сжатия расспаковал пропатчил где наг вылазиет и запоковал обратно с темеже атрибутами и получил файл такогоже размера запихал обратно с помощью WinHex Как - то так Это вроде бы все понятно, но я так и не могу понять, как можна распаковать этот файл с помощью НЕХ-редактора? Вот что именно не понятно. И как ты с помощью этого же редактора запихнул назад файл? Я использую или НЕХ-редактор Олли, или же HIEW, но понятия не имею, как ими можна такое делать??? ![]() |
|
Создано: 22 августа 2010 13:40 · Личное сообщение · #30 |
. 1 . 2 . >> |
![]() |
eXeL@B —› Вопросы новичков —› Исследование проги на Делфи. Куда двигаться дальше? |