· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Как узнать "родителей" функции

Посл.отвђт Сообщенiе


Дата: Авг 10, 2004 14:36:21

Как узнать "родителей" функции
У меня есть длл которая устанавливает хуки.Желательно перехватывать конечную функцию а не ее заглушки чтобы иметь контроль над всеми функциями которые входят как бы в одно семейство.Т.е. по аналогии с VirtualAlloc->NtVirtualAlloc->ZwVirtualAlloc
Есть ли какойто метод это узнать или где про это можно узнать.Мне пока нужны функции для работы с виртуальной памятью,реестром и файловыми операциями.
Заранее спасибо.


Дата: Авг 10, 2004 15:57:52

Какой он милый, не правда ли?


Дата: Авг 10, 2004 17:42:02

_Juicy
Спасибо не за любезности дают а за советы. А интерес вполне нормальный.


Дата: Авг 10, 2004 17:48:51

Не совсем понятен вопрос... Но можно раскрутить стек и поглядеть кто позвал твою функцию.


Дата: Авг 10, 2004 17:49:04

Начнем с того, что NtVirtualAlloc == ZwVirtualAlloc,
Это даже не сиамские близнецы, не то что "предок/потомок".
Есть замечательный метод это узнать - заглянуть в дизассемблер.
Вас явно интересует и еще что-то, но что именно - из
вашего вопроса не очень понятно.


Дата: Авг 10, 2004 18:09:56

_Juicy
Начнем с того, что NtVirtualAlloc == ZwVirtualAlloc В принципе да,но все таки:Из пользовательского режима,системные сервисы вызываются из NTDLL(выполняющейся в режиме пользователя), которая экспортирует NtXXX заглушки аналогичные ZwXXX.

Меня интересует кто при вызове функции (предположим CreateFile),будет выполнять ее последней из доступных в kernel или user уровне.Пример:CreateFile->ZwCreateFile->IoCreateFile.Как узнать что именно IoCreateFile будет окончательным обработчиком.


Дата: Авг 10, 2004 18:14:21

В моей ntdll.dll таких функций нет. Что до Nt==Zw - я бы был поосторожнее со знаком равенства. Они вовсе не равны.

Как узнать что именно IoCreateFile будет окончательным обработчиком

А никак :)


Дата: Авг 10, 2004 18:45:01

Да, пожалуй скорее это будет
 ; Exported entry  75. NtAllocateVirtualMemory
 ; Exported entry 723. ZwAllocateVirtualMemory

          public ZwAllocateVirtualMemory
:)


Дата: Авг 10, 2004 18:48:59

„Как узнать что именно IoCreateFile будет окончательным обработчиком

А никак :)“

как никак? а сорцы винды на что даны? :)


Дата: Авг 10, 2004 19:02:01

Здрасьте, приехали. Я ж не говорю о РУЧНЫХ методах. Есть и сырцы, есть и IDA - проблем-то никаких. Ты мне АВТОМАТИЧЕСКИ узнай, что для данной конкретной API-функции самым последним звеном будет именно эта еще одна API-функция во-о-он в том модуле. Ну как?


Дата: Авг 10, 2004 19:15:56

хукай все функции, создавай дерево вызовов, и смотри по именам функций если они примерно равны


Дата: Авг 10, 2004 19:58:11

„примерно равны“
нечеткая логика? :)


Дата: Авг 10, 2004 20:09:52

хукай все функции

А ну-ка, ну-ка. Очень хотелось бы мне увидеть как можно хукнуть неэкспортируемую модулем функцию.


Дата: Авг 12, 2004 01:20:39

если она не экспортируемая, тогда она на фиг не нужна


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.090