在virtual address知道后,怎么获得import table的在文件中的地址或者映射到内存的地址?

解决方案 »

  1.   

    映射到内存的地址我知道了,就是Virtual Address加上Image Base的值。但是还是不知道import table在文件中的地址?
      

  2.   

    以前研究过,好长时间没弄了,忘了,以前写过一个总结,你可以看看,不过是用汇编写的.http://blog.csdn.net/wltg2001/archive/2008/04/23/2317059.aspx
      

  3.   

    ULONG Delta = (ULONG) (SeciontHeader->VirtualAddress - SeciontHeader->PointerToRawData);
    ImportModuleDescriptor = (PIMAGE_IMPORT_DESCRIPTOR)(PIMAGE_IMPORT_DESCRIPTOR)(m_NtHeaders->OptionalHeader.DataDirectory
       [IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress - Delta + (ULONG)m_ImageBase);
      

  4.   

    Fzergling正解,不过最后应该是不要加上ImageBase吧?
      

  5.   

    不是解析IAT,只是想知道import table数组在文件中的位置。