Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.05;
Скачать: CL | DM;

Вниз

Вызов неэкспортируемых функций   Найти похожие ветки 

 
cerber1 ©   (2004-10-13 23:26) [0]

Как заставить приложение(процесс) выполнить его внутреннюю функцию, которая отсутствует в списке импорта, экспорта?


 
Cobalt ©   (2004-10-13 23:52) [1]

ГЫ (: Непосредственно вызвать её :)

P.S. Каков вопрос - таков ответ.


 
cerber1 ©   (2004-10-14 22:16) [2]

Наверно неправильно поставил вопрос:
мне необходимо перехватить данную функцию во время ее вызова и модифицировать передаваемые параметры.Как?


 
GILBEITS   (2004-10-15 07:37) [3]

Удалено модератором


 
Cobalt ©   (2004-10-15 08:43) [4]

2cerber1 ©  
Кого крякаем?


 
Игорь Шевченко ©   (2004-10-15 10:39) [5]

cerber1 ©   (14.10.04 22:16) [2]

Очень просто. Отладчик по такому принципу работает. Начало требуемой функции заменяется собственным кодом, после всех нужных манипуляций исходный код возвращается на место, и функция вызывается по тому же адресу.


 
cerber1 ©   (2004-10-15 22:19) [6]

2 Cobalt
В Винде есть одна библиотека, в ней есть одна функция("ключ в зайце, заец в ларце") и называется она(функция) MarkAppAsSystem(progid:***, bla:***) и очень хецецца ее поиметь.

2 Игорь Шевченко ©   (15.10.04 10:39) [5]

Библиотека не моя, и поетому отладчик отпадает(наверно). А в дизасме ее нигде нет. Нашел я ее только через Winhex


 
Игорь Шевченко ©   (2004-10-15 23:16) [7]

cerber1 ©   (15.10.04 22:19) [6]


> Библиотека не моя


Какая разница ?


> и поетому отладчик отпадает


Я не говорю - отладчик, я говорю - как отладчик.

ЗЫ: Тоже для дисера ?


 
cerber1 ©   (2004-10-16 14:01) [8]

2 Игорь Шевченко ©   (15.10.04 23:16) [7]

Не для дисера, а просто интересно, как это можно сделать. Ибо над экспортируемыми и импортируемым функ. Микрософт поработал.


 
SammIk ©   (2004-10-16 20:25) [9]

Прототипы:  
function MarkAppAsSystem(i_pDispenser:^ISimpleTableDispenser; i_applid:GUID): HResult;
function MarkAppAsNotSystem(i_pDispenser:^ISimpleTableDispenser; i_applid:GUID): HResult;


 
Игорь Шевченко ©   (2004-10-18 11:30) [10]

cerber1 ©   (16.10.04 14:01) [8]

Зная адрес функции (обязательное условие) заменяется первые N байт ее кода, после нужных тебе действий, эти байты возвращаются обратно и производится вызов функции, как обычно. Не для многопоточных приложений.


 
cerber1 ©   (2004-10-18 22:54) [11]

2 Игорь Шевченко ©   (18.10.04 11:30) [10]

а где  можна сылки на это дело(т.е как это работает)

2 SammIk ©   (16.10.04 20:25) [9]

Сам придумал иле гдето нашел?


 
Rouse_ ©   (2004-10-18 23:46) [12]

Так, так, так...
Позвольте господа, но если не трогать IMT и EMT, то как вы собираетесь эти адреса получить?


 
Игорь Шевченко ©   (2004-10-19 10:15) [13]

cerber1 ©   (18.10.04 22:54) [11]


> а где  можна сылки на это дело(т.е как это работает)


Так я вроде все рассказал, какие ссылки требуются ? Осталось только делать руками.


 
cerber1 ©   (2004-10-21 00:02) [14]

Игорь Шевченко ©   (18.10.04 11:30) [10]

> Зная адрес функции (обязательное условие)...

А как его узнать если его нет в таблицах импорта-експорта?


 
GuAV ©   (2004-10-21 00:09) [15]


> А как его узнать если его нет в таблицах
> импорта-експорта?

Руками найти смещение относительно какой-то что есть там.

и надеятся чтоб он не поменялся в другой версии длл/ехе ;-)


 
Игорь Шевченко ©   (2004-10-21 10:16) [16]

cerber1 ©   (21.10.04 00:02) [14]


> А как его узнать


А как отладчик узнает ? :)))



Страницы: 1 вся ветка

Текущий архив: 2004.12.05;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.029 c
3-1099813051
Dell3r
2004-11-07 10:37
2004.12.05
Remove Data Module


1-1100784445
msguns
2004-11-18 16:27
2004.12.05
вызов методов MDIChild из MDIForm


1-1101228371
n-neo
2004-11-23 19:46
2004.12.05
Работа с буфером обмена...


1-1100855579
xkiller
2004-11-19 12:12
2004.12.05
Я пишу свой компонент, меню.


3-1099901646
Меверик
2004-11-08 11:14
2004.12.05
Наименования полей!