Как узнать "родителей" функции

Тема в разделе "WASM.WIN32", создана пользователем VOOrDOOluck, 10 авг 2004.

  1. VOOrDOOluck

    VOOrDOOluck New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2004
    Сообщения:
    51
    Адрес:
    Ukraine
    Как узнать "родителей" функции

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

    Есть ли какойто метод это узнать или где про это можно узнать.Мне пока нужны функции для работы с виртуальной памятью,реестром и файловыми операциями.

    Заранее спасибо.
     
  2. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Какой он милый, не правда ли?
     
  3. VOOrDOOluck

    VOOrDOOluck New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2004
    Сообщения:
    51
    Адрес:
    Ukraine
    _Juicy

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

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Не совсем понятен вопрос... Но можно раскрутить стек и поглядеть кто позвал твою функцию.
     
  5. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Начнем с того, что NtVirtualAlloc == ZwVirtualAlloc,

    Это даже не сиамские близнецы, не то что "предок/потомок".

    Есть замечательный метод это узнать - заглянуть в дизассемблер.

    Вас явно интересует и еще что-то, но что именно - из

    вашего вопроса не очень понятно.
     
  6. VOOrDOOluck

    VOOrDOOluck New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2004
    Сообщения:
    51
    Адрес:
    Ukraine
    _Juicy

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



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

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    В моей ntdll.dll таких функций нет. Что до Nt==Zw - я бы был поосторожнее со знаком равенства. Они вовсе не равны.



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



    А никак :)
     
  8. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Да, пожалуй скорее это будет
    Код (Text):
    1.  
    2.  ; Exported entry  75. NtAllocateVirtualMemory
    3.  ; Exported entry 723. ZwAllocateVirtualMemory
    4.  
    5.           public ZwAllocateVirtualMemory
    6.  
    :)
     
  9. ssx

    ssx Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    336


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

    volodya wasm.ru

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

    comrade Константин Ёпрст

    Публикаций:
    0
    Регистрация:
    16 сен 2002
    Сообщения:
    232
    Адрес:
    Russian Federation
    хукай все функции, создавай дерево вызовов, и смотри по именам функций если они примерно равны
     
  12. ssx

    ssx Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    336


    нечеткая логика? :)
     
  13. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    хукай все функции



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

    comrade Константин Ёпрст

    Публикаций:
    0
    Регистрация:
    16 сен 2002
    Сообщения:
    232
    Адрес:
    Russian Federation
    если она не экспортируемая, тогда она на фиг не нужна