[ Введение ] Итак однажды мне попалась программа под названием API Spy 2.5. Это программа шпион API функций которые вызываются из программ. Но какая неудача - программка требовала регистрацию. Но это оказалась нам не помеха. Нам понадобятся: OllyDbg PEiD Скачать программу можно тут: Код: http://cracklab.ru/_dl/new/apis3225.rar [ Go, Go, Go ] Итак запускаем программу и видим следующее: http://img123.imageshack.us/img123/2149/32144894ct2.jpg Проверим запакована ли она сама PEiD'ом. http://img123.imageshack.us/img123/7474/73051041xr0.jpg Программа ничем не запакована и написана на С++. Ок продолжаем наше исследование. Кликаем на кнопку Register внизу: http://img123.imageshack.us/img123/2319/90006298up3.jpg Вводим данные например SoulFreaker в качестве имени и 31337 в качестве серийника. Видим месагбокс с информацией что серийник не верный. Грузим программу в олли. Вообще можно поставить бряки на различные функции программы считывания из эдитбокса или на окошко сообщения о неверной регистрации, вызвав ПКМ->Search for->All intermodular calls. Но мы поступим по другому и сделаем следующее: ПКМ->Search for->All referenced text strings И там поищем строку о неверном серийнике: ПКМ->Search for text->provided is incorrect Видим ее расположение: http://img123.imageshack.us/img123/6194/73665602ic1.jpg Смотрим код чуть выше: Код: 004018BC |> \0AC0 OR AL,AL 004018BE |. 74 02 JE SHORT apis32.004018C2 Поставим бряк на адрес 004018BC нажав F2 на нужном адресе. Жмем F9 и вводим регистрационные данные указанные выше. Активируется бряк. Жмем F8 и видим что по адресу 004018BE активирован прыжок на адрес где выводится сообщение о неверной регистрации. http://img123.imageshack.us/img123/649/53098824bm7.jpg Чтож, тут можно поступить разными способами, например фишить серийник, патчить функцию проверки либо патчить условные переходы в которых идет проверка серийника (а в данном случае их 5). http://img123.imageshack.us/img123/9141/59464887gv2.jpg Но чтобы не геморриться с патчингом кучи вызовов мы пропатчим функцию по адресу 00405040: Вначале функции введем следующее: Код: xor al, al inc al retn http://img339.imageshack.us/img339/4886/58408445qu7.jpg http://img339.imageshack.us/img339/1808/36960072tv2.jpg Ввиду того что прыжок на адрес где лежит информация о неверной информации активировался только когда флаг Z будет активным, мы его насильно сделали неактивным, то есть равным 0 и соответственно прыжок на неверную регистрацию никогда не осуществится. http://img339.imageshack.us/img339/4831/29569169ct0.jpg Теперь сохраняем измененные байты в бинарник: ПКМ->Copy to executable->All modifications [ Заключение ] В принципе способ довольно стандартный (немного коряво сделанный, но лень разбираться в 5 местах переходах на проверку серийника, лучше былобы фишить серийник, но опять таки лень поборола меня) и не требующий значительных усилий, и я лишь просто хотел показать какова защита на сегодня большинства программ. (c) Хел, specially for Xaker.Name