导出表_eat_遍历_exe程序
来源:互联网 发布:按键精灵数组赋值 编辑:程序博客网 时间:2024/06/16 19:11
#include <windows.h>#include <stdio.h>//列举导出表的函数,参数就是dll模块的地址BOOLEAN EunmEATTable(PVOID ulModuleBase){//这里大家都知道是变量的声明PIMAGE_DOS_HEADER pDosHeader; //dos头结构体PIMAGE_NT_HEADERS NtDllHeader;//nt结构体IMAGE_OPTIONAL_HEADER opthdr; //可选镜像头部ULONG_PTR* arrayOfFunctionAddresses;ULONG_PTR* arrayOfFunctionNames;WORD* arrayOfFunctionOrdinals;ULONG_PTR functionOrdinal;ULONG_PTR Base, x, functionAddress;IMAGE_EXPORT_DIRECTORY *pExportTable;char *functionName;__try{//得到dos头pDosHeader=(PIMAGE_DOS_HEADER)ulModuleBase;if (pDosHeader->e_magic!=IMAGE_DOS_SIGNATURE){printf("IMAGE_DOS_SIGNATURE failed\r\n");return FALSE;}//得到NT文件头 NT结构体NtDllHeader=(PIMAGE_NT_HEADERS)(ULONG_PTR)((ULONG_PTR)pDosHeader+pDosHeader->e_lfanew);if (NtDllHeader->Signature!=IMAGE_NT_SIGNATURE){printf("IMAGE_NT_SIGNATURE failed\r\n");return FALSE;}//得到可选镜像结构体opthdr = NtDllHeader->OptionalHeader;//得到内存的导出表结构pExportTable =(IMAGE_EXPORT_DIRECTORY*)((ULONG_PTR)ulModuleBase + opthdr.DataDirectory[ IMAGE_DIRECTORY_ENTRY_EXPORT]. VirtualAddress); //得到导出表//地址arrayOfFunctionAddresses = (ULONG_PTR*)((ULONG_PTR)ulModuleBase + pExportTable->AddressOfFunctions); //地址表arrayOfFunctionNames = (ULONG_PTR*)((BYTE*)ulModuleBase + pExportTable->AddressOfNames); //函数名表arrayOfFunctionOrdinals = (WORD*)( (BYTE*)ulModuleBase + pExportTable->AddressOfNameOrdinals);//得到导出表的起始地址Base = pExportTable->Base;//然后我们开始搜索整个导出表for(x = 0; x < pExportTable->NumberOfFunctions; x++) //在整个导出表里扫描{functionName = (char*)((BYTE*)ulModuleBase + arrayOfFunctionNames[x]);functionOrdinal = arrayOfFunctionOrdinals[x] + Base - 1; functionAddress = (ULONG_PTR)((BYTE*)ulModuleBase + arrayOfFunctionAddresses[functionOrdinal]);printf("%d %s:0x%08X\r\n",x,functionName,functionAddress);}}__except(EXCEPTION_EXECUTE_HANDLER){}return FALSE;}void main(){EunmEATTable(GetModuleHandle("kernel32.dll"));system("pause");return;}
阅读全文
0 0
- 导出表_eat_遍历_exe程序
- 导出表_eat_遍历
- 使用java程序导入导出mysql表
- java 数据结构 遍历链表程序
- VC遍历dll导出函数
- VC遍历dll导出函数
- oracle数据库导出程序
- 数据库导出excel程序
- 内核程序符号导出
- JDOM遍历程序
- 遍历删除测试程序
- JDOM遍历程序
- opencv2遍历图像程序
- sql server遍历用户表导出所有表数据到文本文件
- 【C#】WindowsForm程序-导出DataGridView数据到Excel表
- sh 遍历文件夹 导出头文件
- 图的邻接表存储及深度优先遍历程序
- PE导出导出表
- 数据库连接池
- 【C/C++】从零开始的Make教程
- Linux curses库使用
- [深入浅出iOS库]之数据库 sqlite
- 像window 服务一样在web站点中执行任务
- 导出表_eat_遍历_exe程序
- 在Windows下配置Apache + OpenSSL
- LLVM学习笔记(13)
- vuejs高仿今日头条移动端
- 使用VBO:顶点缓存
- 如何在Eclipse中第一次启动一个web项目
- Weblogic命令停止部署应用的方法
- 虚拟机配置IP地址
- promise深入了解