首页
社区
课程
招聘
1
[原创]中老年人的远古防API-HOOK技术,欢迎年轻人挑战
发表于: 2025-4-11 12:39 3645

[原创]中老年人的远古防API-HOOK技术,欢迎年轻人挑战

2025-4-11 12:39
3645

一个x86下的防HOOK技术课题,有兴趣的可以参与挑战,本接口参数只针对Window 10以上版本进行了设置(其他版本的数据可能会有不同或变化,接口需要判断系统版本来改变接口参数设置),如果发现其他版本出现问题就不要来找茬了,感谢蛤!


感谢:

技术大牛先斩我第一刀!


每斩一刀都会对抗更新一次哦。


要求:能精准HOOK到API副本(再说一次是API副本内被HOOK,不是随便哪里都能HOOK哦,到时候你给我HOOK个底层或是NT API说自己牛逼的不行,对吧,我只对MessageBoxW做了保护处理,并没对整个底层都做了保护处理,目标是MessageBoxW这个API的副本被HOOK哦),改变对话框内容者,经过实验测试,直接送会员哦。


这里对Windows_API->MessageBoxW进行了防护处理,每次程序启动后生成的API->MessageBoxW副本地址都不一样,如图:


简单描述下:技术采用了类ASLR技术,无任何重写API代码,函数地址随机化(可以是任意函数的副本)。


Windows 杀毒对我着玩意管理的很严格,第一次运行可能Windows 杀毒会直接结束进程。

有BUG记得留言并请记得留下系统版本(Windows 7以下的版本可以不必汇报)。



[注意]看雪招聘,专注安全领域的专业人才平台!

