推荐一个查看导入表的工具
作者:Sunline lisunlin0@yahoo.com.cn 日期:2008年02月
代码下载:
http://download.csdn.net/source/359335
很多Pe工具无法正确显示某些手工构造的Pe文件的导入表(比如用Upack压缩的程序,用LordPe, Stud_Pe, eXeScope等目前都无法正确显示它们的导入表.). 于是抽空写了这个导入表查看程序, 对于编译器生成的, 手工生成的Pe文件的导入表, 都能正确显示.
由于Pe相关的工具已经很多, 功能也很完善, 这个程序仅仅显示导入表, 而且不打算加入其它功能. 这个程序既可以独立运行, 又可被其它程序调用. 调用规则符合PEiD和Stud_Pe, 可以作为Stud_Pe和PEiD的插件, 但你得自己动手把本程序的扩展名改为.dll并放到相应的plugins目录里面(由此可见, PEiD和Stud_Pe.不打算接受exe作为自己的插件 ^&^). 另外本程序也导出一个接口函数
int __stdcall ShowImportAorW(LPVOID lpFileName, BOOL bWide);
可以用以下代码调用:
// test.cpp : a simple to show how to use the function ShowImportAorW() export from ShowImport.exe
//
#include <windows.h>
int main(int argc, char* argv[])
{
FARPROC pf = NULL;
HMODULE hMod = NULL;
hMod = LoadLibrary("..\\bin\\ShowImport.exe");
// the interface for PEiD and Stud_PE
pf = GetProcAddress(hMod, "LoadDll");
LPSTR pStr = ((LPSTR (*)())pf)();
pf = GetProcAddress(hMod, "DoMyJob");
((DWORD(*)(HWND,char*,DWORD,LPVOID))pf)(NULL, "c:\\windows\\notepad.exe", NULL, NULL);
// the export founction test
pf = GetProcAddress(hMod, "ShowImportAorW");
((int (__stdcall*)(LPVOID, BOOL))pf)("c:\\windows\\notepad.exe", FALSE);
((int (__stdcall*)(LPVOID, BOOL))pf)(L"c:\\windows\\notepad.exe", TRUE);
FreeLibrary(hMod);
return 0;
}
如果有本程序无法正常查看导入表的程序,请您一定不要吝啬时间, 寄一份此程序的副本给我, 以便完善此程序.
[课程]Linux pwn 探索篇!