Сейчас на форуме: UniSoft, _MBK_, laslo (+7 невидимых)

 eXeL@B —› Программирование —› инжект в процесс, подмена функции
Посл.ответ Сообщение

Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 июля 2011 10:39
· Личное сообщение · #1

re
у меня получилось инжектироваться в процесс найти нужную функцию и подменить ее, но не получается в моей функции обратно вызвать оригинальную функцию, что бы программа продолжила работать

обьявление указателя на функцию
Code:
  1. typedef DWORD ( WINAPI original_PR_Write)(DWORD, DWORD, DWORD);
  2. original_PR_Write* r_PR_Write=NULL;


записиь адреса оригинала
Code:
  1. r_PR_Write=(original_PR_Write*)ImportAddress;


вызов
Code:
  1. (*r_PR_Write)(fd, buf, amount);


может я не верно получаю адрес PR_Write? но как тогда происходит подмена?




Ранг: 88.2 (постоянный), 111thx
Активность: 0.070.01
Статус: Участник

Создано: 01 июля 2011 11:17
· Личное сообщение · #2

А как инжектишься? Если инжектишь длл, то там просто фильтруешь данные через свою функцию (прототип от оригинальной).



Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 июля 2011 11:46
· Личное сообщение · #3

именно через длл, а пример можно? или более подробно обьяснить
как я писал выше, данные я получаю в свою функцию, т.е. подменить получается, но после вернуть все обратно нет, я не могу вызвать оригинальную функцию PR_Write




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 01 июля 2011 14:32 · Поправил: ARCHANGEL
· Личное сообщение · #4

Ха, а хук как делается? Если сплайсингом - то вполне понятны причины происходящего))

В аттаче - пример перехвата путём подмены адресов в таблице импорта. Думаю, ясно и понятно, зачем он использовался ранее.

a548_01.07.2011_EXELAB.rU.tgz - Extreme_Parser.rar

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 16.9 (новичок)
Активность: 0.020
Статус: Участник

Создано: 01 июля 2011 18:27
· Личное сообщение · #5

Подмена адресов таблицы импорта. 1: Перехват с помощью библиотеки, перехвачиваем MessageBox (в инете куча такого), 2: Немножко модефицированный пример перехвата GetSystemMenu уже без библиотеки (на Дельфях). Если пригодиться, то пожалуста:

6014_01.07.2011_EXELAB.rU.tgz - перехват API изменения таблицы импорта.rar



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 01 июля 2011 19:30 · Поправил: MasterSoft
· Личное сообщение · #6

ARCHANGEL пишет:
Ха, а хук как делается? Если сплайсингом - то вполне понятны причины происходящего))

во-во. подразумеваю, что байты с начала апи спёр, а анхук сделать и вернуть всё назад забыл

CodeIgniter
скинь кусок кодеса по-более.



Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 июля 2011 07:37 · Поправил: CodeIgniter
· Личное сообщение · #7

разобрался) не в той dll искал функцию




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 02 июля 2011 10:29
· Личное сообщение · #8

Тогда можно закрыть, видимо.


 eXeL@B —› Программирование —› инжект в процесс, подмена функции
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати