Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Патч на делфи, Нужно поменять комманды в екзешнике 
:(
    Опции темы
Hedrox
Дата 11.3.2005, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 1.1.2005

Репутация: нет
Всего: нет



Люди кто знает как в делфи можно поменять в файле пару байт по указанному
адресу, мне нужно поменять je на jne или jnz. Дело в том что есть одна программа
которая требует 39 у.е. за регистрацию, ну, вручную я её сломал, теперь же и патч для народа
сделать нужно. Помогите пожалуйста.
PM MAIL   Вверх
Snowy
Дата 11.3.2005, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Эх, где мои 15 лет...
Допустим, что нужный нам байтик располагается в файле по адресу 5E4.
Тогда:
Код

var
  f: file of byte;
  b: byte;
begin
  AssignFile(f,'file.exe');
  {$R-} Reset(f);{$R+}
  if IOResult=0 then begin
    Reset(f); Seek(f,$5E4);
    Read(f,b);
    if b=$74 then begin
      Seek(f,$5E4);
      b:=$75;
      Write(f,b);
    end;
    CloseFile(f);
  end;
end.

$74 = je
$75 = jne
PM MAIL   Вверх
Петрович
Дата 11.3.2005, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 25
Всего: 55



Можно гораздо проще - надо воспользоваться специальными программами для создания патчей.
Я например пользуюсь CodeFusion Wizard который можно взять здесь


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Hedrox
Дата 11.3.2005, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 1.1.2005

Репутация: нет
Всего: нет



Цитата
Можно гораздо проще - надо воспользоваться специальными программами для создания патчей.
Я например пользуюсь CodeFusion Wizard который можно взять здесь

Та не, своими руками приятней smile
Добавлено @ 20:45
2Showy, благодарю smile
PM MAIL   Вверх
Hedrox
Дата 11.3.2005, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 1.1.2005

Репутация: нет
Всего: нет



2Snowy:

Не тут то было =(. Вылезает исключение "... raised exception class EInOutError with
message 'Read beyond end of file'... Чё тут не так? Код вставлял такой же как ты и написал.
Останавливается на Read(f,b); Буду благодарен если для каждой строчки напишеш комментарий,
особенно интересно {$R-} и {$R+}

З.Ы. Делфи - 6, винда - 2003 enterprise
PM MAIL   Вверх
Петрович
Дата 11.3.2005, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 25
Всего: 55



Цитата(Hedrox @ 11.3.2005, 21:44)
Та не, своими руками приятней 

Бывает smile
Цитата(Hedrox @ 11.3.2005, 22:13)
Не тут то было =(. Вылезает исключение "... raised exception class EInOutError with
message 'Read beyond end of file'... Чё тут не так?

Попытка чтения за концом файла.
Просто ты наверное сделал Seek на позицию превышающую размер твоего файла.



--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Hedrox
Дата 11.3.2005, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 1.1.2005

Репутация: нет
Всего: нет



Я ж говорю, останавливается на Read(f,b), до Seek даже не доходит
PM MAIL   Вверх
Alex
Дата 11.3.2005, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Перенесено из раздела Дельфи


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Hedrox
Дата 11.3.2005, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 1.1.2005

Репутация: нет
Всего: нет



Решил попробовать хоть с помощью CodeFusion.
Выбираю Find & Replace, выбираю адрес (00422194),
данные для поиска - 74 05 (je) данные для замены
75 05 (jnz), создаю екзешник, а вот файл не патчится,
File was NOT patched! [0 bytes written]. В чём проблема?
Адрес узнавал с помощью OllyDebuger.
PM MAIL   Вверх
Medved
Дата 12.3.2005, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Цитата(Hedrox @ 12.3.2005, 02:30)
Решил попробовать хоть с помощью CodeFusion.


Дык своими руками же приятней? smile


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
RA
Дата 12.3.2005, 03:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Есть уже готовая тема "Updater & UpdateMaker " от Владимира Кладова
(естесно с исходниками делфи)

найти можно тут http://bonanzas.rinet.ru
PM   Вверх
Hedrox
Дата 12.3.2005, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 1.1.2005

Репутация: нет
Всего: нет



Цитата(Pegas @ 12.3.2005, 00:12)
Цитата(Hedrox @ 12.3.2005, )
Решил попробовать хоть с помощью CodeFusion.


Дык своими руками же приятней? smile
$ля smile я полюбому сделаю своими руками, пользоваться чужим не по моему вкусу smile



З.Ы. Спасибо, твой ответ мне очень помог smile

Это сообщение отредактировал(а) Alex - 12.3.2005, 14:40
PM MAIL   Вверх
Петрович
Дата 12.3.2005, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 25
Всего: 55



Цитата(Hedrox @ 11.3.2005, 23:20)
Я ж говорю, останавливается на Read(f,b), до Seek даже не доходит


Цитата(Snowy @ 11.3.2005, 18:15)
    Reset(f); Seek(f,$5E4);
    Read(f,b);


Интересно, это как же можно остановиться на Read(f,b); что бы при этом до Seek не доходило?



--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Hedrox
Дата 12.3.2005, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 1.1.2005

Репутация: нет
Всего: нет



Мдя, запарился, я выяснил что так происходит потому что я указываю виртуальный адрес, а нужно адрес в файле, буду разбираться, спасибо всем кто помог.
PM MAIL   Вверх
Hedrox
Дата 13.3.2005, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 1.1.2005

Репутация: нет
Всего: нет



smile Всё, всё получилось, надо было оффсет указывать, а я VA smile Snowy в эбауте не забуду smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0690 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.