ZwQueryInformationThread

Тема в разделе "WASM.BEGINNERS", создана пользователем mAgoja, 22 июл 2007.

  1. mAgoja

    mAgoja New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    114
    Адрес:
    Ukraine
    Еше раз все прив :)
    ребят здесь такой прикол, мож кто сталкивался...
    пытаюсь вызвать ZwQueryInformationThread... к проекту подключил из DDK ntdll.lib, прототип
    ZwQueryInformationThread такой:

    Код (Text):
    1. typedef enum _THREAD_INFORMATION_CLASS
    2. {
    3.     ThreadBasicInformation,
    4.     ThreadTimes,
    5.     ThreadPriority,
    6.     ThreadBasePriority,
    7.     ThreadAffinityMask,
    8.     ThreadImpersonationToken,
    9.     ThreadDescriptorTableEntry,
    10.     ThreadEnableAlignmentFaultFixup,
    11.     ThreadEventPair,
    12.     ThreadQuerySetWin32StartAddress,
    13.     ThreadZeroTlsCell,
    14.     ThreadPerformanceCount,
    15.     ThreadAmILastThread,
    16.     ThreadIdealProcessor,
    17.     ThreadPriorityBoost,
    18.     ThreadSetTlsArrayAddress,
    19.     ThreadIsIoPending,
    20.     ThreadHideFromDebugger
    21. } THREAD_INFORMATION_CLASS, *PTHREAD_INFORMATION_CLASS;
    22. typedef struct THREAD_BASIC_INFORMATION
    23. {
    24.     DWORD ExitSTatus;
    25.     DWORD TebBaseAddress;
    26.     CLIENT_ID ClientId;
    27.     DWORD AffinityMask;
    28.     DWORD Priority;
    29.     DWORD BasePriority;
    30. };
    31.  
    32. NTSYSAPI
    33. NTSTATUS
    34. NTAPI
    35. ZwQueryInformationThread(
    36.  
    37.   IN HANDLE               ThreadHandle,
    38.   IN THREAD_INFORMATION_CLASS ThreadInformationClass,
    39.   OUT PVOID               ThreadInformation,
    40.   IN ULONG                ThreadInformationLength,
    41.   OUT PULONG              ReturnLength OPTIONAL);
    При линковке мне студия говорит:
    Error 10 error LNK2019: unresolved external symbol "__declspec(dllimport) long __stdcall ZwQueryInformationThread(unsigned long,unsigned long,void *,unsigned long,unsigned long *)" (__imp_?ZwQueryInformationThread@@YGJKKPAXKPAK@Z) referenced in function "long __stdcall FuckZwResumeThread(void *,unsigned long *)" (?FuckZwResumeThread@@YGJPAXPAK@Z) FUCK.obj
    Error 11 fatal error LNK1120: 1 unresolved externals F:\!_TEMP\TestWinApi\RealFuckDll\Debug\RealFuckDll.dll


    10 раз переписывал прототип но походу он не верный.... мож есть у кого норм прототип этой функции????
    заранее всем спасибо :)
     
  2. mAgoja

    mAgoja New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    114
    Адрес:
    Ukraine
    Говорят что ZwQueryInformationThread меняется с каждым сервис паком....
    Возможен ли другой метод, чтобы узнать информацию о потоке...?
     
  3. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Достань эту книгу: Гэри Неббет "Справочник по базовым функциям API Windows NT/2000" В сети PDF-ка есть. Будет тебе счастье.
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    И учи си, если пытаешься писать на нём.
     
  5. mAgoja

    mAgoja New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    114
    Адрес:
    Ukraine
    Всем спасибо разобрался..... ;)
    Функции ZwQueryInformationThread, NtQueryInformationThread не имеют никакой связанной библиотеки импорта..нужно использовать GetProcAddress
     
  6. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    что ты несёшь?

    ZwQueryInformationThread нормально вызывается без GetProcAddress
     
  7. mAgoja

    mAgoja New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    114
    Адрес:
    Ukraine
    RamMerLabs
    возможно я и несу что она не вызывается ZwQueryInformationThread но NtQueryInformationThread точно нет ..еп так в мсд написано...
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    видно у вас разные библиотеки импорта. в любом случае можно быстро наклепать собственную библиотеку с теми функциями, которые нужны
     
  9. mAgoja

    mAgoja New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    114
    Адрес:
    Ukraine
    Great
    я скачал вчера DDK вроде должно все быть норм... функции ZwCreateThread,ZwResumeThread вызываются без проблем....
    Great
    воспользуюсь твои советом....ша ее и наклепаю(может ченить получится))...но правда я ее уже неявно вызвал ;)
     
  10. Mental_Mirror

    Mental_Mirror New Member

    Публикаций:
    0
    Регистрация:
    7 май 2007
    Сообщения:
    431
    mAgoja
    С библиотеками импорта все в порядке. Посмотри на имя анресолвед символа - она в заманглинное (декорированное) - стало быть что-то не то с твоим прототипом данной функции, раз компилятор пихает в obj такое имя.
     
  11. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    кстати да, было бы неплохо добавить extern "C"
     
  12. mAgoja

    mAgoja New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    114
    Адрес:
    Ukraine
    Спс всем разобрался :)