Аpathy^^
Сообщений: 504
Оценки: 10
Присоединился: 2011-08-02 18:35:14.340000
|
Вот ссылка Сразу прошу простить за грамматику писал в торопях потом снимал и после просмотра заметил. содержание manual: Привет, я - Apathy^^. Сегодня посмотрим с вами Fant0m's crackme №4 скачать можно здесь- http://cracklab.ru/crackme/fant-cm4.zip Читаем Readme //————————— Это CrackMe является немного более сложным, чем предыдущие. Задачи: -Найти серийный ключ для своего имени. -Пропатчить файл. -Написать кейген. -Нельзя использовать редакторы ресурсов. //————————– ENJOY. //————————– 1)Открываем файл Peid'ом MASM32 / TASM32 - файл не упакован. 2)Загружаем файл в отладчик-я взял OllyDbg. 3)Запускаем файл.Вводим свое имя.Смотрим на реакцию на неправильный ключ.-это messagebox. перезагружаем программу,нажав Ctrl+F2. 4)Ставим бряки на messagebox'ы. 5)Запускаем программу нажав f9. 6)Смотрив опять все тот же условный переход-убираем эту прыжок, используя NOP'ы 7)Сохраняем пропатченый файл. //————————– Итак,файл мы пропатчили. //————————– 8)При срабатывании бряка,после нажатия клавиши check смотрим внимательно в dump.-> там мы видим Логин и Пароль. Так же его можно отыскать в данном случае по функции сравнения строк. //————————– Ключ под мое имя- Apathy^^ - NITMATUU //————————– Теперь самое интересное -keygen… смотрим листинг… итак вот процедура шифрования символов… пройдемся по коду=) 1)CMP BYTE PTR DS:[ESI],0 - Сравниваем первый символ с нулём - проверяем на конец строки 2)JE SHORT 0040132A - если ноль,прыгаем,нет идем дальше. 3)MOV AL,BYTE PTR DS:[ESI] - берем n-ный символ имени,точнее его ASCII 4)ADD AL,CL - к коду n-ного символа имени прибавляем порядковый номер буквы в имени,нумерация с нуля. 5)XOR AL,CL - ксорим(исключающее или) т.е AL =Al ^CL; 6)DIV BL-Делим значение AL на константу BL смотрим содержимое регистра EBX и видим в BL=1A Здесь не просто команда деления. Она выполняет два действия: Сперва делится всё как положено: AL:=AL div BL = A0 div 1A = 06 Теперь вычитаем из A0 значение 1A шесть раз и получаем 04. 7)SHR AX,8 - Осуществляем сдвиг вправо в регистре AX 8)ADD AL,41 - прибавляем к AL 41 и в конце концов получаем наш долгожданный символ в ASCII недолго поразмыслив можно написать альтернативный код на любом другом яп. Я выбрал с++. //————————– Итак вод мой код кейгена для кнопки на форме и 2 полей: //————————–
AnsiString serial;
int bl = 0x1A;
char buf;
AnsiString s=Edit1->Text;
char *st=s.c_str();
int n = strlen(st);
for(int i=0;i<n;i++){
buf=st[i];
buf+=i;
buf^=i;
buf%=bl;
buf+=0x41;
serial+=buf; }
Edit2->Text=serial;
//————————– Скачать готовый проект можно здесь - http://zalil.ru/31514468 //————————– Скачать скомпилированный кейген - http://zalil.ru/31514484 //————————– спасибо за внимание, жду ваших отзывов,вопросов,предложений //————————– Специльно для xakep.ru С вами был Apathy^^ icq: 600-800-625
|