首页
社区
课程
招聘
[原创]1字节 [hook引擎] 开源分享,最高效,简单
发表于: 2018-1-17 22:01 11306

[原创]1字节 [hook引擎] 开源分享,最高效,简单

2018-1-17 22:01
11306

好久没在看学上发发文章什么的了,闲的无聊放一个1字节hook引擎源码,采用veh,不了解veh的话请移步:

https://bbs.pediy.com/thread-190668.htm

不过多扯淡,直接防源码以及使用用例。

使用用例:
#include "HookEngine.h"


void* g_jmpTo = nullptr;
__declspec(naked) void back_call()
{

	__asm jmp g_jmpTo;
}

int Add(int a, int b) {
	auto c = a + b;
	return c;
}

int main()
{
	if (!SetEngineMemory()){
		MessageBoxA(0, "失败1", "", 0);
	}

	g_jmpTo = AddHook(Add, back_call);
	if (!g_jmpTo){
		MessageBoxA(0, "失败2", "", 0);
	}

	
	auto d = Add(1, 2);
	
	MessageBoxA(0, "成功", "", 0);

	return 0;
}

备注:
#include "HookEngine.h"


void* g_jmpTo = nullptr;
__declspec(naked) void back_call()
{

	__asm jmp g_jmpTo;
}

int Add(int a, int b) {
	auto c = a + b;
	return c;
}

int main()
{
	if (!SetEngineMemory()){
		MessageBoxA(0, "失败1", "", 0);
	}

	g_jmpTo = AddHook(Add, back_call);
	if (!g_jmpTo){
		MessageBoxA(0, "失败2", "", 0);
	}

	
	auto d = Add(1, 2);
	
	MessageBoxA(0, "成功", "", 0);

	return 0;
}

1.关于接口参数的问题,是我准备预留给2.0版本的,2.0会增加如下:
   1.内置内存池系统,hook引擎所使用的功能均在内存池中使用
   2.新增jmpHook机制
   3.增加vehHook删除功能
2.VehHook会和某些调试器不兼容,因为某些调试器不会忽略异常,如vs
3.里面使用了部分c++11语法

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 1
支持
分享
最新回复 (19)
雪    币: 8196
活跃值: (2791)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
膜拜一下,期待2.0
2018-1-17 22:03
0
雪    币: 775
活跃值: (2292)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
前排膜拜支持
2018-1-17 23:15
0
雪    币: 300
活跃值: (2477)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
mark
2018-1-18 08:23
0
雪    币: 1176
活跃值: (1264)
能力值: ( LV12,RANK:380 )
在线值:
发帖
回帖
粉丝
5
看着只支持32位 
2018-1-18 09:19
0
雪    币: 102
活跃值: (462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
不明觉厉啊
2018-1-18 10:36
0
雪    币: 1
活跃值: (374)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
想到的思路,就是int3,然后异常处理中接管被hook的那一字节的opcode码.
2018-1-23 09:18
0
雪    币: 225
活跃值: (218)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
就是int3中断,然后接管,调试器用的那套
2018-1-23 10:45
0
雪    币: 36
活跃值: (1061)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
mark
2018-1-23 13:59
0
雪    币: 576
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
mark
2018-1-23 16:32
0
雪    币: 300
活跃值: (2477)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
mark
2018-1-24 14:19
0
雪    币: 322
活跃值: (113)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
mark
2018-1-25 21:40
0
雪    币: 9
活跃值: (180)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
13
用的0xcc产生异常
2018-1-26 12:24
0
雪    币: 433
活跃值: (1910)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
14
也不是纯veh..纯veh要是能解决速度问题还是很骚的
2018-1-26 19:35
0
雪    币: 6818
活跃值: (153)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
2018-1-26 22:32
0
雪    币: 9
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
小白飘过,虽然我一点点都不懂,但还是想看
2018-4-10 20:11
0
雪    币: 4154
活跃值: (1535)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
17
这个是不是不支持内核模式?
2018-4-18 17:40
0
雪    币: 190
活跃值: (84)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
Boring勇哥 这个是不是不支持内核模式?
内核模式就自己改  IDT  的  KiBreakpointTrap
2018-4-19 23:39
0
雪    币: 303
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
好深奥  小菜表示很膜拜  期待2.0
2018-4-23 12:45
0
雪    币: 10
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
可以不改字节触发异常吧,这样改一字节和改多字节没什么区别
2018-4-24 01:43
0
游客
登录 | 注册 方可回帖
返回
//