Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Взлом за 1.5 минуты - SuperFTP v2.04 for Win

Оформил: DeeCo
Автор: http://www.cracklab.narod.ru

Объект: Super FTP v2.04 for Windows95/98/NT4.0
Адрес: http://www.sppd.co.jp/sugama/english/


Вступление:
Я продолжал искать самый рульный ФТП клиент и наткнулся на это "чудо", в полном смысле этого слова :)

Обзор:
Я запустил прогу и вижу MessageBox "Trial ... 14 days" Плохо, потому как с виду весч неплохая, по крайней мере красивая :) Стоит ли она $ 4.0 ?
Ну да ладно. Захожу в меню Help->Registration и вижу, что надо ввести какой-то пароль. Ну думаю, совсем чудесно. Ctrl-D и Ставлю бряк:
bpx GetDlgItemTextA
Снова Ctrl-D и ввожу вместо пароля "123321". Жму кнопочку и вываливаюсь в Soft-Ice здесь:
015F:00415A5A  6800020000          PUSH      00000200			
015F:00415A5F  6860594200          PUSH      00425960			<--Куда считывать введенный пароль
015F:00415A64  6825040000          PUSH      00000425			   
015F:00415A69  8B4508              MOV       EAX,[EBP+08]
015F:00415A6C  50                  PUSH      EAX
015F:00415A6D  FF1538265900        CALL      [USER32!GetDlgItemTextA]	<--считали
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; по адресу [00423EC0] лежит строка: "KFOGMTPXRLM"	;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
015F:00415A73  0FBE05C03E4200      MOVSX     EAX,BYTE PTR [00423EC0]	<--Взяли первый символ строки "KFOGMTPXRLM", т.е. "K"	
015F:00415A7A  48                  DEC       EAX			<--Отняли 1, т.е. получили "J"
015F:00415A7B  0FBE0D60594200      MOVSX     ECX,BYTE PTR [00425960]	<--и сравниваем с первым символом введённого пароля
015F:00415A82  3BC1                CMP       EAX,ECX			<--то же самое со 2-ми символами
015F:00415A84  0F8545010000        JNZ       00415BCF			<--И так 11 раз...
015F:00415A8A  0FBE05C13E4200      MOVSX     EAX,BYTE PTR [00423EC1]
015F:00415A91  48                  DEC       EAX
015F:00415A92  0FBE0D61594200      MOVSX     ECX,BYTE PTR [00425961]
015F:00415A99  3BC1                CMP       EAX,ECX
015F:00415A9B  0F852E010000        JNZ       00415BCF
015F:00415AA1  0FBE05C23E4200      MOVSX     EAX,BYTE PTR [00423EC2]
015F:00415AA8  48                  DEC       EAX
015F:00415AA9  0FBE0D62594200      MOVSX     ECX,BYTE PTR [00425962]
015F:00415AB0  3BC1                CMP       EAX,ECX
015F:00415AB2  0F8517010000        JNZ       00415BCF
Т.е. достаточно отнять от каждого символа строки "KFOGMTPXRLM" единицу и мы получим строку: "JENFLSOWQKL", которая и будет правильным паролем. Вводим "KFOGMTPXRLM" и убеждаемся, что японские программисты - самые рульные на свете :) Так держать пацаны!

P.S. Простенько и со вкусом.

Исследовал и наваял туториал:
vallkor //PTDS
e-mail: vallkor@chat.ru (vallkor@etel.dn.ua)
Page : http://vallkor.chat.ru

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay