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

Вниз

Перхват вызова функций DLL?   Найти похожие ветки 

 
kull ©   (2002-08-12 18:58) [0]

1. Есть DLL
2. Известны функции которые она экспортит

Есть ли способ перехватить вызов этих функций (и параметры), если заранее неизвестно какой процесс ее (DLL) загрузит.


 
Skier ©   (2002-08-12 19:03) [1]

>kull

> Есть ли способ перехватить вызов этих функций


Что-то туманно...поясни что сделать хочешь.


 
kull ©   (2002-08-12 19:14) [2]

Поясняю...

1. есть myfunctions.dll
2. В ней есть экпортируемая функция
myfunction(i: pchar): integer; stdcall;
3. неизвестно какой процесс будет ее использовать.

так вот я хочу перехватить следующую ситуацию:
1. процесс Х загружает myfunctions.dll
2. процесс Х вызывает myfunction

Задачи:
1. Надо узнать что это за процесс
2. Неплохо бы узнать и значение параметра, передаваемого в myfunction


 
Skier ©   (2002-08-12 19:20) [3]

>kull


> 1. процесс Х загружает myfunctions.dll



procedure DLLEntyPoint(AReason: Integer);
begin
case of
DLL_PROCESS_DETACH :;
DLL_PROCESS_ATTACH :; //то что тебе нужно
DLL_THREAD_ATTACH :;
DLL_THREAD_DETACH :;
end; //case
end;

DLLProc := @DLLEntyPoint

(см. Help - для подробностей)


> 2. процесс Х вызывает myfunction


Только в самой функции...


 
kull ©   (2002-08-12 19:24) [4]


> Skier © (12.08.02 19:20)

Нет я имею ввиду, что исходный код myfunctions.dll не доступен.
Она имеется в готовом виде, скомпиленном виде.


 
Skier ©   (2002-08-12 19:25) [5]

>kull
Тогда ответ отрицательный по всем пунктам...


 
kull ©   (2002-08-12 19:27) [6]

Да... Я так и знал. :(


 
Skier ©   (2002-08-12 19:29) [7]

>kull
А что если тебе при вызове (в своём host-прилдожении) всё и узнать ? :)


 
DiamondShark ©   (2002-08-12 20:20) [8]

Старую ДЛЛ переименовать.
Написать новую с таким же списком экспорта, и записать вместо старой
В новой ДЛЛ грузить старую и вызывать ее функции после своей обработки


 
MrBeer ©   (2002-08-12 20:32) [9]

Dlya etogo estj gotovie utiliti, tehnika voobhshem crackerskaya. Smotri tut http://reversing.net/tools.html


 
bytebutcher ©   (2002-08-12 20:33) [10]

>Skier (12.08.02 19.25)
ты полностью неправ - положительный ответ по всем пунктам...

>kull
Самый простой вариант - написать FAKE DLL, т.е. DLL которая экспортирует те же самые функции что и myfunctions.dll и импортирует функции из оригинальной (LoadLibrary и GetProcAddress).
Процесс можешь узнать при инициализации DLL (т.е. DLL_PROCESS_ATTACH) или GetCurrentProcessID

Для С++ на reversing.net есть парочка DLL Wrapper Wizards
P.S.
Если очень нужно пиши на мыло - напишу поподробнее.
P.S.S Кстати в свое время писал свой вариант DLL Wrapper Wizard и с поддержкой автоматических логов (+универсальный просмотрщик) и с экспортируемыми переменными и с dllforward и с поддержкой ресурсов в DLL.....
но так и не доделал - будет время добью!!!!


 
bytebutcher ©   (2002-08-12 20:39) [11]

>DiamondShark
Вот именно это я и имею ввиду


 
bytebutcher ©   (2002-08-12 20:41) [12]

а можно по типу вируса добавить свой код к EXE, но это заметно сложнее будет


 
TTCustomDelphiMaster ©   (2002-08-12 20:49) [13]

Подмени dll своей а из нее вызывай настоящию.


 
TTCustomDelphiMaster ©   (2002-08-12 20:55) [14]

Ну вот пока пиво пил тут уже разобрались :)


 
kull ©   (2002-08-13 01:15) [15]

Была у меня мысля заменить dll на свою, но тут это не подойдет.
На самом деле это gds32.dll (Interbase).

Хотелось сделать что-то вроде универсального SQL монитора.

Конечно есть специальные компоненты типа TIBMonitior.
Но хотелось бы решить эту задачу без использования этих компонентов исходя из того, что приложение работающее с БД может быть написано не на Delphi, но чтоб можно было осуществлять мониторинг его обращений к базе.



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

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

Наверх




Память: 0.5 MB
Время: 0.014 c
1-71191
Sour
2002-08-09 09:52
2002.08.22
Помогите с алгоритмом


6-71299
sm_dmitry
2002-06-10 22:00
2002.08.22
Twebbrowser и линки на exe


14-71381
Oleg_Gashev
2002-07-28 20:38
2002.08.22
Nullsoft Install


3-71051
RomaFilatov
2002-08-01 12:11
2002.08.22
Использование TClientDataSet


1-71087
nebula_
2002-08-12 12:18
2002.08.22
OleContainer