KTHREAD, EPROCESS и другие

Тема в разделе "WASM.NT.KERNEL", создана пользователем at0s, 20 янв 2010.

  1. at0s

    at0s New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2009
    Сообщения:
    91
    Здрасвуйте,
    после трехдневных мучений по переводу KTHREAD, EPROCESS и других возникающих по цепочке структур, под vista, возник вопрос ( хотя он должен был появится сразу ): - ПОЧЕМУ WINDDK 7600.16385.0 ( свежий) транслирует структуры отлчаюшиеся от тех же структур покаэанных windbg ???
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    7600 - Win7
    WinDbg показывает символы для Vista (как я понял)
     
  3. at0s

    at0s New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2009
    Сообщения:
    91
    WinDDK -> Build Environments-> Windows Vista and Windows Server 2008
    например такой код:
    PKTHREAD pNotAlertableThread = NULL;
    PEPROCESS pSysProcess = NULL;

    поля pSysProcess (pNotAlertableThread ) имеет структуру отличную от _EPROCESS ( KTHREAD) в WinDbg,
    не хочется переписывать header файлы, стремно, ( сразу мысля пришла -- :) старею, лет 15 назад это было бы сделанно быстро и с чуством глубокого удовлетворения ), да и не думаю что, это необходимо.
     
  4. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Скорее всего "опечатка", т.к. 2008 - это серверная WIN 7.
     
  5. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Как раз-таки нет. Это "серверная" Vista, ядра у них даже одинаковые.
     
  6. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Серверная Windows 7 это Windows Server 2008 R2. Сначала её хотели назвать Windows Server 7, потом сделали R2.
     
  7. at0s

    at0s New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2009
    Сообщения:
    91
    И все таки, есть ли способ ( должен быть) транслировать в нужном формате, или все пишут собственные хидеры ?
     
  8. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    at0s
    >ПОЧЕМУ WINDDK 7600.16385.0 ( свежий) транслирует структуры
    Что значит "транслирует структуры"?

    >PEPROCESS pSysProcess = NULL;
    >поля pSysProcess имеет структуру отличную от _EPROCESS в WinDbg, не хочется переписывать header файлы
    Тоже ничего не понятно. При чём тут хидеры? Когда это в WDK стали давать полные определения структур вроде _EPROCESS?

    P.S.
    Просьба выполнять согласовывание в падежах и числах. Очень сложно парсить.
     
  9. at0s

    at0s New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2009
    Сообщения:
    91
    Sol_Ksacap

    я объявляю PEPROCESS pSysProcess = NULL, далле смотрим в дебагере:

    kd> dt nt!_EPROCESS
    +0x000 Pcb : _KPROCESS
    +0x080 ProcessLock : _EX_PUSH_LOCK
    ....................
    +0x0e8 AddressCreationLock : _EX_PUSH_LOCK
    +0x0ec RotateInProgress : Ptr32 _ETHREAD
    ...................
    +0x232 SubSystemMinorVersion : UChar
    +0x233 SubSystemMajorVersion : UChar
    +0x232 SubSystemVersion : Uint2B
    +0x234 PriorityClass : UChar
    +0x238 VadRoot : _MM_AVL_TABLE
    +0x258 Cookie : Uint4B
    +0x25c AlpcContext : _ALPC_PROCESS_CONTEXT


    kd> ??pSystemProcess struct _EPROCESS * 0x89850190
    +0x000 Pcb : _KPROCESS
    +0x06c ProcessLock
    ..........
    +0x0d0 AddressCreationLock : _KGUARDED_MUTEX
    +0x0f0 HyperSpaceLock : 1
    ..........
    +0x252 SubSystemMinorVersion : 0x1 ''
    +0x253 SubSystemMajorVersion : 0x5 ''
    +0x252 SubSystemVersion : 0x501
    +0x254 PriorityClass : 0x2 ''
    +0x258 VadRoot : _MM_AVL_TABLE
    и т.д.

    ну зти структуры описанны в хидерах, и они каким-то образом не совпадают с системными, вот в чем вопрос.
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    at0s
    Смещения полей в версиях меняются.
     
  11. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    at0s
    Эти структуры в заголовочных файлах лишь объявлены; Они не определены.
    typedef struct *_EPROCESS PEPROCESS;
    Об _ERPOCESS известно лишь то, что это есмь структура, и PEPROCESS – указатель на неё.


    >kd> ??pSystemProcess struct _EPROCESS * 0x89850190
    Здесь у тебя левый _EPROCESS, который появился в дебажной информации, вероятно, из-за линковки с какой-то либой с неактуальным определением структуры. Выход: убрать\обновить либу, или же использовать полную квалификацию символов.
     
  12. at0s

    at0s New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2009
    Сообщения:
    91
    сразу добавлю что, pSystemProcess это pSysProcess, редактировал в WASM-e
     
  13. at0s

    at0s New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2009
    Сообщения:
    91
    удалил и установил WDK -> (53) error C2037 left of 'ActiveProcessLinks' specifies undefined struct/union '_KPROCESS'

    Код (Text):
    1. PEPROCESS pSystemProcess = NULL;
    2. .....  
    3. 53. if(IsListEmpty(&pSystemProcess->ActiveProcessLinks))
    4.           DbgPrint(" * * * * * KernelExec -> No processes found!\n");
    5.  
    6. kd> dt nt!_EPROCESS
    7. .......
    8.    +0x0a0 ActiveProcessLinks : _LIST_ENTRY
    почему ?
     
  14. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Да сколько раз уже говорить можно: эти структуры не определены в заголовках WDK, они просто физически не могут быть там определены, потому как часто меняются не только от версии к версии ядра, но даже между пакетами обновлений (SP). Их нужно либо определять у себя для каждой из поддерживаемых твоим драйвером версий, либо вычислять смещения необходимых полей динамически, если это возможно.
     
  15. at0s

    at0s New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2009
    Сообщения:
    91
    x64
    спасибо,
    я этого и боялся, будем все делать руками
    еще раз убедился в тупости MS
     
  16. ohne

    ohne New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2009
    Сообщения:
    431
    при чем тут MS вобще? Недокументированная структура