_|________         ______|_      
   ____:       /_    ____\     :______ 
 __|____   _____|____|_________       |
|       \__        \_       |___      |
|_        /         /                _|
 (_________________/_________________)
TEAM-53 TUTORiALS PACK NUMBER EiGHTTEEN

Патчим HexDecOctBin Converter v1.00
Автор......: Merlin(Merlin@accessroot.com)
перевод....: NightCat//TEAM-53
Инструменты: OllyDbg, Hiew, МозГ (желательно человеческая версия)
Цель.......: www.grinders.withernsea.com/tools/HexDecOctBinv1.00.rar

Сперва сделаем бэкап файла robhdob.exe

Запускаем robhdob.exe и виим, что программа прекратит работать через 21 день. Закрываем её и переводим часы на год вперёд(я как-то слишком ленив, чтобы переводить на 21 день вперёд). Смотрим... триал в 21 день закончился, нам показывают сообщение: "Sorry, this copy of the program has expired."

Запускаем OllyDbg и откываем там robhdob.exe. Давайте поищем это самое сообщение, правый клик и выбираем Search For -> All referenced text string. Скроллим вверх, снова правый клик и Search for text, вводим наше сообщение без кавычек и убраем галки 'Case sensitive'/'Entire scope', жмём Enter. Хммм, нет такого сообщения, что теперь? Ну, мы ведь знаем, что это программа ограниченная временем, а значит программа должна узнавать какое сегодня число, а значит апишки скорее всего такие:

GetTimeZoneInformation
GetSystemTime
GetFileTime
GetLocalTime

Займёмся GetSystemTime, правый клик по этой апишке и выбираем 'Find references to import' -> 'Selected Command', ставим брейкпоинтt (F2) на то, что появится в новом окошке и жмём Enter (follow in disassembler). Запускаем наш файл (F9) и приземляемся прямо на нашем брейкпоинте. Сообщение пока еще не появилось, так что мы понимаем. что это комманды выполняется до вызова сообщения.

Итак нам нужна комманда, которая нас сюда приводит, правый клик и 'Find references to' -> Selected Command, а больше то и нету. Если красным ничего не отмечено, то щначит мы уже там. 
Давайте пойдм вверх процедуры, т.к. в самой процедуре нет джампов вплодь до вызова, так что должен быть к ней, нам нужен адрес 004064F0 - это начало процедуры, затем левуй клик по строке, првый клик и "find reference to command", двойной клик ('Follow in Disassembler'). Итак, вот и мы там, где получается SytemTime, нам нужно это остановить, так что мы всё занопим! NOP - No-Operation и хекс-код = 90. Нам нужно занопть 5 байт: E8 33 15 FF FF. В OllyDbg всё это можно сделать быстро: правый клик, 'Binary -> Fill with NOPS'. Жмём F9 и кликаем ОК на наге.

Молодец, крэкер, теперь вы можете использовать эту программу вечно. К несчастью OllyDbg делает изменения лишь в фале лишь временно. Так что заисываем адрес, который нам нужен (00414FB8) и байты, которые нам нужно заменить: E8 33 15 FF FF. Запускаем Hiew и открываем там наш файл. Выбриаем режи дебага, F4 -> Debug. Теперь переходим к нужному адресу,  F5 (goto) и вводим .00414FB8, жмём enter (точка обозначает, что мы ищем адрес). Теперь мы по адресу 00414FB8, нажмите F3 (Edit) и вбейте 5 NOP'ов (90), затем  F9 (Update) и в конце F10 (Закрываем).

Отлично, вы успешно взломали HexDecOctBin Converter 1.00!

Помните, если пользуетесь софтом - купите его.

============================================================================
SHOUTZ AND GREETZ:
Снова спасибо моей девушке Kyrstie за то, что она и есть моя девушка. Я знаю,
что бешу тебя иногда, хехе. Hoof Arted, спасибо за вдохновление на написание
этих статей по OllyDbg. А так же создателям RegView, Hiew и OllyDbg.
============================================================================