| Сейчас на форуме: Magister Yoda, subword (+9 невидимых) | 
|  | eXeL@B —› Основной форум —› Изменение вычислений в программе | 
| Посл.ответ | Сообщение | 
|  | Создано: 25 июня 2008 02:01 · Личное сообщение · #1 Привет всем! Нужен совет по внедрению в бинарный код программы и его изменения. Есть программа написанная на Delphi. Она делает простые вычисления на основе введенных в TextBox-ы значений. Результаты вычислений отображаются в других TextBox-ах. Все вычисления ведутся на основании простых формул. Задача в том, чтобы изменить формулы уже в готовой программе. Я тут поразмыслил, и пришел вот к чему: Написать прогу, которая будет внедряться в адресное пространство программы где делаются вычисления (соотв протрассировав заранее), сделать свои вычисления и показать результат в TextBox. Что посоветуете сделать? Может есть другие идеи? Заранее Спасибо!  | 
|  | Создано: 25 июня 2008 08:05 · Личное сообщение · #2 Делайте, какие проблемы  Имхо, код там несложный будет и инфы вроде много. Только вот зачем писать программу и каждый раз внедрятся в процесс?! Не лучше ли будет  один раз исправить нужные алгоритмы  в программе и сохранить все изменения, тогда как минимум отпадет необходимость писать лоадер. ----- Nulla aetas ad discendum sera  | 
|  | Создано: 25 июня 2008 08:12 · Личное сообщение · #3 | 
|  | Создано: 25 июня 2008 08:21 · Личное сообщение · #4 | 
|  | Создано: 25 июня 2008 08:32 · Поправил: Flint · Личное сообщение · #5 4matic пишет: будут ли меняться адреса подпрограмм при каждой загрузке, если да то как вычислить офсет нужной? Тогда пиши базовонезависимый код, начало к примеру такое: call $+5 pop eax и уже от того что в eax и пляши. Либо вариант: если нужно править код в dll, то вызываешь LoadLibraryA с именем нужной dll - возвращает ImageBase dll, если править код exe, то можно получить адрес ImageBase и PEB структуры MOV EAX,DWORD PTR FS:[30] MOV EAX,DWORD PTR DS:[EAX+8] ----- Nulla aetas ad discendum sera  | 
|  | eXeL@B —› Основной форум —› Изменение вычислений в программе | 





 Для печати
 Для печати