OrdinalFirstThunk
typedef struct _IMAGE_THUNK_DATA32 {
union {
PBYTE ForwarderString;
PDWORD Function;
DWORD Ordinal;
PIMAGE_IMPORT_BY_NAME AddressOfData;
} u1;
} IMAGE_THUNK_DATA32;
对于OrdinalFirstTunk有两种情况,Ordinal和AddressOfData,如果OridinalFirstThunk(是RVA还得转成RAW)指向的DWORD数据的最高位是1的话,表明是通过序数值来获得该函数的地址的,低31位是序数,如果最高位是0的话,则是通过函数名来获得该函数的地址的,此时这个DWORD数据是一个指向IMAGE_IMPORT_BY_NAME结构的RVA。
IMAGE_IMPORT_BY_NAME struct
{
WORD Hint ;该引入函数在对应的DLL输出表中的Hint值。
BYTE name ;这是个可变的字符串,用来存放函数名,
}