| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Патч на делфи |
| Автор: Hedrox 11.3.2005, 16:12 |
| Люди кто знает как в делфи можно поменять в файле пару байт по указанному адресу, мне нужно поменять je на jne или jnz. Дело в том что есть одна программа которая требует 39 у.е. за регистрацию, ну, вручную я её сломал, теперь же и патч для народа сделать нужно. Помогите пожалуйста. |
| Автор: Snowy 11.3.2005, 17:15 | ||
| Эх, где мои 15 лет... Допустим, что нужный нам байтик располагается в файле по адресу 5E4. Тогда:
$74 = je $75 = jne |
| Автор: Петрович 11.3.2005, 18:15 |
| Можно гораздо проще - надо воспользоваться специальными программами для создания патчей. Я например пользуюсь CodeFusion Wizard который можно взять http://kobik.videodot.net/ |
| Автор: Hedrox 11.3.2005, 20:44 | ||
Та не, своими руками приятней Добавлено @ 20:45 2Showy, благодарю |
| Автор: Hedrox 11.3.2005, 21:13 |
| 2Snowy: Не тут то было =(. Вылезает исключение "... raised exception class EInOutError with message 'Read beyond end of file'... Чё тут не так? Код вставлял такой же как ты и написал. Останавливается на Read(f,b); Буду благодарен если для каждой строчки напишеш комментарий, особенно интересно {$R-} и {$R+} З.Ы. Делфи - 6, винда - 2003 enterprise |
| Автор: Петрович 11.3.2005, 22:15 | ||||
Бывает
Попытка чтения за концом файла. Просто ты наверное сделал Seek на позицию превышающую размер твоего файла. |
| Автор: Hedrox 11.3.2005, 22:20 |
| Я ж говорю, останавливается на Read(f,b), до Seek даже не доходит |
| Автор: Alex 11.3.2005, 22:21 |
| Перенесено из раздела Дельфи |
| Автор: Hedrox 11.3.2005, 23:30 |
| Решил попробовать хоть с помощью CodeFusion. Выбираю Find & Replace, выбираю адрес (00422194), данные для поиска - 74 05 (je) данные для замены 75 05 (jnz), создаю екзешник, а вот файл не патчится, File was NOT patched! [0 bytes written]. В чём проблема? Адрес узнавал с помощью OllyDebuger. |
| Автор: Medved 12.3.2005, 00:12 | ||
Дык своими руками же приятней? |
| Автор: RA 12.3.2005, 03:26 |
| Есть уже готовая тема "Updater & UpdateMaker " от Владимира Кладова (естесно с исходниками делфи) найти можно тут http://bonanzas.rinet.ru |
| Автор: Hedrox 12.3.2005, 11:21 | ||||
Дык своими руками же приятней? $ля З.Ы. Спасибо, твой ответ мне очень помог |
| Автор: Петрович 12.3.2005, 22:43 | ||||
Интересно, это как же можно остановиться на Read(f,b); что бы при этом до Seek не доходило? |
| Автор: Hedrox 12.3.2005, 23:07 |
| Мдя, запарился, я выяснил что так происходит потому что я указываю виртуальный адрес, а нужно адрес в файле, буду разбираться, спасибо всем кто помог. |
| Автор: Hedrox 13.3.2005, 12:48 |
| |