首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
编程技术
发新帖
7
5
[原创]仿写EAC的类RSA导入表非对称加密混淆(有源码)
发表于: 2026-3-30 13:06
2291
[原创]仿写EAC的类RSA导入表非对称加密混淆(有源码)
Saileaxh
1
2026-3-30 13:06
2291
<a href="elink@accK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6K6j5h3W2D9k6h3q4^5K9q4)9J5c8V1g2m8b7#2)9#2k6V1I4A6K9$3g2Q4y4h3k6u0L8i4m8G2M7Y4c8Q4y4h3k6q4L8X3y4J5P5i4m8@1i4K6u0r3j5X3I4G2j5W2)9J5c8X3#2S2K9h3&6Q4x3V1k6E0j5h3W2F1i4K6u0W2j5%4m8H3">github地址</a> <mark class="encrypted">0d4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6K6j5h3W2D9k6h3q4^5K9q4)9J5c8V1g2m8b7#2)9#2k6V1I4A6K9$3g2Q4y4h3k6u0L8i4m8G2M7Y4c8Q4y4h3k6q4L8X3y4J5P5i4m8@1i4K6u0r3j5X3I4G2j5W2)9J5c8X3#2S2K9h3&6Q4x3V1k6E0j5h3W2F1i4K6u0W2j5%4m8H3</mark> ## 问题背景 在现代的内核级安全解决方案中,通常需要用到一些未文档化的函数。这些函数可能通过`MmGetSystemRoutineAddress`、手动导入、解析SSDT或搜索特征码等各种方式被从系统中找到。找到它们后,为了防止重复查找,开发者通常会自行维护一套导入表。 例如下图中的`qword_1401F12B0`,就是驱动中自行维护的导入表数据。  ## 安全隐患 但这种数据存储方式实在是太脆弱了。这种数据通常都在驱动的`.data`节段,这使得对函数的hook变得非常简单。  这种针对驱动自行维护的导入表数据的攻击并不罕见,就连微软也正在遭受这种攻击。在微软提供的`win32k.sys`驱动中,所有Shadow SSDT函数在Windows 11 24H2版本之前都是通过这种`.data`数据指针转发到`win32kbase.sys`或者`win32kfull.sys`中的真实函数。因此产生了一种针对SSSDT的攻击方式,名为"dataptr hook",至今仍然存在。 ## 常规防御方案的局限性 如何防御这种攻击?或许你会想到自己写入后就让区段不可写,但是动态修改页面属性在Windows内核中是不受欢迎的。也有一种办法是在所有导入结束后为所有数据计算校验值,但攻击者可以通过逆向校验算法的方式为自己生成的地址计算出正确的校验值。  例如在上图中,驱动通过`sub_14007DAE0`运行时解密被加密的函数地址数据,密钥为`0xCD49623F3A849631`。攻击者将自己要设置的地址通过相同密钥加密后替换,仍然可以达成攻击目的。 ## EasyAntiCheat的解决方案 而EasyAntiCheat(EAC)敏锐地察觉到了这一点,并设计了绝佳的解决方案。 EAC通过一套简易的类RSA非对称加密算法,在初始化这些导入函数时用**私钥加密**其地址。完成加密后,EAC从内存中**销毁使用的私钥**。此时任何人将无法再修改导入函数的地址,包括它自己。 后续的解密将使用**公钥**进行。 通过简化RSA算法,我们可以还原这一过程。目标是设计一种针对8字节数据值的简易RSA算法,使用私钥加密(签名),公钥解密(验签)。尽可能无依赖且执行较快。    **注意:该实现没有考虑任何密码学安全性,实际使用时对函数地址来说通常是够用的,如果你有其他加密需求请勿参考该代码。** <a href="elink@c47K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6K6j5h3W2D9k6h3q4^5K9q4)9J5c8V1g2m8b7#2)9#2k6V1I4A6K9$3g2Q4y4h3k6u0L8i4m8G2M7Y4c8Q4y4h3k6q4L8X3y4J5P5i4m8@1i4K6u0r3j5X3I4G2j5W2)9J5c8X3#2S2K9h3&6Q4x3V1k6E0j5h3W2F1i4K6u0W2j5%4m8H3">github地址</a> <mark class="encrypted">7a4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6K6j5h3W2D9k6h3q4^5K9q4)9J5c8V1g2m8b7#2)9#2k6V1I4A6K9$3g2Q4y4h3k6u0L8i4m8G2M7Y4c8Q4y4h3k6q4L8X3y4J5P5i4m8@1i4K6u0r3j5X3I4G2j5W2)9J5c8X3#2S2K9h3&6Q4x3V1k6E0j5h3W2F1i4K6u0W2j5%4m8H3</mark>
冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。
最后于
2026-3-30 13:17 被Saileaxh编辑 ,原因:
#基础知识
#系统内核
#驱动开发
#开源分享
#开发技巧
收藏
・
7
点赞
・
5
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
wx_晨梦
为你点赞!
2026-7-16 10:45
Valdoivre
感谢你的贡献,论坛因你而更加精彩!
2026-5-9 17:57
白色风信子
感谢你的贡献,论坛因你而更加精彩!
2026-4-26 22:31
TkBinary
+1
谢谢你的细致分析,受益匪浅!
2026-4-2 16:34
我的小拇指啊
为你点赞!
2026-3-31 17:40
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
1
)
xyzliao
雪 币:
725
活跃值:
(5688)
能力值:
( LV3,RANK:20 )
在线值:
发帖
4
回帖
131
粉丝
4
关注
私信
xyzliao
2
楼
私钥加密 公钥解密?
2026-9-24 11:02
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
Saileaxh
1
18
发帖
49
回帖
80
RANK
关注
私信
他的文章
[原创]IDA插件通过预训练的机器学习模型,帮助在不同版本的x64二进制可执行文件中快速定位相同函数
7033
[原创]iida-mcp 架构优秀,性能更强,支持内核访问的ida-pro-mcp
16032
[原创] 面向Win内核的在线MCP,让你的Agent成为高级内核工程师![自动制作特征码/查询结构定义/逆向未知函数]
13094
[原创]单机DMA劫持HyperV!调试+取证两种思路解决2026腾讯游戏安全技术竞赛决赛
13187
[原创]2026腾讯游戏安全PC初赛Writeup
8753
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部