![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вызов неэкспортируемых функций [D5, Win2k, WinXP]
cerber1 © (2004-10-13 23:26:00)Как заставить приложение(процесс) выполнить его внутреннюю функцию, которая отсутствует в списке импорта, экспорта?
Игорь Шевченко (2004-10-21 10:16:00) [1]cerber1 © (21.10.04 00:02) [14]
> А как его узнать
А как отладчик узнает ? :)))
GuAV (2004-10-21 00:09:00) [2]
> А как его узнать если его нет в таблицах
> импорта-експорта?
Руками найти смещение относительно какой-то что есть там.
и надеятся чтоб он не поменялся в другой версии длл/ехе ;-)
cerber1 (2004-10-21 00:02:00) [3]Игорь Шевченко © (18.10.04 11:30) [10]
> Зная адрес функции (обязательное условие)...
А как его узнать если его нет в таблицах импорта-експорта?
Игорь Шевченко (2004-10-19 10:15:00) [4]cerber1 © (18.10.04 22:54) [11]
> а где можна сылки на это дело(т.е как это работает)
Так я вроде все рассказал, какие ссылки требуются ? Осталось только делать руками.
Rouse_ (2004-10-18 23:46:00) [5]Так, так, так...
Позвольте господа, но если не трогать IMT и EMT, то как вы собираетесь эти адреса получить?
cerber1 (2004-10-18 22:54:00) [6]2 Игорь Шевченко © (18.10.04 11:30) [10]
а где можна сылки на это дело(т.е как это работает)
2 SammIk © (16.10.04 20:25) [9]
Сам придумал иле гдето нашел?
Игорь Шевченко (2004-10-18 11:30:00) [7]cerber1 © (16.10.04 14:01) [8]
Зная адрес функции (обязательное условие) заменяется первые N байт ее кода, после нужных тебе действий, эти байты возвращаются обратно и производится вызов функции, как обычно. Не для многопоточных приложений.
SammIk (2004-10-16 20:25:00) [8]Прототипы:
function MarkAppAsSystem(i_pDispenser:^ISimpleTableDispenser; i_applid:GUID): HResult;
function MarkAppAsNotSystem(i_pDispenser:^ISimpleTableDispenser; i_applid:GUID): HResult;
cerber1 (2004-10-16 14:01:00) [9]2 Игорь Шевченко © (15.10.04 23:16) [7]
Не для дисера, а просто интересно, как это можно сделать. Ибо над экспортируемыми и импортируемым функ. Микрософт поработал.
Игорь Шевченко (2004-10-15 23:16:00) [10]cerber1 © (15.10.04 22:19) [6]
> Библиотека не моя
Какая разница ?
> и поетому отладчик отпадает
Я не говорю - отладчик, я говорю - как отладчик.
ЗЫ: Тоже для дисера ?
cerber1 (2004-10-15 22:19:00) [11]2 Cobalt
В Винде есть одна библиотека, в ней есть одна функция("ключ в зайце, заец в ларце") и называется она(функция) MarkAppAsSystem(progid:***, bla:***) и очень хецецца ее поиметь.
2 Игорь Шевченко © (15.10.04 10:39) [5]
Библиотека не моя, и поетому отладчик отпадает(наверно). А в дизасме ее нигде нет. Нашел я ее только через Winhex
Игорь Шевченко (2004-10-15 10:39:00) [12]cerber1 © (14.10.04 22:16) [2]
Очень просто. Отладчик по такому принципу работает. Начало требуемой функции заменяется собственным кодом, после всех нужных манипуляций исходный код возвращается на место, и функция вызывается по тому же адресу.
Cobalt (2004-10-15 08:43:00) [13]2cerber1 ©
Кого крякаем?
GILBEITS (2004-10-15 07:37:00) [14]Удалено модератором
cerber1 (2004-10-14 22:16:00) [15]Наверно неправильно поставил вопрос:
мне необходимо перехватить данную функцию во время ее вызова и модифицировать передаваемые параметры.Как?
Cobalt (2004-10-13 23:52:00) [16]ГЫ (: Непосредственно вызвать её :)
P.S. Каков вопрос - таков ответ.