eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› Изменение вычислений в программе
Посл.ответ Сообщение

Ранг: 2.0 (гость)
Статус: Участник

Создано: 25 июня 2008 02:01 New!
Цитата · Личное сообщение · #1

Привет всем!

Нужен совет по внедрению в бинарный код программы и его изменения.

Есть программа написанная на Delphi. Она делает простые вычисления на основе введенных в TextBox-ы значений. Результаты вычислений отображаются в других TextBox-ах.
Все вычисления ведутся на основании простых формул.
Задача в том, чтобы изменить формулы уже в готовой программе.

Я тут поразмыслил, и пришел вот к чему:
Написать прогу, которая будет внедряться в адресное пространство программы где делаются вычисления (соотв протрассировав заранее), сделать свои вычисления и показать результат в TextBox.

Что посоветуете сделать? Может есть другие идеи?

Заранее Спасибо!


Ранг: 238.8 (наставник)
Статус: Участник
CyberHunter

Создано: 25 июня 2008 08:05 New!
Цитата · Личное сообщение · #2

Делайте, какие проблемы Имхо, код там несложный будет и инфы вроде много. Только вот зачем писать программу и каждый раз внедрятся в процесс?! Не лучше ли будет один раз исправить нужные алгоритмы в программе и сохранить все изменения, тогда как минимум отпадет необходимость писать лоадер.

Ранг: 2.0 (гость)
Статус: Участник

Создано: 25 июня 2008 08:12 New!
Цитата · Личное сообщение · #3

Проблема в том , что нужно сделать выборку формул - поэтому думаю нужен лоадер.
Вопрос - будут ли меняться адреса подпрограмм при каждой загрузке, если да то как вычислить офсет нужной?


Ранг: 126.7 (ветеран)
Статус: Участник
#CCh

Создано: 25 июня 2008 08:21 New!
Цитата · Личное сообщение · #4

Могут в 2х случаях:
1. приложения грузится не по имэдж бэйс - релоки
2. функи нходятся в длл

Если не в длл, то обращайся к ним не по прямым оффсетам, а по разнице адресов.


Ранг: 238.8 (наставник)
Статус: Участник
CyberHunter

Создано: 25 июня 2008 08:32 · Поправил: Flint New!
Цитата · Личное сообщение · #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]
 eXeL@B —› Основной форум —› Изменение вычислений в программе

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS