Friday, 10 July, 2026г.
russian english deutsch french spanish portuguese czech greek georgian chinese japanese korean indonesian turkish thai uzbek

пример: покупка автомобиля в Запорожье

 

Reversing основы (1 часть). Video.antichat - KEZ

Reversing основы (1 часть). Video.antichat - KEZУ вашего броузера проблема в совместимости с HTML5
Привет! я KEZ! Сейчас я покажу самые основы ревёрсинга. Я использую OllyDBG а не SoftICE по понятным причинам. И она мне больше нравится чем SoftICE. На примере простейших CrackMe. Первая - CRACKME2.EXE. Ввожу серийник, выводится инфа о левом серийнике. Предположи это MessageBoxA. Найдем все вызовы этой ф-ии API. Поставим брек поинт на все вызовы MessageBoxA. Их два - один это окно "About" и один для вывода "все ок" или "левый серийник" =) Программа остановилась по адресу 0040119D где вызов MessageBoxA. Смотрю что перед ним. В стек заносятся наше имя и серийник и вызывается 00401261 - видимо алгоритм проверки. Дальше EAX проверяется на 0. Если EAX = 0 то идет JE 0040118D, что заносит в EBX адрес строки "Nope, but keep trying :)" а если EAX не равно 0, то JE не выполняется, идет команда 00401186 которая заносит в EBX адрес строки "Great work!", и сразу на вызов MessageBoxA. Попробую изменить флаг z (флаг нуля) перед вызывом JE (00401184) Программа остановилась на нем. Меняю z flag. Это самый грубый и простой способ. Попробую изменить JE SHORT 0040118D на JNE SHORT 0040118D чтоб переход был наоборот, в том случае если EAX=1 т.е. серийник верный. Брекпоинт можно убрать. Вот. Посмотрим процедуру проверки. Вот она. до 004012A6 (до RETN) Нахождение серийника расписывать не буду, слишком много. И так, по адресу 0040129B лежит JMP 004012A1 вызвав который мы передем на 004012A1 где MOV EAX,1 тоесть серийник ок. Еслиже мы начнем с 0040129D т.е. с XOR EAX,EAX (обнуление EAX) то после этого передем на 0040129F а с него на выход. И так, давайте просто заменим XOR EAX,EAX на MOV EAX,1 (и несколько NOP'ов для сохнанения размера, их допишет OllyDBG) А старый патч уберу Теперь можно сделать патч например на VC++ 6.0SE Вернем как было Вот и все для видео 1. Смотрите 2. Спасибо! =) http://forum.antichat.ru
Мой аккаунт