![]() |
eXeL@B —› Основной форум —› Взлом [Delphi] |
Посл.ответ | Сообщение |
|
Создано: 12 января 2006 10:55 · Поправил: Модератор · Личное сообщение · #1 Блин, помогите! Решил взломать программу написанную на делфях. Не получилось. Тогда сам написал крякмис, но и его взломать не смог. В чем проблема. Есть ли крякмисы на делфи? ![]() ![]() |
|
Создано: 12 января 2006 10:57 · Личное сообщение · #2 |
|
Создано: 12 января 2006 11:10 · Личное сообщение · #3 |
|
Создано: 12 января 2006 11:28 · Личное сообщение · #4 |
|
Создано: 12 января 2006 12:35 · Поправил: tIce · Личное сообщение · #5 |
|
Создано: 12 января 2006 12:41 · Личное сообщение · #6 гораздо интереснее сделть ключ который расшифровывается в определенное число (адрес), а по этому адресу прыгруть (заключив прыжок в exception'ы или проще проверить адрес на наличие push ebp, большинство процедур в делфи начинаются так) и уже проверить валидность, такое будешь долго лечить. Но это я от темы отступил, ты юзай DeDe там гораздо проще найти нажатие твоего батона и что делается. В твоем случае даже дизасмы не нужны. ![]() |
|
Создано: 12 января 2006 13:39 · Личное сообщение · #7 |
|
Создано: 12 января 2006 14:03 · Личное сообщение · #8 |
|
Создано: 12 января 2006 15:59 · Личное сообщение · #9 |
|
Создано: 12 января 2006 16:08 · Личное сообщение · #10 |
|
Создано: 12 января 2006 16:21 · Личное сообщение · #11 grushko tIce пишет: ты юзай DeDe там гораздо проще найти нажатие твоего батона и что делается. В твоем случае даже дизасмы не нужны. Обрати внимание на этот совет.... и всё станет ясно =) ----- "Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels ![]() |
|
Создано: 12 января 2006 16:38 · Личное сообщение · #12 grushko у комента есть кнопка Правка - не утруждайся двойными постами по поводу текста на русском - насторй шрифт, будет нормально отображать PE Explorer, например, тоже кириллицу некорректно отображает, если шрифт не настроить грузишь твой файл в PE Explorer, Disasm в списке строк находишь: 00453830 CAEEE420EFF0E0E2E8EB+ db 'Код правильный!' 00453848 CAEEE420EDE5EFF0E0E2+ db 'Код неправильный!' жмёшь R (Reference) на любой из строк и видишь один-единственный адрес, по которому на эту строку есть ссылка 004537D4 8B45F4 mov eax,[ebp-0Ch] 004537D7 8D55FC lea edx,[ebp-04h] 004537DA E831F6FAFF call CheckCode 004537DF 83C664 add esi,00000064h 004537E2 8BD6 mov edx,esi 004537E4 03D2 add edx,edx 004537E6 3BC2 cmp eax,edx 004537E8 750C jnz BadCode 004537EA B830384500 mov eax,sCorrect 004537EF E82490FDFF call PascalStr 004537F4 EB0A jmp Done 004537F6 BadCode: 004537F6 B848384500 mov eax,sIncorrect 004537FB E81890FDFF call PascalStr для того, чтобы обойти проверку достаточно заменить один байт: 004537E8 750C ->> 7500 т.е. вместо C0 -> 00 по поводу OllyDbg: Follow in Dump -> Immediate Constant либо выделяешь строку со значением EDX в списке регистров, меню Follow in Dump ----- EnJoy! ![]() |
|
Создано: 12 января 2006 17:26 · Личное сообщение · #13 grushko пишет: Const, а как ты нашел, где происходит проверка? Декомпилировал твою прогу в DeDe (на всякий случай приаттачил), там по нажатию на кнопку вызывается процедура по адресу 00453790. Ставишь на этот адрес брекпоинт, потом вводишь числа в оба поля твоей проги и нажимаешь на кнопку. Тут сработает бряк по адресу 00453790, дальше жмешь в ольке F8 и пошагово идешь по коду и доходишь до сравнения серийников о котором я писал выше, если не равны - выводится сообщение о неправильном коде, если равны - о правильном. ![]() ![]() |
|
Создано: 12 января 2006 17:41 · Личное сообщение · #14 |
|
Создано: 13 января 2006 06:34 · Поправил: AngelDance · Личное сообщение · #15 Уже сколько раз говорили, что нельзя выдавать сообщение о неверном коде сразу после проверки и ничего ![]() Ставишь бряк на вывод сообщения и по F8 до момента: 004537E8 75 0C JNZ SHORT взлом.004537F6 правишь на: 004537E8 74 0C JE SHORT взлом.004537F6 И все. agentru На то он и, как ты говоришь "пацан". А если серьезно, то все мы учились, вот и он тоже учиться. В моей книге, я такое объясняю ;) ![]() |
|
Создано: 13 января 2006 09:39 · Личное сообщение · #16 |
|
Создано: 13 января 2006 10:15 · Личное сообщение · #17 |
|
Создано: 13 января 2006 10:30 · Личное сообщение · #18 |
|
Создано: 13 января 2006 10:48 · Поправил: grushko · Личное сообщение · #19 |
|
Создано: 13 января 2006 10:56 · Личное сообщение · #20 |
|
Создано: 13 января 2006 11:04 · Личное сообщение · #21 |
|
Создано: 13 января 2006 11:10 · Личное сообщение · #22 grushko пишет: Мне интересно, как узнать код для некоторого имени В твоей проге есть сравнение:
В регистрах EAX и EDX содержится неправильный и правильный, сгенерированный твоей прогой, серийник, там и смотри. Правда я не помню в каком регистре какой серийник. Только они в 16-тиричной системе счисления, переведи калькулятором в десятичную и радуйся. ![]() |
|
Создано: 13 января 2006 12:59 · Личное сообщение · #23 |
|
Создано: 13 января 2006 13:03 · Личное сообщение · #24 |
|
Создано: 13 января 2006 13:30 · Поправил: Const · Личное сообщение · #25 |
|
Создано: 13 января 2006 14:19 · Личное сообщение · #26 |
|
Создано: 13 января 2006 14:36 · Личное сообщение · #27 grushko пишет: где плагин дл ольки hmemcpy взять? Юзай поиск или мой аттач... (вкладка поинт H) ЗЫ За такие вопросы обычно банят ;) ![]() ![]() |
|
Создано: 13 января 2006 14:45 · Личное сообщение · #28 |
|
Создано: 13 января 2006 20:07 · Личное сообщение · #29 |
|
Создано: 14 января 2006 16:41 · Личное сообщение · #30 |
![]() |
eXeL@B —› Основной форум —› Взлом [Delphi] |