Форум: "WinAPI";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
ВнизВызов неэкспортируемых функций Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.032 c