Главная » Статьи » Крэкинг |
Брутфорс уместен везде, где нужен ввод пароля. Почему бы не юзать брутфорс для регистрации? Почему не заставить прогу подбирать серийный номер к самой себе? Никто не запрещал. Вот и заставим IP-Tools 1.11 сгенерить нам номер :) Для начала найдем где происходит генерация и проверка. Запускаем прогу. Заходим в окно ввода регистрационного номера. Ставим брейкпоинт на hmemcpy. Жмем ок. Мы в айсе. Жмем F12 пока не выберемся на уровень с адресами 4973хх. Теперь идем вниз по коду и посматривая в регистры замечаем: 0049738B 8B45F0 mov eax, dword ptr [ebp-10] - в ЕАХ попадает наш номер. Итак если ни один из прыжков (00497396 и 004973BE) не выполнится - выводится месага о том, что все зарегено. Так как в ЕАХ по адресу 0049738B загоняется номер из ebp, то можно зациклить прогу заставив ее прыгать сюда загоняя в eax номер для проверки. Как я определил, в коде юзаются тока цифры, причем 0 не юзается. Ну и слава богу. Меньше мороки. Теперь нам остается тока написать небольшую прогу которая будет генерить код который мы будем загонять в EAX перед этой все проверкой :) Как это сделал я. Я открыл iptools.exe в qview и нашел пустое место (т.е. там тока 00 00 00 ...) И написал там свою программу. Вот она: 000B2C8E: 60 pushad - сохраняем на всякий случай регистры Ну и еще надо сделать это 000967BE: 0F85CAC40100 jnz 000B2C8E - т.е. если код неверный то увеличиваем на 1. Итак как этот бред работает. Читаю из стэка номер и читаю его слева направо (еврейские замашки :)) Если первая цифра не 9. То увеличиваю ее на 1 и выхожу в прогу. Если первая цифра 9 то заменяю ее на 1 и проверяю следующую цифру. При проверке следующей цифры проверяю чтобы она не оказалась последней в коде. В памяти это выглядит вот так (мой код 12345): 31 32 33 34 35 00 00 00 00 Так вот я слежу чтобы не попасть на 00 или еще че-нить. Если так 00 то делаем из него 31 (это '1') т.е. увеличиваем длину кода на одну цифру. ну и под конец опять таки выхожу в программу. Генерить код оно будет в таком виде: 11111 Т.е. в обратном порядке. Нам то ведь пофиг, главное - перебрать все варианты. Я вводил имя 'Hex' и начальный код '1111', помоему, код не может быть короче 4 символов, я уже не помню. И еще два нюанса. Первое: 0F8574010000 jne 00497510 тут почему то она выпрыгивает :( занопить эту команду. Второе - прога проверяет контрольную сумму и выводит страшную месагу о том, что файл был поврежден. Bpx на showwindow и потом найдете, что проверка идет по адресу 4B34A7. Правим там джамп и терь запускаем прогу. Терь осталось тока поставить брейкпоинт на 4973C4 чтобы попасть в айс когда генерация закончится. Запускаем вводим 'Hex' и '1111' жмем ок. Прога типа подвисает. И секунд через 40 (это на celeron 366, запущено тока айс и IP-tools) мы в айсе. Теперь d *(ebp-10) и там у нас '96521'. Какая красота. :) Теперь берем оригинальный exe, запускаем и регимся :) P.S. Это так все хорошо потому, что юзались тока цифры, а если бы в коде были еще и буквы... Есть еще проги в, которых в проверку специально вставляют процедуру KERNEL32!Sleep, чтобы типа замедлить генерацию. Занопить ее и все. | |
Просмотров: 2065 | Рейтинг: 5.0/1 |
Всего комментариев: 0 | |