Вступление.
Итак у нас есть древний пепе, exe файл.
- Называется сие чудо: CRACKME.EXE,
- Точный вес: 12.288 byte
- Распознан по имени: "CrackMe v1.0 Written by Cruehead / MiB".
Detect It Easy показывет: Линковщик: Turbo Linker(2.25*,Delphi)[GUI32]
Но вот PEiD не согласен и показывает: MASM32 / TASM32 [Overlay]
Ватафа, так оно и есть. Короче написано на чём то древнем, 2000-х годов. ООП там даже не пахнет.
К самим алгоритмам.
Сразу же с точки входа в программу, автор сразу решил бить наповал (Если что программа достаточно компактная, все функции находятся радом). Он ищет в системе окно с классом: "No need to disasm the code!", если находит то закрывается. Но такого не произойдёт никогда, или почти никогда. Потом автор создаёт, главное окно с этим же классом ("No need to disasm the code!"), а также создаёт меню с этим же классом. Ну это просто такой прикол от автора.
Теперь точно к алгоритмам защиты.
- Обрезается введённое Name до 10 символов;
- Все символы Name к верхнему регистру;
- Создаём переменную «КЛЮЧ»;
- «КЛЮЧ» = сумма всех ASCII кодов символов Name;
- «КЛЮЧ» = «КЛЮЧ» xor 0x5678;
- «КЛЮЧ» = «КЛЮЧ» xor 0x1234;
- Всё, готово!!!
Ещё важный ньюанс, в имени не может быть цифр и спецсимволов, если будут, логика программы ломается и всегда будет MessageBox с ошибкой "No luck there, mate!".
Результат.
Так выглядит Keygen на Delphi 7.
Комментариев нет:
Отправить комментарий