Непонятнки с PEB_LDR_DATA...

Тема в разделе "WASM.BEGINNERS", создана пользователем dyn, 25 авг 2010.

  1. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    Код (Text):
    1. #ifndef LDR_MODULE
    2. typedef struct _LDR_MODULE {
    3. LIST_ENTRY InLoadOrderModuleList;  //<-- InLoad points here
    4. LIST_ENTRY InMemoryOrderModuleList; //<-- PInMem points here
    5. LIST_ENTRY InInitializationOrderModuleList;  //<-- InInitia points here
    6. PVOID BaseAddress;
    7. PVOID EntryPoint;
    8. ULONG SizeOfImage;
    9. UNICODE_STRING FullDllName;
    10. UNICODE_STRING BaseDllName;
    11. ULONG Flags;
    12. SHORT LoadCount;
    13. SHORT TlsIndex;
    14. LIST_ENTRY HashTableEntry;
    15. ULONG TimeDateStamp;
    16. } LDR_MODULE, *PLDR_MODULE;
    17. #endif
    18.  
    19.  
    20.  
    21. #ifndef PEB_LDR_DATA
    22. typedef struct _PEB_LDR_DATA
    23. {
    24.          ULONG Length;
    25.          UCHAR Initialized;
    26.          PVOID SsHandle;
    27.          LIST_ENTRY InLoadOrderModuleList;
    28.          LIST_ENTRY InMemoryOrderModuleList;
    29.          LIST_ENTRY InInitializationOrderModuleList;
    30.          PVOID EntryInProgress;
    31. } PEB_LDR_DATA, *PPEB_LDR_DATA;
    Почему эти три списка неодинаковые?

    LIST_ENTRY InLoadOrderModuleList;
    LIST_ENTRY InMemoryOrderModuleList;
    LIST_ENTRY InInitializationOrderModuleList;

    Всмысле не порядок интересует, а почему к примеру в InLoad есть некоторые длл, и самое главное есть сам ехе, а в InInitialization - нет?
     
  2. dfrsa

    dfrsa New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2010
    Сообщения:
    88
    Вас забанили в гугле?
    InLoadOrderModuleList - список модулей в порядке загрузки
    InMemoryOrderModuleList - список модулей в порядке расположения в памяти
    InInitializationOrderModuleList - список модулей в порядке инициализации.
    Ищите.

    dt ntdll!_ldr_data_table_entry (addr-@@(#FIELD_OFFSET(ntdll!_ldr_data_table_entry, InInitializationOrderLinks))
     
  3. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    Нет, в гугле конечно же не забанили и что означает каждое поле я знаю.
    Просто вот как к примеру дллка может присутствовать в списке InLoadOrderModuleList, и в тоже время отсутствовать InInitializationOrderModuleList?

    Я ж написал
    Т.е. с порядком там все понятно. А вот с количеством неясно
     
  4. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Подниму тему.
    Тот же вопрос возник.
    На чистой Windows количество длл в разных списках разное. Почему?