Почему мы не можем объединить OriginalFirstThunk и FirstThunk в заголовок файла Windows PE? - PullRequest
0 голосов
/ 16 января 2020

Я немного растерялся. Если и OriginalFirstThunk, и FirstThunk указывают на IMAGE_IMPORT_BY_NAME, почему бы не использовать OrignalFirstThunk вместо FirstThunk?

[StructLayout(LayoutKind.Sequential)]
public struct IMAGE_IMPORT_DIRECTORY
{
    public int ImportLookupTable;  // union { Characteristics; OriginalFirstThunk }
    public int TimeDateStamp;  
    public int ForwarderChain;
    public int NameRva;            // Name
    public int ImportAddressTable; // FirstThunk
}

before load

до загрузки

after load

после загрузки

В моем понимании адрес импортированного символа хранится в массиве FirstThunk. В таком случае, почему бы не выделить поле для хранения этого адреса в OrignalFirstThunk, а отдельно открыть новый массив FirstThunk?

...