最后于 2025-4-14 21:37 被AL10000编辑 ,原因: 更新了附件
上传的附件:
收藏
免费 1
支持
分享
赞赏记录
参与人
雪币
留言
时间
flag0
为你点赞!
2025-4-17 10:57
最新回复 (54)
雪    币: 225
活跃值: (615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
能精准HOOK到API副本,改变对话框内容者,经过实验测试,直接送会员哦。
2025-4-11 14:47
0
雪    币: 225
活跃值: (615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

各位不好意思,重新上传了附件,发现每次更新总是与Windows ASLR有些冲突,导致数据异常。

最后于 2025-4-12 21:33 被AL10000编辑 ,原因:
2025-4-12 21:32
0
雪    币: 225
活跃值: (615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
图片已上传,方便各位能很好滴理解。
2025-4-13 12:57
0
雪    币: 365
活跃值: (2497)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
2025-4-13 16:40
0
雪    币: 5084
活跃值: (5078)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
研究精神可佳,值得称赞.

但这些已经不需要玩了,很多年前的壳都有这个功能,内存载入一份DLL代码  你看几个壳没有?  就拿近点的 ZProtect  Safengine 等等... 只要有模拟API的壳都具备. 明白原理,处理的方式自然不在话下.
2025-4-13 17:57
1
雪    币: 225
活跃值: (615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
Mxixihaha 研究精神可佳,值得称赞.[em_079] 但这些已经不需要玩了,很多年前的壳都有这个功能,内存载入一份DLL代码 你看几个壳没有? 就拿近点的 ZProtect Safengine 等等. ...
不对,我这不是这个原理,呵呵。我只是对要保护的API做了处理,没有对整个DLL进行重载处理,所以,没有BASE基地址及相对偏移量来定位API副本位置。
2025-4-13 18:01
0
雪    币: 5084
活跃值: (5078)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
AL10000 不对,我这不是这个原理,呵呵。我只是对要保护的API做了处理,没有对整个DLL进行重载处理,所以,没有BASE基地址及相对偏移量来定位API副本位置。[em_014]
不重要,还有直接Copy Ntdll函数的.  也有调用int 2E执行 Zw函数的. 代码更短,甚至看不到痕迹的.
2025-4-13 18:06
0
雪    币: 225
活跃值: (615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
Mxixihaha 不重要,还有直接Copy Ntdll函数的. 也有调用int 2E执行 Zw函数的. 代码更短,甚至看不到痕迹的.

也对!只是这个微软可以在动态库函数内添加一些东西可以解决这个直接拷贝的问题,只是看他们有没有这样的心情,只是我不是简单的直接拷贝。

最后于 2025-4-13 18:10 被AL10000编辑 ,原因:
2025-4-13 18:09
0
雪    币: 5084
活跃值: (5078)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
AL10000 Mxixihaha 不重要,还有直接Copy Ntdll函数的. 也有调用int 2E执行 Zw函数的. 代码更短,甚至看不到痕迹的. ...
因为这个操作和直接模拟DLL是没得两样的, 因为API函数本身就有特征值, 然后你做这个要分配内存吧? 我之所以说相差不大就是因为壳以前发明这个用内存DLL方式,甚至是分块内存的时候大家就已经挑战过各种各样的情况了.  比如搜索特征,  比如你要读取DLL内容或者说是获取函数地址的内容.   随便一个头 push xxxx   ret 就解决了.   如果解决不了在合适的时机动态搜索函数特征就行了  比如SE的 memcpy
2025-4-13 18:18
0
雪    币: 5084
活跃值: (5078)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
还有,像你模拟的函数比内存加载更简单,为什么? 因为你的函数代码底层还是走的更底层的 MessageBoxExW 这是比内存模拟处理更加直观的点.  然后这种处理还没有内存一次加载的稳定.
2025-4-13 18:20
0
雪    币: 225
活跃值: (615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
Mxixihaha 因为这个操作和直接模拟DLL是没得两样的, 因为API函数本身就有特征值, 然后你做这个要分配内存吧? 我之所以说相差不大就是因为壳以前发明这个用内存DLL方式,甚至是分块内存的时候大家就已经挑战过各 ...
呵呵,虚拟地址的改变会直接影响到对应的某些机器码造成变动,具体可以参考Intel或是AMD 手册。
2025-4-13 18:22
0
雪    币: 225
活跃值: (615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
Mxixihaha 还有,像你模拟的函数比内存加载更简单,为什么? 因为你的函数代码底层还是走的更底层的 MessageBoxExW 这是比内存模拟处理更加直观的点. 然后这种处理还没有内存一次加载的稳定.

呵呵,不存在不稳定的情况,放心好了。

最后于 2025-4-13 18:24 被AL10000编辑 ,原因:
2025-4-13 18:24
0
雪    币: 5084
活跃值: (5078)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
AL10000 呵呵,虚拟地址的改变会直接影响到对应的某些机器码造成变动,具体可以参考Intel或是AMD 手册。
所以你壳玩少了, 谁会在意那几个硬梆梆的机器码   知道匹配特征吗??     非得是新手要 E8 XX XX XX XX 吗?   E8 ?? ?? ?? ??  是做什么的?
2025-4-13 18:25
0
雪    币: 225
活跃值: (615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
Mxixihaha 所以你壳玩少了, 谁会在意那几个硬梆梆的机器码 知道匹配特征吗?? 非得是新手要 E8 XX XX XX XX 吗? E8 ?? ?? ?? ?? 是做什么的?

我code的机器码都变动了,特征码自然也会变动呀!

最后于 2025-4-13 18:27 被AL10000编辑 ,原因:
2025-4-13 18:27
0
雪    币: 5084
活跃值: (5078)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
AL10000 Mxixihaha 还有,像你模拟的函数比内存加载更简单,为什么? 因为你的函数代码底层还是走的更底层的 MessageBoxExW 这是 ...
你喜欢你的技术你就继续,你的钻研值得肯定,但是我们不在一个空间......  加油.
2025-4-13 18:27
0
雪    币: 225
活跃值: (615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
Mxixihaha 你喜欢你的技术你就继续,你的钻研值得肯定,但是我们不在一个空间...... 加油.
都在一个空间,只是想法不同而已,OK啦,这位大神,欢迎一起讨论技术蛤。
2025-4-13 18:29
0
雪    币: 5084
活跃值: (5078)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18

这是你的调用,通过变量的方式存放你的 MyMessageBoxW 地址


这是你的MessageBoxW函数内部 , 你虽然模拟了前面,但是你这个CALL 005401A3 依旧会调用 MessageBoxExW内部,所以模拟有什么用?

这是系统的MessageBoxW 函数.


那么我用 8B FF 55 8B EC 6A 00 FF 75 14 FF 75 10 FF 75 0C FF 75 08 E8 ?? ?? ?? ?? 5D C2 10 00 难道搜索不到你的函数地址吗? 更何况还不用搜索.


自然是我们说的领域不同.


2025-4-13 18:49
1
雪    币: 5084
活跃值: (5078)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19

然后你的代码也有问题,因为你处理中间CALL的时候代码都是错误的.比如 005401A3 你应该是写MessageBoxExW的内容,但是因为你处理的原因,导致这个函数代码完全错误,兼容性就相当差了. 起码内存加载不存在这个问题.  然后你汇编引擎采集的时候就已经知道你的意图和函数名称了.

最后于 2025-4-13 18:55 被Mxixihaha编辑 ,原因:
2025-4-13 18:55
0
雪    币: 225
活跃值: (615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
Mxixihaha 这是你的调用,通过变量的方式存放你的 MyMessageBoxW 地址这是你的MessageBoxW函数内部 , 你虽然模拟了前面,但是你这个CALL 005401A3 依旧会调用 MessageBo ...

呵呵,我能生成一个API副本,就能生成N个API副本,至于我选择调用哪个副本也可以是随机的,何况,下次我还可制造新的虚拟地址,可以延迟生成,也可以延迟调用。

最后于 2025-4-13 19:00 被AL10000编辑 ,原因:
2025-4-13 18:59
0
雪    币: 225
活跃值: (615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
Mxixihaha 然后你的代码也有问题,因为你处理中间CALL的时候代码都是错误的.比如 005401A3 你应该是写MessageBoxExW的内容,但是因为你处理的原因,导致这个 ...

哦,你说这里这个问题,这套防御连这里都防都变的。

最后于 2025-4-13 20:15 被AL10000编辑 ,原因:
2025-4-13 19:02
0
雪    币: 5084
活跃值: (5078)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
AL10000 Mxixihaha 这是你的调用,通过变量的方式存放你的 MyMessageBoxW 地址这是你的MessageBoxW函数内部 , 你虽 ...
你知道攻防的特点吗?  有矛就有盾.  你能生成N个  别人也能采集N个    你调用的随机数,别人让你随机数永远返回固定值  比如数组下标 0.    先把你的代码写稳定再说.起码这就是个不成熟的点.
2025-4-13 19:02
0
雪    币: 225
活跃值: (615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
Mxixihaha 你知道攻防的特点吗? 有矛就有盾. 你能生成N个 别人也能采集N个 你调用的随机数,别人让你随机数永远返回固定值 比如数组下标 0. 先把你的代码写稳定再说.起码这就是个不成熟的点 ...
随机数算法可以自己写的吗,又不应邀要用API的,也可以又多个副本的吗,呵呵。
2025-4-13 19:03
0
雪    币: 5084
活跃值: (5078)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
AL10000 Mxixihaha 这是你的调用,通过变量的方式存放你的 MyMessageBoxW 地址这是你的MessageBoxW函数内部 , 你虽 ...
你如果研究得勤,几年后再来看这个贴子,你才能领悟你自己说的东西.
2025-4-13 19:05
0
雪    币: 225
活跃值: (615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
Mxixihaha 你如果研究得勤,几年后再来看这个贴子,你才能领悟你自己说的东西.
破解不了就是破解不了,不要找借口。
2025-4-13 19:05
1
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册