адрес KiDispatchInterrupt

Тема в разделе "WASM.ZEN", создана пользователем cresta, 10 фев 2006.

  1. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Вот этот код:
    Код (Text):
    1. __asm {
    2.     lea     ebx,KiDispatchInterrupt
    3.     add     ebx,2
    4.     mov     ebx,[ebx]
    5.     mov     addr,ebx
    6. }




    Равно как и
    Код (Text):
    1. cPtr = (PUCHAR)KiDispatchInterrupt;




    при каждом запуске драйвера выдаёт различные адреса, которые явно не попадают п ntoskrnl и никак не являются адресом функции.

    Почему?
     
  2. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"


    Потому что обьявлять надо правильно.



    extern

    NTKERNELAPI

    void KiDispatchInterrupt(void);
     
  3. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Угу, есть такое.

    Это что, ключевое здесь NTKERNELAPI ?

    Есть какие-то другие KiDispatchInterrupt (некернеловские), и NTKERNELAPI помогает выделить нужную из нескольких или что за фигня такая? :)))

    Этот си меня доканает когда-нибудь :dntknw:
     
  4. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    NTKERNELAPI означает _declspec(dllimport)

    Тоесть прямой импорт без переходников.
     
  5. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Понял, спасибо.