Начинающий
- Статус
- Оффлайн
- Регистрация
- 31 Май 2025
- Сообщения
- 10
- Реакции
- 0
[ ЗАДАЧА ]
1. запустить крякми.
2. ввести правильный пароль, чтобы увидеть сообщение "Good job!".
3. (доп.задача) понять алгоритм генерации пароля и написать кейген или скрипт на пайтоне.
[ ПРАВИЛА ]
[+] РАЗРЕШЕНО:
- использовать любые отладчики (x64dbg, OllyDbg).
- использовать дизассемблеры (IDA, Ghidra).
- использовать Hex-редакторы.
- анализировать память и регистры.
[-] ЗАПРЕЩЕНО:
- патчить бинарный файл (patching).
(замена JNZ на JMP или изменение байтов условия проверки это не решение.
ты должен найти уже валидный ключ, который примет ОРИГИНАЛЬНЫЙ экзешник).
[ ИСПОЛЬЗОВАНО ]
1. простой анти-дебаггинг
IsDebuggerPresent(), проверка флага PEB.BeingDebugged. мог бы не добавить x64dbg т.к он вышел позднее тех 2010, но адднул.2. обфусфикация строк Stack Strings + XOR Encoding.
3. динамическое создание ключа: TOTP-LIKE (Time-based Token).
4. накопление ошибки (Constant Time Comparison) слишком умно хотя и возможная практика в то время):
iErrorAccumulation |= (szInput[i] ^ expected);
[ ПОДСКАЗКИ (новичковые) ]
1. пароль динамический и зависит от внешних факторов, то есть он не один и тот же.
2. не верь всему, что видишь в регистрах во время реверса.
3. если ты видишь пароль, заканчивающийся на 1999, анти-деббаг система сработала.
P.s: код написан на C (не с плюсами. конечно скомпилирован на C++, но стиль чистый C. лень скачивать другой компилятор).
Пожалуйста, авторизуйтесь для просмотра ссылки.
Вложения
Последнее редактирование: