Как узнать пароли игроков в Marriage For Windows v 2.3Delphi , Программа и Интерфейс , Исследование программКак узнать пароли игроков в Marriage For Windows v 2.3
Оформил: DeeCo 1) SoftIce 2) HView Все заядлые игроки в преферанс наверняка сталкивались с этой чудесной реализацией вечной игры. Однако, когда кто-то играет лучше тебя, то хочется ему все испортить, но не тут то было - вход в игру может быть закрыт паролем. А как же его узнать??? В прошлом исследовании мы нашли место, где проверяется введенный нами пароль с тем, который записан в реестре, вот это место: 015F:004C9792 807DFF00 CMP BYTE PTR [EBP-01],00 <--проверяют совпадают ли длины паролей 015F:004C9796 7447 JZ 004C97DF <--если нет - прыжок 015F:004C9798 8D55F0 LEA EDX,[EBP-10] 015F:004C979B 8B45F8 MOV EAX,[EBP-08] 015F:004C979E 8B80DC020000 MOV EAX,[EAX+000002DC] 015F:004C97A4 E8B394F6FF CALL 00432C5C 015F:004C97A9 8B45F0 MOV EAX,[EBP-10] <--адрес нашего пароля 015F:004C97AC 8B5374 MOV EDX,[EBX+74] <--адрес правильного пароля 015F:004C97AF E884A8F3FF CALL 00404038 <--сравниваем 015F:004C97B4 750F JNZ 004C97C5 <--если равны - НЕ прыгаемЯ обнаружил, что правильный пароль расшифровывается из реестра при запуске программы, т.к. когда я его изменил в памяти, то при следующих попытках ввода пароля мой изменённый пароль принимался за правильный. Нам нужно найти место в программе, где зашифрованная строка расшифровывается. Я нашел это место, (а вы?): 015F:004B0759 8B95ACFCFFFF MOV EDX,[EBP-0354] <--"users\user#" 015F:004B075F A188484F00 MOV EAX,[004F4888] <-- 015F:004B0764 8B00 MOV EAX,[EAX] <--00243745h 015F:004B0766 B998094B00 MOV ECX,004B0998 <--"Password" 015F:004B076B E88038FAFF CALL 00453FF0 <--читаем и расшифровываем 015F:004B0770 8B95B0FDFFFF MOV EDX,[EBP-0250] <--адрес уже расшифрованного пароля 015F:004B0776 8D4674 LEA EAX,[ESI+74] <-- 015F:004B0779 E88235F5FF CALL 00403D00 <--Значит по здесь: 015F:004B0770 8B95B0FDFFFF MOV EDX,[EBP-0250]пароль уже расшифрован. А что если не разгадывать алгоритм шифра, а просто после того, как пароль расшифрован показать его! Итак, будем встраивать свою процедуру. Для этого нужно: 1) по адресу 004B0770 сделать безусловный переход на место, куда мы впишем нашу процедуру: 015F:004B0770 jmp 004F1C102) По адресу 004F1C10 напишем нашу процедуру. 3) востановим затертую прыжком операцию: mov edx,[ebp-0250] 4) в самом конце прыжок назад: jmp 004B0776После изменений: (1) .004B076B: E88038FAFF call .000453FF0 -------- (1) .004B0770: E99B140400 jmp .0004F1C10 -------- (2) .004B0775: 90 nop .004B0776: 8D4674 lea eax,[esi][00074] (2)процедура вывода паролей: .004F1C10: 8B95B0FDFFFF mov edx,[ebp][0FFFFFDB0] .004F1C16: 50 push eax .004F1C17: 8D4679 lea eax,[esi][00079] .004F1C1A: 6A00 push 000 .004F1C1C: 50 push eax .004F1C1D: 52 push edx .004F1C1E: 6A00 push 000 .004F1C20: E86FF6F0FF call MessageBoxA ;user32.dll .004F1C25: 83EC10 sub esp,010 ;"" .004F1C28: 58 pop eax .004F1C29: 5A pop edx .004F1C2A: 58 pop eax .004F1C2B: 58 pop eax .004F1C2C: 58 pop eax .004F1C2D: E944EBFBFF jmp .0004B0776 -------- (2)Теперь программа при запуске показывает MessageBox в заголовке которого имя игрока а в тексте - его пароль. Таких сообщений будет ровно столько, сколько игроков. Если игрок не назначил пароль, то сообщение выводиться не будет. ЗЫ: теперь вы можете всегда узнать пароль другого человека, имея "исправленную" версию marriage.exe Но это делать низзя, т.к. это прямое нарушение авторских прав. А вся эта статья только для того, чтобы обучить вас встраивать свой же код в свои же программы! До следующих встреч. Исследовал и наваял туториал: vallkor //PTDS E-mail: vallkor@chat.ru Page: http://vallkor.chat.ru
Как узнать пароли игроков в Marriage For Windows v 2.3 - статья описывает способ изменить программу, чтобы она выводила пароли игроков в виде сообщений. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Исследование программ ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |