Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.47 MB
Время: 0.034 c
1-1100784772
aglar
2004-11-18 16:32
2004.12.05
Как запустить exe файл?


14-1100688607
_none_
2004-11-17 13:50
2004.12.05
подскажите, пожалуйста, компоненты для работы с...


1-1100281735
*******
2004-11-12 20:48
2004.12.05
Pascal


1-1101284038
Alex_Bredin
2004-11-24 11:13
2004.12.05
Не могу записать значение в реестр


3-1099831137
Apophis
2004-11-07 15:38
2004.12.05
Отчет через MSWord





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский