Получение номера функции SDT в user/kernel mode

Тема в разделе "WASM.NT.KERNEL", создана пользователем XPiS, 1 дек 2006.

  1. XPiS

    XPiS New Member

    Публикаций:
    0
    Регистрация:
    30 мар 2006
    Сообщения:
    13
    Правильно работает в юзер мод:

    Код (Text):
    1. HMODULE hNtDllModule = GetModuleHandle(L"ntdll.dll");
    2.  
    3. PDWORD pdwServiceNumber = (PDWORD)((DWORD)GetProcAddress(hNtDllModule, "NtOpenProcess") + 1);
    4.  
    5. // *pdwServiceNumber; // 122
    А вот написал аналог для драйвера:

    Код (Text):
    1. #define DWORD unsigned long
    2. #define PDWORD DWORD *
    3. int sdt_number = *(PDWORD) ((DWORD) NtOpenProcess + 1); // 196
    Что-то не то. Помогите, пожалуйста.
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    NtOpenProcess - указывает не на зашлушку в ntdll.dll а на реальный код.
     
  3. XPiS

    XPiS New Member

    Публикаций:
    0
    Регистрация:
    30 мар 2006
    Сообщения:
    13
    Решил-таки захардкодить.
    http://www.metasploit.com/users/opcode/syscalls.html
     
  4. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    XPiS
    Замени на ZwOpenProcess
     
  5. XPiS

    XPiS New Member

    Публикаций:
    0
    Регистрация:
    30 мар 2006
    Сообщения:
    13
    gilg
    спасибо :)