Драйверы режима ядра

Тема в разделе "WASM.NT.KERNEL", создана пользователем wasm_test, 14 ноя 2008.

  1. KondraT

    KondraT Member

    Публикаций:
    0
    Регистрация:
    22 янв 2006
    Сообщения:
    175
    Разбираю статьи Four-F (за что ему большое спасибо, очень хорошо и толково написано), юзаю windbg + vmware на 2ой машине, но каждый шаг трассировки уж оочень долго соображает, пишет Retrieving information... при каждом степе. Напрягает немного. Это можно как-то поправить?
    syser можно через пайп как windbg заюзать или его только на vmware ставить? Не смотря на его глюки, он более понятен.
     
  2. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Проблема не в WinDbg, а в VMware. Используй WinDbg с VirtualBox'ом и всё будет хорошо.
     
  3. sl0n

    sl0n Мамонт дзена **

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    684
    К стати о птичках, никаму не известно утекали ли сорсы висты вообще ?
     
  4. JCronos

    JCronos New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2009
    Сообщения:
    98
    Слухи ходят, что утекли
     
  5. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Не могу подгрузить символы для XP SP2 в WinDbg. Скачались нормально. ChkMatch показал, что хеши совпадают, но age отличаются. Попробовал с помощью ChkMatch исправить, написало окей, но всё по прежнему .symopt+0x40 не помогает.
    .reload пишет:
    Код (Text):
    1. Loading Kernel Symbols
    2. ..........................................................................................................................................................
    3. Loading User Symbols
    4. ..........................
    5. Loading unloaded module list
    6. ..........................
    Но команда dt nt!_* ничего не выводит.
     
  6. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Что интересно в висте всё сразу заработало, dt показала структуры. В XP же очень непонятно. Кто-нибудь в теме, что это означает?
     
  7. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    Слухи-то ходят, да только кроме приватных символов ничего нигде не видно.
     
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Символы видимо подгрузились корректно. Но почему-то шалит символ - *, если ввести dt nt!_TEB, то выводит. А если dt nt!_*, то ничего. Странно.
     
  9. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Пишут, что это баг в WinDbg 6.9.0003.113. Повезло нарваться. (
     
  10. rdtsc

    rdtsc Параллелепипедов Артем

    Публикаций:
    0
    Регистрация:
    10 мар 2009
    Сообщения:
    180
    Адрес:
    Москва
    2Great
    Там около 1000стр..Это же боллее 100стр в день..Я худ лит то врядле столько прочитаю..Тем более как ты говоришь вечерами читал..Ну и скорость..
     
  11. rdtsc

    rdtsc Параллелепипедов Артем

    Публикаций:
    0
    Регистрация:
    10 мар 2009
    Сообщения:
    180
    Адрес:
    Москва
    А что вы скажите по поводу неиспользования Студии? Так ли она нужна? Единст плюс - это удобно смотреть структуры и т.д..
    Компилять дрова можно и одной командой build , предварительно сделав 2 маленьких файла в директории с исходником: Sources и Makefile , как описано в книге Язык асм и уроки програмирования на стр.472.

    Я говорю про Си-проекты драйверов
     
  12. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    rdtsc
    Ну а в качестве браузера можно юзать lynx на никсовом серваке. Аналогия не прослеживается?)
     
  13. luckysundog

    luckysundog New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2008
    Сообщения:
    106
    хорошая программа, но полноценный хидер, который можно использовать в проектах, она к сожалению не выдаст.
    никак не решена проблема с юнионами/структурами внутри юнионов/структур, информации о которых в PDB нет. PDB только определяет смещения полей.
    впрочем, в точности воссоздать описания структур невозможно(imho). хорошо хоть смещения выводит...

    вот пример:
    Код (Text):
    1. struct _LDR_DATA_TABLE_ENTRY {
    2.  
    3.   // static data ------------------------------------
    4.  
    5.   // non-static data --------------------------------
    6.   /*<thisrel this+0x0>*/ /*|0x8|*/ struct _LIST_ENTRY InLoadOrderLinks;
    7.   /*<thisrel this+0x8>*/ /*|0x8|*/ struct _LIST_ENTRY InMemoryOrderLinks;
    8.   /*<thisrel this+0x10>*/ /*|0x8|*/ struct _LIST_ENTRY InInitializationOrderLinks;
    9.   /*<thisrel this+0x18>*/ /*|0x4|*/ void* DllBase;
    10.   /*<thisrel this+0x1c>*/ /*|0x4|*/ void* EntryPoint;
    11.   /*<thisrel this+0x20>*/ /*|0x4|*/ unsigned long SizeOfImage;
    12.   /*<thisrel this+0x24>*/ /*|0x8|*/ struct _UNICODE_STRING FullDllName;
    13.   /*<thisrel this+0x2c>*/ /*|0x8|*/ struct _UNICODE_STRING BaseDllName;
    14.   /*<thisrel this+0x34>*/ /*|0x4|*/ unsigned long Flags;
    15.   /*<thisrel this+0x38>*/ /*|0x2|*/ unsigned short LoadCount;
    16.   /*<thisrel this+0x3a>*/ /*|0x2|*/ unsigned short TlsIndex;
    17.   /*<thisrel this+0x3c>*/ /*|0x8|*/ struct _LIST_ENTRY HashLinks;
    18.   /*<thisrel this+0x3c>*/ /*|0x4|*/ void* SectionPointer;
    19.   /*<thisrel this+0x40>*/ /*|0x4|*/ unsigned long CheckSum;
    20.   /*<thisrel this+0x44>*/ /*|0x4|*/ unsigned long TimeDateStamp;
    21.   /*<thisrel this+0x44>*/ /*|0x4|*/ void* LoadedImports;
    22.   /*<thisrel this+0x48>*/ /*|0x4|*/ void* EntryPointActivationContext;
    23.   /*<thisrel this+0x4c>*/ /*|0x4|*/ void* PatchInformation;
    24.  
    25.   // base classes -----------------------------------
    26.  
    27.   // friends ----------------------------------------
    28.  
    29.   // static functions -------------------------------
    30.  
    31.   // non-virtual functions --------------------------
    32.  
    33.   // virtual functions ------------------------------
    34. };
    35. // <size 0x50>
    на смещение 0x3c претендуют два разных поля. с 0x44 то же самое.
    а на самом деле там:
    Код (Text):
    1. ...
    2.     union {
    3.         LIST_ENTRY HashLinks;
    4.         struct {
    5.             PVOID SectionPointer;
    6.             ULONG CheckSum;
    7.         };
    8.     };
    9.     union {
    10.             ULONG TimeDateStamp;
    11.             PVOID LoadedImports;
    12.     };
    13. ...
    А вообще, если мне не изменяет память, в составе DIA SDK есть даже аналогичная программа. Только она не пытается в C-стиле выводить структуры, что вобщем-то правильно.
     
  14. wasm_test

    wasm_test wasm test user

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

    luckysundog New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2008
    Сообщения:
    106
    так вот я бы советовал в твою статью внести эту поправку, а то ведь это не так очевидно.
    а то я в свое время пытался эти хидеры в IDA импортировать и удивлялся, почему размеры структур не совпадают :)
     
  16. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Отредактировал, дописал про юнионы и добавил ссылку на твой пост выше.
     
  17. luckysundog

    luckysundog New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2008
    Сообщения:
    106
    а еще посоветуйте что-нибудь для удобной навигации по сорцам(речь идет о WRK).
    хотелось бы что-нибудь типа http://doxygen.reactos.org, только попроще. и так чтоб сразу - поставил и работает :)
     
  18. luckysundog

    luckysundog New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2008
    Сообщения:
    106
    (кроме Visual Studio, естественно)
     
  19. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    А чем не устраивает doxygen? Один раз сгенерил доку и лазай сколько влезет. Я им пользуюсь, мне хватает.
     
  20. Ra_

    Ra_ New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2007
    Сообщения:
    289
    Попалось на глаза - из старого
    http://ivanlef0u.free.fr/repo/ObjectDir.rar
    http://rapidshare.de/files/47853093/R0_structs.rar.html