Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Программная инженерия > Безопасность, Шифрование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 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
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

АХАХАХАХА )))) Видел 234561281 @ 0004EA59, потыкался - мимо, ну думаю так, замануха
пыщь
JTG вне форума Ответить с цитированием
Старый 31.05.2008, 11:54   #14
Д'якон
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 236
По умолчанию

)) Сегодня скачал 010 Editor (хекс-эдитор), рекомендую хорошая штука, со встроенными Си-подобными скриптами. Сломалась за 6 минут. Первый крякмис гараздо сложнее ))
Д'якон вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объясните программу Принц Общие вопросы 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