PE заголовок непонятки

Тема в разделе "WASM.BEGINNERS", создана пользователем qvant, 22 фев 2008.

  1. qvant

    qvant New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2006
    Сообщения:
    38
    Беру две одинаковые системные .dll, одну с XP, другую с 2k, гружу в иду и вижу такую картину:
    2k:
    Код (Text):
    1. .text:7969CC54                 dd offset aVersion_dll  ; "VERSION.dll"
    2. .text:7969CC58                 dd offset VERSION_dll_handle ; Module handle
    3. .text:7969CC5C                 dd offset __imp_GetFileVersionInfoA ; Delayed Import Address Table
    4. .text:7969CC60                 dd offset VERSION_dll_dint ; Delayed Import Name Table
    xp:
    Код (Text):
    1. .text:77AF2C98                 dd offset aVersion_dll - offset __ImageBase ; "VERSION.dll"
    2. .text:77AF2C9C                 dd offset VERSION_dll_handle - offset __ImageBase ; Module handle
    3. .text:77AF2CA0                 dd offset __imp_GetFileVersionInfoA - offset __ImageBase ; Delayed Import Address Table
    4. .text:77AF2CA4                 dd offset VERSION_dll_dint - offset __ImageBase ; Delayed Import Name Table
    Если посмотреть, скажем, LordPE на эти поля, то в первом случае значения будут с учётом ImageBase, во втором без.
    Вопрос - почему есть такая разница и от чего она зависит?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Что это за поля?
    Привел какие-то данные непонятно откуда, и спрашиваешь почему это так? хм.
     
  3. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    посмотри исходник... в версии для ХР там напротив этих строк (87-90строки) коментарии
    //We loxanulis po polnoi in 2k .dll. we need otnyat' ImageBase
     
  4. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Freeman
    +1 :))))))))))))))))
     
  5. qvant

    qvant New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2006
    Сообщения:
    38
    Сорри, не четко сформулировал вопрос.

    Поле PIMAGE_DELAY_IMPORT_DESCRIPTOR -> pIAT, например.

    Библиотека shell32.dll.
    Для xp:
    Код (Text):
    1. ->Delay Import Directory
    2.    1. DelayImportDescriptor:
    3.     grAttrs:          0x00000001  (dlattrRva)
    4.     DLLName (R)VA:    0x001F6380  ("WINMM.dll")
    5.     Hmod (R)VA:       0x00219E4C
    6.     IAT (R)VA:        0x001FE4D8
    Для 2k:
    Код (Text):
    1. ->Delay Import Directory
    2.    1. DelayImportDescriptor:
    3.     grAttrs:          0x00000000
    4.     DLLName (R)VA:    0x7CE9D260  ("RPCRT4.dll")
    5.     Hmod (R)VA:       0x7CF9EF74
    6.     IAT (R)VA:        0x7CF9C6D8
    Т.е. для 2к поле уже содержит ImageBase, а в xp нет.. собственно вопрос почему так.