获取当前进程的IAT
来源:互联网 发布:ubuntu 16.04 root密码 编辑:程序博客网 时间:2024/05/16 01:30
#include <windows.h> #include <stdio.h> int main(int argc, char* argv[]) { HMODULE hModule = ::GetModuleHandleA(NULL); IMAGE_DOS_HEADER* pDosHeader = (IMAGE_DOS_HEADER*)hModule; IMAGE_OPTIONAL_HEADER* pOpNtHeader = (IMAGE_OPTIONAL_HEADER*)((BYTE*)hModule + pDosHeader->e_lfanew + 24); //这里加24 IMAGE_IMPORT_DESCRIPTOR* pImportDesc = (IMAGE_IMPORT_DESCRIPTOR*)((BYTE*)hModule + pOpNtHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress); while (pImportDesc->FirstThunk) { char* pszDllName = (char*)((BYTE*)hModule + pImportDesc->Name); printf("模块名称:%s\n", pszDllName); DWORD n = 0; //一个IMAGE_THUNK_DATA就是一个导入函数 IMAGE_THUNK_DATA* pThunk = (IMAGE_THUNK_DATA*)((BYTE*)hModule + pImportDesc->OriginalFirstThunk); while (pThunk->u1.Function) { //取得函数名称 char* pszFuncName = (char*)((BYTE*)hModule+pThunk->u1.AddressOfData+2); //函数名前面有两个.. printf("function name:%-25s, ", pszFuncName); //取得函数地址 PDWORD lpAddr = (DWORD*)((BYTE*)hModule + pImportDesc->FirstThunk) + n; //从第一个函数的地址,以后每次+4字节 printf("addrss:%X\n", lpAddr); n++; //每次增加一个DWORD pThunk++; } printf("\n"); pImportDesc++; } return 0; }
0 0
- 获取当前进程的IAT
- 获取当前进程的IAT
- 通过WINNT.H定义的结构体,获取进程IAT表
- 获取进程当前的路径
- 获取当前进程的绝对路径
- 获取当前进程的窗口
- 获取当前进程的父进程
- windows 获取当前进程的ID
- 如何获取当前进程的执行用户名?
- linux获取当前进程的CPU使用率
- VC获取当前窗口的进程信息
- delphi 获取当前进程的cpu占用率
- 获取iOS设备当前运行的进程
- 获取当前所有进程的完整路径
- android 获取当前运行进程的名称
- 获取当前运行的进程名?
- 获取AndroidAPP当前进程的名称
- win32 API获取当前进程的基质
- linux利用文件句柄恢复oracle数据
- POJ 2240 Arbitrage 最短路 Floyd
- Vijos P2010 回文日期【回文+日期计算】
- 字符串与数组和指针
- linux下gdb调试
- 获取当前进程的IAT
- Checkresult(西工大本科生成绩查询APP)项目
- 一个黑科技,天使印记胎儿3D打印算法的推测
- 单片机==日常复习
- 两种方法实现单向链表的创建、遍历、删除、查找、逆序输出(循环法和递归法)
- js实现栈类
- Window 下安装 Django
- 使用IAT表注入模块到进程中 样例
- Java-java线程:两个实现方法,死锁现象,线程通讯,线程停止等