Создано: 25 июня 2008 02:01 New! Цитата · Личное сообщение · #1
Привет всем!
Нужен совет по внедрению в бинарный код программы и его изменения.
Есть программа написанная на Delphi. Она делает простые вычисления на основе введенных в TextBox-ы значений. Результаты вычислений отображаются в других TextBox-ах.
Все вычисления ведутся на основании простых формул.
Задача в том, чтобы изменить формулы уже в готовой программе.
Я тут поразмыслил, и пришел вот к чему:
Написать прогу, которая будет внедряться в адресное пространство программы где делаются вычисления (соотв протрассировав заранее), сделать свои вычисления и показать результат в TextBox.
Ранг: 238.8 (наставник) Статус: Участник CyberHunter
Создано: 25 июня 2008 08:05 New! Цитата · Личное сообщение · #2
Делайте, какие проблемы Имхо, код там несложный будет и инфы вроде много. Только вот зачем писать программу и каждый раз внедрятся в процесс?! Не лучше ли будет один раз исправить нужные алгоритмы в программе и сохранить все изменения, тогда как минимум отпадет необходимость писать лоадер.
Создано: 25 июня 2008 08:12 New! Цитата · Личное сообщение · #3
Проблема в том , что нужно сделать выборку формул - поэтому думаю нужен лоадер.
Вопрос - будут ли меняться адреса подпрограмм при каждой загрузке, если да то как вычислить офсет нужной?
Ранг: 238.8 (наставник) Статус: Участник CyberHunter
Создано: 25 июня 2008 08:32 · Поправил: Flint New! Цитата · Личное сообщение · #5
4matic пишет:
будут ли меняться адреса подпрограмм при каждой загрузке, если да то как вычислить офсет нужной?
Тогда пиши базовонезависимый код, начало к примеру такое:
call $+5
pop eax
и уже от того что в eax и пляши.
Либо вариант: если нужно править код в dll, то вызываешь LoadLibraryA с именем нужной dll - возвращает ImageBase dll, если править код exe, то можно получить адрес ImageBase и PEB структуры