|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.05.2008, 23:52 | #11 |
Форумчанин
Регистрация: 05.12.2007
Сообщений: 236
|
прога сломана
|
29.05.2008, 23:59 | #12 |
Форумчанин
Регистрация: 05.12.2007
Сообщений: 236
|
в проге использовался псевдопасс. который леко находится в строках . Прогу сломал не я но был очень близок, вышел на псевдокод. сломал товарищ. Вот его блокнот
4020FA - постоянно вызывается АПИ eax = 401138, esi = 4286B0 jmp [401138] = 40113C ; ebx = length(str), на вершине стёка pchar на str ------- 40113C: очередной раз получаем в eax адрес, увеличиваем на 4 esi и прыгаем по адресу. esi = 402DE4, [esi]=402DE8; esi+=4; ------- далее идёт переключение стёка. После выполнения переключения: esp = 123B7C, ebp = 124B40 очередной адрес прыжка: 401098 ------- в стёк заносится length(pchar) в eax - очередной адрес для прыжка (через один) в ebx - тот адрес, что обычно грузится в eax прыжок на 401958 ------- eax:=length(pchar), восстановив стёк далее: SUB EAX,EBX NEG EAX SBB EBX,EBX где ebx=9, а eax = length(pchar) прыжок на 401100 ---------- ebx:=pchar if ebx = 0 then ... else прыжок на 401000 ----------- далее прыжок на 4026D0 по адресу данные, но выходит это команды, что-то вроде процедуры: ebx = pchar в ecx загружается адрес строки password incorrect! Выходит, мы вышли на искомую ложную ветку. PUSH EBX LEA ECX,[DWORD ESI+1] MOVZX EBX,[BYTE ESI] PUSH ECX LEA ESI,[DWORD ECX+EBX+8] AND ESI,FFFFFFFC MOV EAX,[DWORD ESI-4] JMP NEAR [DWORD EAX] ------------------- {возратившись на 401958, но ввёв 9 символов пароля} флаги целы, ebx = 0 вместо -1. {401100} Отлично, условие выполнилось и мы продолжаем исполнение по адресу: 40110D прыжок на 401052 прыжок на 40109C прыжок на 401037 прыжок на 401190 ecx:=length(pchar) ADD ECX,80000000 ebx=0 SUB EBX,ECX MOV [DWORD EBP-4],EAX MOV [DWORD EBP-8],ECX MOV [DWORD EBP-0Ch],EBX SUB EBP,0Ch POP EBX MOV EAX,[DWORD ESI+4] ADD ESI,8 JMP NEAR [DWORD EAX] прыжок на 401047 прыжок на 4011C8 (I) снова код в секции данных ebx = pchar (не только мой) {на вершине стёка позже будет лежать очередной символ!} PUSH EBX MOV EBX,[DWORD EBP] ADD EBX,[DWORD EBP+4] MOV EAX,[DWORD ESI] ADD ESI,4 JMP NEAR [DWORD EAX] прыжок на 4017D4 eax:=pchar ebx=0 ADD EBX, EAX прыжок на 4014D0 ebx:=char([ebx]) {альтернатива - после того, как будет получен символ псевдопароля управление переходит на 401858} прыжок на 40101F ebx:=pchar+1; прыжок на 4011C8 (I) PS. Заметил какой-то пароль вроде: 234561281 - не подходит. ----------------- *401858* ebx - первый символ псевдо пароля ADD EBX, 1 {->401958} eax = первый символ введённого пароля ---------------------------------- Следуя такой логике, истиный пасс - это псевдопасс, с каждой цифрой увеличенной на 1. Так и есть. Пароль: 345672392 |
30.05.2008, 17:13 | #13 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
АХАХАХАХА )))) Видел 234561281 @ 0004EA59, потыкался - мимо, ну думаю так, замануха
пыщь
|
31.05.2008, 11:54 | #14 |
Форумчанин
Регистрация: 05.12.2007
Сообщений: 236
|
)) Сегодня скачал 010 Editor (хекс-эдитор), рекомендую хорошая штука, со встроенными Си-подобными скриптами. Сломалась за 6 минут. Первый крякмис гараздо сложнее ))
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Объясните программу | Принц | Общие вопросы C/C++ | 2 | 31.05.2008 10:26 |
зацените программу BMP->CIF | prizrak1390 | Софт | 13 | 06.02.2008 18:49 |
закрыть программу | Var17 | Общие вопросы Delphi | 1 | 20.12.2007 10:06 |
как закрыть программу? | Alar | Общие вопросы Delphi | 0 | 29.10.2006 20:22 |