Главная страница
    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.48 MB
Время: 0.034 c
6-1091286304
Koala
2004-07-31 19:05
2004.12.05
Как програмно послать в сеть сообщение....


8-1094201150
1
2004-09-03 12:45
2004.12.05
Как сделать линии/прямые сглаженными ?


1-1100002576
Checist [root]
2004-11-09 15:16
2004.12.05
Событие скрола мыши


1-1100849104
RO
2004-11-19 10:25
2004.12.05
ProgressBar в StatusBar е


1-1101155381
Тёма
2004-11-22 23:29
2004.12.05
Печать в чужом окне





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский