????IMAGE_IMPORT_DESCRIPTOR ???????ε?????????????????????????????鹹??????DLL????????е?????????????NULL?????????????????????????IMAGEA_THUNK_DATA??????????????????????????????г?????DLL???????????????????????????????????RVA??

?????????????壺

typedef struct _IMAGE_IMPORT_DESCRIPTOR {
   union {
          DWORD Characteristics;
          DWORD OriginalFirstThunk;// ?????? IMAGE_THUNK_DATA ???????RVA
         }
   DWORD TimeDateStamp;// ???????????
    DWORD ForwarderChain;// ???????????0???????????
    DWORD Name;   // RVA?????DLL????????ASCII?????
    DWORD FirstThunk; //?????? IMAGE_THUNK_DATA ???????RVA???????????IAT???????????
}IMAGE_IMPORT_DESCRIPTOR??*PIMAGE_IMPORT_DESCRIPTOR


????OriginalFirstThunk ??FirstThunk?????е?????????????????????IMAGE_THUNK_DATA????????顣

????Name ?????DLL????????

????pImport??????????Σ????????????????IMAGE_IMPORT_DESCRIPTOR?????????????

????????????????????????????????????????????????????????????????????

????OriginalFirstThunk???NAT??NAT?г?????DLL????????е????????????

????FirstThunk ???IAT??IAT?г?????NAT?????????????????

????????????壺

typedef struct _IMAGE_THUNK_DATA32 {    

     union {        

               PBYTE  ForwarderString;  

               PDWORD Function;        

               DWORD Ordinal;  

               PIMAGE_IMPORT_BY_NAME  AddressOfData;    

          } u1;

} IMAGE_THUNK_DATA32;
 


?????????????У???????while(pImport->FirstThunk?????????????DLL??????????????????????DLL?е????????????????????MessageBoxA????????????????????????????NAT??????裬??????????????????????????????MessageBoxA???б???????????Сд????е??????

int WINAPI lstrcmpi(
  __in  LPCTSTR lpString1??
  __in  LPCTSTR lpString2
);


????????????????????????????????????????????IAT??????裬?????????????????????????????б??????????????????????????