#include <Windows.h>
PVOID HookAPI(PBYTE pbModule, PCSTR pszName, PVOID pvOrg, PVOID pvNew)
{
PIMAGE_THUNK_DATA r;
PIMAGE_NT_HEADERS p;
PIMAGE_IMPORT_DESCRIPTOR q;
p = (PIMAGE_NT_HEADERS) (pbModule + ((PIMAGE_DOS_HEADER) pbModule)->e_lfanew);
q = (PIMAGE_IMPORT_DESCRIPTOR) (pbModule +
p->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);
for (; q->Name; q++)
{
if (lstrcmpiA(pszName, (PCSTR) (pbModule + q->Name)) == 0)
{
for (r = (PIMAGE_THUNK_DATA) (pbModule + q->FirstThunk); r->u1.Function; r++)
{
if ((PVOID) r->u1.Function == pvOrg)
{
WriteProcessMemory(GetCurrentProcess(),
&r->u1.Function, &pvNew, sizeof(PVOID), NULL);
return pvOrg;
}
}
}
}
return NULL;
}
typedef VOID (__stdcall* SleepType)(DWORD);
SleepType OldSleep;
VOID __stdcall NewSleep(DWORD dwMilliseconds)
{
OldSleep(dwMilliseconds/100);
}
int main(int argc, char* argv[])
{
OldSleep = (SleepType)
HookAPI((PBYTE)GetModuleHandle(NULL), "Kernel32.dll", Sleep, NewSleep);
Sleep(20000);
Sleep(20000);
Sleep(20000);
return 0;
}
分享到:
相关推荐
修改IAT表实现HOOK,windows应用程序捆绑核心编程一书中的源代码之一。
Sample for how to hook IAT table
Hook IAT hookdll资源表
易语言 远程注入+ HookIAT,需要的朋友来下载把
IAT hook是通过修改IAT来实现hook API的方法。本示例展示了完整的IAT hook例子
加壳器 包括技术:Hook IAT, stolen codes,动态加载 编程语言:汇编。
IATHook的代码 unorder-map管理
Delphi的IAT API Hook 算還沒完成 但已經可以實現Hook了 還沒搞定CreateRemoteThread 所以只能修改自己得IAT(好爛)
IAT HOOK教程.zip
hook入门,带键盘hook源代码与学习资料
通过 IAT Hook 的方法篡改它们的导入表,使这两个程序查看不到文件系统中指定名称的文件。 三 实验过程 1、主程序 (1)功能:将自己编写的包含有攻击代码的 dll 文件注入到目标进程(本实验选择注入到“cmd.exe”...
这是一个Hook WinSocket的例子,只在原理性述如何Hook API。 直接注入就可以使用了 sdddddddddddddddd
应用层R3 IAT hook代码实现
3.那么如果我们自己做一个假函数(参数数量,参数类型,返回值保持一致即可),把加载后的IAT表中这个messageboax的真实地址替换成我们的假函数的地址...那么,程序跳转(也就是call)的时候, 就会跳转到我们的函数里面,...
通过分析PE文件格式,修改函数入口点,实现IAT HOOK
本人结合HOOK API和远程线程技术实现的一个简单的文件隐藏程序,在应用层实现文件隐藏。
本压缩包有我自己写的内存注入程序与测试程序,并附有相应的源码..会用MessageBox 去Hook 指定的函数
[易语言源码]-雷氏IATHOOK的写法
C++ 通过导入表(IAT)实现inline hook,已经过测试
主要介绍了C++基于hook iat改变Messagebox的方法,以实例形式展示了针对IAT(即导入地址表)以及hook的操作,有助于深入理解Windows程序设计原理,需要的朋友可以参考下