#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;
}
分享到:
相关推荐
"HooKIAT_dll"这个项目涉及到了一种常见的技术,即钩子(Hook)和IAT(Import Address Table)的修改,这是Windows应用程序核心编程的重要部分。本文将详细讲解这两个概念以及它们在实际应用中的工作原理。 首先,...
8. **Hook_IAT**:这可能是一个额外的源代码文件或者资源文件,与IAT挂钩相关。 综合这些信息,我们可以了解到这个压缩包提供了一个VB环境下的IAT钩子示例,通过创建一个DLL并注入到目标程序(如`hooked_pass.exe`...
【标题】:Hook IAT(钩子导入地址表)与hookdll资源表 【描述】:在Windows操作系统中,Hook IAT(导入地址表)是一种常见的API钩子技术,用于拦截和修改特定API函数的调用行为。hookdll资源表通常包含关于哪些API...
在易语言中,由于其独特的编程语法,远程注入和HookIAT可能需要用到一些特定的API调用,如`CreateRemoteThread`,`VirtualAllocEx`,`WriteProcessMemory`等,这些API帮助易语言程序与操作系统进行低级别交互。...
IAT hook是通过修改IAT来实现hook API的方法。本示例展示了完整的IAT hook例子
《Packer:Hook IAT与Stolen Codes技术详解》 在IT安全领域,"Packer"是一种工具,用于对可执行文件进行压缩、加密或优化,以提高其运行效率或保护代码不被轻易分析。本篇文章将深入探讨Packer中的核心技术——Hook...
标题中的"HOOK-IAT.rar_IAT_iat hook_pe iat_pe 入口点hook_入口点"提到了几个关键术语,包括"HOOK-IAT"、"IAT"、"iat hook"、"pe_iat"以及"入口点hook"。这些术语主要与Windows程序的动态链接和代码注入技术相关。...
本压缩包有我自己写的内存注入程序与测试程序,并附有相应的源码..会用MessageBox 去Hook 指定的函数
在实现跨进程的API Hook时,可能需要使用这个函数来在目标进程中执行我们的钩子代码。由于描述中提到“還沒搞定CreateRemoteThread”,这意味着在跨进程IATHook中可能遇到了技术难题,比如权限问题、线程同步或内存...
在这个场景中,"IATHook的代码 unorder-map管理"指的是在IATHook的实现中使用了C++标准库中的`std::unordered_map`容器来管理钩子。`std::unordered_map`是一个哈希表,提供快速的查找、插入和删除操作,是管理大量...
APIHook是一种技术,用于在应用程序调用特定API(应用程序编程接口)时,插入自定义代码以拦截、修改或增强原始API的功能。这个例子是关于如何Hook Windows Socket API,即Winsock,来监控或改变网络通信行为。让...
在IT领域,IAT(Import Address Table)Hook是一种常见的代码注入技术,主要用于系统级调试、安全分析和恶意软件检测。本实例将详细讲解如何使用C++通过导入表(IAT)来实现inline hook。 导入地址表(IAT)是...
4. **安全性与兼容性**:IAT Hook可能导致程序崩溃或行为异常,因为不正确的钩子设置会影响程序的正常运行。因此,必须谨慎处理,确保恢复机制完善,防止不可预测的问题。 5. **跨进程Hook**:当目标API在其他进程...
EasyHook库是一个强大的.NET钩子库,它允许开发者在运行时拦截和修改其他应用程序的调用,无需重新编译或修改目标代码。这个库在Windows平台上特别有用,因为Windows API提供了大量的函数调用来实现各种系统操作,而...
2. 插入钩子:使用特定的方法(如全局Hook、线程局部Hook、IAT(Import Address Table) Hook等)在API函数调用路径上设置钩子。 3. 实现处理函数:编写处理函数,这是当目标API被调用时会被执行的代码。它可以记录...
IAT HOOK教程.zip
BOOL HookIAT(HMODULE module, PCSTR functionName, void* newFunc) { PIMAGE_DOS_HEADER dosHeader = (PIMAGE_DOS_HEADER)module; PIMAGE_NT_HEADERS ntHeaders = (PIMAGE_NT_HEADERS)((char*)dosHeader + dos...
在这个主题中,我们将深入探讨"hook入门",特别是关于键盘hook的源代码与学习资料。 一、Hook的基本概念 Hook是Windows API提供的一种机制,允许开发者在特定的系统事件发生时插入自定义代码。当指定的事件触发时,...
通过 IAT Hook 的方法篡改它们的导入表,使这两个程序查看不到文件系统中指定名称的文件。 三 实验过程 1、主程序 (1)功能:将自己编写的包含有攻击代码的 dll 文件注入到目标进程(本实验选择注入到“cmd.exe”...
- IAT Hook的基本思想是替换IAT中的函数指针,使其指向我们自己的代码,我们的代码在执行完毕后再调用原始函数。 2. **X64架构下的钩子实现**: - X64架构下,函数调用通常使用RIP相对寻址,因此IAT Hook的实现...