`
zhangyafei_kimi
  • 浏览: 264107 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

HOOK IAT的代码与例子,备忘

阅读更多
#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

    "HooKIAT_dll"这个项目涉及到了一种常见的技术,即钩子(Hook)和IAT(Import Address Table)的修改,这是Windows应用程序核心编程的重要部分。本文将详细讲解这两个概念以及它们在实际应用中的工作原理。 首先,...

    iat_hook.zip_IAT_hook iat_iat hook_iat_sample_vb中 iat的例子

    8. **Hook_IAT**:这可能是一个额外的源代码文件或者资源文件,与IAT挂钩相关。 综合这些信息,我们可以了解到这个压缩包提供了一个VB环境下的IAT钩子示例,通过创建一个DLL并注入到目标程序(如`hooked_pass.exe`...

    Hook IAT hookdll资源表

    【标题】:Hook IAT(钩子导入地址表)与hookdll资源表 【描述】:在Windows操作系统中,Hook IAT(导入地址表)是一种常见的API钩子技术,用于拦截和修改特定API函数的调用行为。hookdll资源表通常包含关于哪些API...

    远程注入HookIAT

    在易语言中,由于其独特的编程语法,远程注入和HookIAT可能需要用到一些特定的API调用,如`CreateRemoteThread`,`VirtualAllocEx`,`WriteProcessMemory`等,这些API帮助易语言程序与操作系统进行低级别交互。...

    VC实现IAT hook例子

    IAT hook是通过修改IAT来实现hook API的方法。本示例展示了完整的IAT hook例子

    Packer(Hook IAT + stolen Codes)

    《Packer:Hook IAT与Stolen Codes技术详解》 在IT安全领域,"Packer"是一种工具,用于对可执行文件进行压缩、加密或优化,以提高其运行效率或保护代码不被轻易分析。本篇文章将深入探讨Packer中的核心技术——Hook...

    HOOK-IAT.rar_IAT_iat hook_pe iat_pe 入口点hook_入口点

    标题中的"HOOK-IAT.rar_IAT_iat hook_pe iat_pe 入口点hook_入口点"提到了几个关键术语,包括"HOOK-IAT"、"IAT"、"iat hook"、"pe_iat"以及"入口点hook"。这些术语主要与Windows程序的动态链接和代码注入技术相关。...

    Delphi IATHook API

    在实现跨进程的API Hook时,可能需要使用这个函数来在目标进程中执行我们的钩子代码。由于描述中提到“還沒搞定CreateRemoteThread”,这意味着在跨进程IATHook中可能遇到了技术难题,比如权限问题、线程同步或内存...

    IATHook的代码 unorder-map管理

    在这个场景中,"IATHook的代码 unorder-map管理"指的是在IATHook的实现中使用了C++标准库中的`std::unordered_map`容器来管理钩子。`std::unordered_map`是一个哈希表,提供快速的查找、插入和删除操作,是管理大量...

    APIHook例子 hook api

    APIHook是一种技术,用于在应用程序调用特定API(应用程序编程接口)时,插入自定义代码以拦截、修改或增强原始API的功能。这个例子是关于如何Hook Windows Socket API,即Winsock,来监控或改变网络通信行为。让...

    IAT(import address table) hook C++实例

    在IT领域,IAT(Import Address Table)Hook是一种常见的代码注入技术,主要用于系统级调试、安全分析和恶意软件检测。本实例将详细讲解如何使用C++通过导入表(IAT)来实现inline hook。 导入地址表(IAT)是...

    Native API 和一般 API 的 IAT Hook

    4. **安全性与兼容性**:IAT Hook可能导致程序崩溃或行为异常,因为不正确的钩子设置会影响程序的正常运行。因此,必须谨慎处理,确保恢复机制完善,防止不可预测的问题。 5. **跨进程Hook**:当目标API在其他进程...

    easyhook库的使用例子

    EasyHook库是一个强大的.NET钩子库,它允许开发者在运行时拦截和修改其他应用程序的调用,无需重新编译或修改目标代码。这个库在Windows平台上特别有用,因为Windows API提供了大量的函数调用来实现各种系统操作,而...

    HookAPI例子

    2. 插入钩子:使用特定的方法(如全局Hook、线程局部Hook、IAT(Import Address Table) Hook等)在API函数调用路径上设置钩子。 3. 实现处理函数:编写处理函数,这是当目标API被调用时会被执行的代码。它可以记录...

    IAT HOOK教程.zip

    IAT HOOK教程.zip

    应用层IAT hook

    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...

    内存注入(IAT Hook 和Inline Hook)

    本压缩包有我自己写的内存注入程序与测试程序,并附有相应的源码..会用MessageBox 去Hook 指定的函数

    hook入门,带键盘hook源代码与学习资料

    在这个主题中,我们将深入探讨"hook入门",特别是关于键盘hook的源代码与学习资料。 一、Hook的基本概念 Hook是Windows API提供的一种机制,允许开发者在特定的系统事件发生时插入自定义代码。当指定的事件触发时,...

    基于 IAT hook 的文件隐藏功能 完整代码+报告

    通过 IAT Hook 的方法篡改它们的导入表,使这两个程序查看不到文件系统中指定名称的文件。 三 实验过程 1、主程序 (1)功能:将自己编写的包含有攻击代码的 dll 文件注入到目标进程(本实验选择注入到“cmd.exe”...

    IAT+HOOK+纯手工出品+适合新手学习.zip

    3.那么如果我们自己做一个假函数(参数数量,参数类型,返回值保持一致即可),把加载后的IAT表中这个messageboax的真实地址替换成我们的假函数的地址...那么,程序跳转(也就是call)的时候, 就会跳转到我们的函数里面,...

Global site tag (gtag.js) - Google Analytics