Сейчас на форуме: UniSoft, bartolomeo (+6 невидимых) |
eXeL@B —› Программирование —› Структура импорта PE |
Посл.ответ | Сообщение |
|
Создано: 27 декабря 2010 19:37 · Поправил: Promix_17 · Личное сообщение · #1 Пишу программу для разбора РЕ файла, и вот дошел до такой проблемы. Известно что информация о импорте хранится в последовательности структур: typedef struct _IMAGE_IMPORT_DESCRIPTOR { union { DWORD Characteristics; // 0 for terminating null import descriptor DWORD OriginalFirstThunk; // RVA to original unbound IAT }; DWORD TimeDateStamp; // TimeDateStamp DWORD ForwarderChain; // -1 if no forwarders DWORD Name; // name of the dll DWORD FirstThunk; // RVA to IAT } IMAGE_IMPORT_DESCRIPTOR; И в OriginalFirstThunk должен находится адрес массива из элементов IMAGE_THUNK_DATA. А в FirstThunk должен находится взаимооднозначный массив из элементов IMAGE_THUNK_DATA в которые должны при загрузке записаться настоящие адреса импортируемых функций. Но вот оказалось, что изначально OriginalFirstThunk и FirstThunk указывают на идентичные массивы, т.е. в файле два дубликата одного и того же массива. А тем более в некоторых файлах вообще OriginalFirstThunk равен нулю! И информацию можно получить только из FirstThunk. Так почему возникает это дублирование, всегда ли массивы идентичны, и почему работают файлы, где OriginalFirstThunk равен 0? |
|
Создано: 27 декабря 2010 19:45 · Личное сообщение · #2 У Мэта Питрека про это вроде описанно (сейчас некогда глядеть, но вот пару ссылок): www.rsdn.ru/article/baseserv/pe_coff.xml <--------- Собственно перевод статьи Мета Питрека www.rsdn.ru/article/baseserv/peloader.xml <--------- Загрузчик PE-файлов | Сообщение посчитали полезным: Promix_17 |
|
Создано: 27 декабря 2010 19:47 · Личное сообщение · #3 [c4] пишет: У Мэта Питрека про это вроде описанно msdn.microsoft.com/en-us/magazine/cc301805.aspx msdn.microsoft.com/en-us/magazine/cc301808.aspx оригинал ----- Реверсивная инженерия - написание кода идентичного натуральному | Сообщение посчитали полезным: Promix_17 |
|
Создано: 27 декабря 2010 19:53 · Поправил: Модератор · Личное сообщение · #4 |
|
Создано: 27 декабря 2010 22:02 · Личное сообщение · #5 Да вы правы, я так PECompact распаковывал: http://exelab.ru/art/?action=view&id=325 ----- Yann Tiersen best and do not fuck |
eXeL@B —› Программирование —› Структура импорта PE |