WINDOWS黑客基础(6):查看文件里面的导入表
2013-07-24 09:48
369 查看
int main(void) { HANDLE hFile = CreateFile("D:\\Shipyard.exe", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); HANDLE hFileMapping = CreateFileMapping(hFile,NULL,FILE_READ_ONLY,0,0,NULL); LPBYTE lpBaseAddress = (LPBYTE)MapViewOfFile(hFileMapping,FILE_MAP_READ,0,0,0); PIMAGE_DOS_HEADER pDostHeader = (PIMAGE_DOS_HEADER)lpBaseAddress; PIMAGE_NT_HEADERS pNtHeader = (PIMAGE_NT_HEADERS)(lpBaseAddress + pDostHeader->e_lfanew); DWORD rva_import_table = pNtHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress; PIMAGE_IMPORT_DESCRIPTOR pImport = (PIMAGE_IMPORT_DESCRIPTOR)ImageRvaToVa(pNtHeader, lpBaseAddress, rva_import_table, NULL); IMAGE_THUNK_DATA *data = NULL; while ( pImport->Name != NULL) { LPCTSTR szDllName = (LPCTSTR)ImageRvaToVa(pNtHeader,lpBaseAddress,pImport->Name,NULL); PIMAGE_THUNK_DATA pThunk = (PIMAGE_THUNK_DATA)ImageRvaToVa(pNtHeader, lpBaseAddress, pImport->OriginalFirstThunk, NULL); printf("%s\n",szDllName); while (pThunk->u1.Function) { if (pThunk->u1.AddressOfData & IMAGE_ORDINAL_FLAG32) { printf("序号:%d\n",pThunk->u1.AddressOfData & 0xffff); } else { PIMAGE_IMPORT_BY_NAME pFunName = (PIMAGE_IMPORT_BY_NAME)ImageRvaToVa( pNtHeader, lpBaseAddress, pThunk->u1.AddressOfData, NULL ); printf("%s\n",pFunName->Name); } pThunk++; } pImport ++; } }
这节也没什么难的,主要还是PE文件的解析,还要会运用ImageRvatoVa这个函数还取得对应的内存地址,就能解析出来了
相关文章推荐
- 如何将windows里面的文件导入到Linux虚拟机中
- Windows基础设置收藏:(一)将文件查看方式都改成列表查看
- windows查看iphone的crash log文件。
- windows基础编程 - 静态库、动态库文件
- windows64位Python3.5.2基础上,安装numpy、matplotlib、scipy(whl文件)安装tensorflow及sklearn包
- MyEclipse中为导入的jar包添加java原文件,可以直接查看java源码
- linux下查看(挂载)windows文件
- Linux和windows导入scv数据文件
- 查看win2003日志文件了解Windows登录类型
- Windows:文件服务器,访问进去不能查看到完整的文件
- linux下查看so文件里面的函数列表
- cocos2d-x 打包成so文件之后,如果出现错误,可以使用ndk-stack来查看里面的异常
- ubuntu查看windows下面的中文文件乱码问题
- Windows下查看文件MD5值
- ORACLE-工作常用配置及命令记录-导入sql、unl文件、查看数据库状态、修改字符集等
- 电脑C盘,WINDOWS 里面哪些文件可以删除?
- (转)使用.NET Reflector 查看Unity引擎里面的DLL文件
- 查看大文件的行数(windows 和 Ubuntu)
- ubuntu下查看windows文件乱码
- 搭建的maven项目中pom文件中的jar全部不能导入到工程里面解决