社区
进程/线程/DLL
帖子详情
我想HOOK模块的IAT的函数,请问该怎么做?(不是EXE的,是DLL的)
AnyStayIsJk
2009-04-21 10:39:23
我想HOOK模块的IAT的函数,请问该怎么做?(不是EXE的,是DLL的)
...全文
107
4
打赏
收藏
我想HOOK模块的IAT的函数,请问该怎么做?(不是EXE的,是DLL的)
我想HOOK模块的IAT的函数,请问该怎么做?(不是EXE的,是DLL的)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
猫已经找不回了
2009-04-22
打赏
举报
回复
http://bbs.pediy.com/showthread.php?t=60778
rootkit hook 之[七]--- IAT Hook
stjay
2009-04-22
打赏
举报
回复
去看雪混混保有收获
获取DLL的句柄后和EXE操的一样了
HMODULE hDll = GetModuleHandle(DllName);//LoadLibrary
if (!hDll)
return;
PIMAGE_DOS_HEADER pdh = PIMAGE_DOS_HEADER(hDll);
PIMAGE_NT_HEADERS pnh = PIMAGE_NT_HEADERS((LPSTR)hDll + pdh->e_lfanew);
PIMAGE_IMPORT_DESCRIPTOR pImportDesc = (PIMAGE_IMPORT_DESCRIPTOR)((LPSTR)hDll + pnh->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);
if (!pImportDesc)
return;
for (; pImportDesc->Name; pImportDesc ++)
{
LPSTR pszName = (LPSTR)((LPSTR)hDll + pImportDesc->Name);
if (!lstrcmpi(pszName, FuncName))//比较函数名
break;
}
if (!pImportDesc->Name)
return;
PIMAGE_THUNK_DATA pThunk = (PIMAGE_THUNK_DATA)((LPSTR)hDll + pImportDesc->FirstThunk);
for (; pThunk->u1.Function; pThunk++)
{
DWORD *ppfn = (DWORD *)&pThunk->u1.Function;
DWORD oldProtect;
if (VirtualProtectEx(g_hCurProcess, ppfn, sizeof(dwNewProc), PAGE_EXECUTE_READWRITE, &oldProtect))
{
*ppfn = (DWORD)NewProc;//改成想要的地址
VirtualProtectEx(g_hCurProcess, ppfn, sizeof(dwNewProc), oldProtect, &oldProtect);
}
}
zyhfut
2009-04-22
打赏
举报
回复
windows核心编程上有实例
cnzdgs
2009-04-22
打赏
举报
回复
PE格式都是一样的,DLL句柄就是模块的开始地址。
IAT
+
HOOK
+纯手工出品+适合新手学习.zip
1.
exe
,
dll
可以统称为
模块
,
dll
其实和
exe
本质上是一样的.这里统称为PE文件. 2.当PE文件加载到内存的时候,导入表内保存的需要导入的
函数
列表,会被释放到内存,同时
IAT
表中原来的xx会被系统修改为真实的地址. 比如...
通过修改
DLL
文件的
IAT
表(
函数
导入表)来实现api
hook
的源码
一个通过修改
DLL
文件的
IAT
表来实现的
hook
开发包源码
补丁
模块
(带源码)InlinePatch,
Hook
,内存
DLL
注入等等
下面这个
模块
是我使用易语言时写补丁最常用的一个
模块
(当然很多也是抄的),一开始我觉得bug肯定会很多,放出去肯定又会坑很多人,后来我发现坑坑更健康,当你明白一个东西的优缺点之后,你才会更好的选择你所需要...
IAT
HOOK
纯手工出品 适合新手学习-易语言
1.
exe
,
dll
可以统称为
模块
,
dll
其实和
exe
本质上是一样的.这里统称为PE文件. 2.当PE文件加载到内存的时候,导入表内保存的需要导入的
函数
列表,会被释放到内存,同时
IAT
表中原来的xx会被系统修改为真实的地址. 比如...
很出色的网络抓包工具
地址的方法,修改
IAT
就无法
HOOK
到目标
函数
了。 1.2 修改目标
函数
的前几字节,跳转到我们的
函数
,我们的
函数
里面再把那 几个字节还原,调用原
函数
。重复。缺点:多线程环境下这种方法并不 健壮。 29A杂志里面的...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章