首页
社区
课程
招聘
[原创]X64调用门的使用---R3提权R0读写MSR ---支持WIN7 WIN10
发表于: 2020-4-11 20:51 24066

[原创]X64调用门的使用---R3提权R0读写MSR ---支持WIN7 WIN10

2020-4-11 20:51
24066

X64调用门的使用---R3提权R0读写MSR ---支持WIN7 WIN10的使用,调用门是INTER的,只是系统限制不能用。我们学完内核完全可以无视系统的限制。后期会发更多干货。写个驱动安装调用门就留个大家了。网上都有X86,应该不难。。。。

   打破网上一直说X64不能使用调用门,调用门的用处很隐蔽,可以无需使用系统API无视系统。R3直接可以与R0通信,当然还可以干任何事情。。只要程序有R0的权限。一切皆有可能。。。。。。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 6
支持
分享
最新回复 (46)
雪    币: 1420
活跃值: (2281)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
还是amd爽, 我记得做当时做实验的话, 查了资料,显示 intel x64调用门 要比 amd x64复杂一点。 amd 的话 如果我没记错的话,和x86调用没有太大区别,
2020-4-11 21:39
0
雪    币: 1485
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
X64调用门不算复杂。只是win7之后系统很多限制了,自己要处理。你懂原理就容易了
2020-4-11 21:51
0
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
有一个问题就是,频繁调用会导致三重故障,CPU直接重启
这个三重故障可以在虚拟机里面看到日志,不知道楼主有没有遇到这个问题
测试的时候,可以在代码调用call fword的地方加上for循环
2020-4-12 00:10
0
雪    币: 1485
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
你代码截图看看 。要注意处理gs问题
2020-4-12 09:05
0
雪    币: 515
活跃值: (3322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wem
6
2020-4-12 21:54
0
雪    币: 73
活跃值: (923)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
已收
2020-4-12 22:27
0
雪    币: 83
活跃值: (1092)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
8
感谢分享 期待后续帖子
2020-4-13 07:59
0
雪    币: 12846
活跃值: (7554)
能力值: ( LV13,RANK:590 )
在线值:
发帖
回帖
粉丝
9
我用vs2013编译,在win7运行进不了int3断点,直接appcrash,不知道什么原因
2020-4-13 08:59
0
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
切换了gs, 并且确实是x64调用门
而不是64位下的x86调用门,见代码:






最后于 2020-4-13 16:29 被luskyc编辑 ,原因:
2020-4-13 10:02
0
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
王cb 我用vs2013编译,在win7运行进不了int3断点,直接appcrash,不知道什么原因
直接用我的代码编译x64工程
2020-4-13 10:22
0
雪    币: 12846
活跃值: (7554)
能力值: ( LV13,RANK:590 )
在线值:
发帖
回帖
粉丝
12
代码里面里面InstallCallGate怎么调用的,通过什么触发
2020-4-14 09:52
0
雪    币: 3785
活跃值: (3947)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
感谢分享!
2020-4-14 20:27
0
雪    币: 1485
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
测试6次使用调用门并下断没问题。。虚拟机三重错。有可能是FS没处理好。。你截图调用前和调用后的堆栈、寄存器的变化。
2020-4-24 09:35
0
雪    币: 1485
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
@yy虫子yy 看到使用6次调用门没问题吗
2020-4-24 09:36
0
雪    币: 405
活跃值: (2355)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
首先要安装门,不管是任务门,调用门,中断门,陷进门,都必须要用驱动,然后现代CPU还要关闭SMEP,内核隔离下,更是各种坑到你怀疑人生。
其次,都有驱动的,还要P的门。
这玩意十几年前还有用,那时候至少R3 可以想办法操纵R0 内存,现在除了装B基本没用。OS自己都不用调用门了,效率太差。
2020-4-24 10:08
1
雪    币: 1485
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
驱动安装调用门是要不走系统的api。不让系统监控阻拦。r3和r0直接通信。使用调用门效率是最高的。节省走系统各种调用流程。
2020-4-24 11:00
0
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
冰雄 @yy虫子yy 看到使用6次调用门没问题吗
调用6次是没问题
但调用次数多了,或偶尔6次就会触发三重错
所以这就有点诡异,如果你一直没触发三重错,就增加调用次数,然后把代码放在R0
2020-4-24 12:16
0
雪    币: 1485
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
其实实际也没有这种需求。有几次足够了。测多少次都不会问题的。关键是你有没有处理好各种寄存器和堆栈平衡
2020-4-24 12:23
0
雪    币: 207
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
yy虫子yy 切换了gs, 并且确实是x64调用门而不是64位下的x86调用门,见代码:
原来64位ring0内嵌汇编可以用这种方法,厉害,不过现在安装了intel的开发包,64位ring3可以__asm但ring0还得用你这种方法
2020-6-8 18:07
0
雪    币: 207
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21

@王cb 驱动安装

最后于 2020-6-8 18:23 被脚本灬丨小子编辑 ,原因:
2020-6-8 18:22
0
雪    币: 207
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
yy虫子yy 切换了gs, 并且确实是x64调用门而不是64位下的x86调用门,见代码:
这个汇编代码里 db 48h是干嘛用的?调节栈吗?
2020-6-8 18:33
0
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
脚本灬丨小子 这个汇编代码里 db 48h是干嘛用的?调节栈吗?
48h前缀表示64位操作数,66h代表16位
不加前缀默认就是32位操作数
2020-7-3 02:07
0
雪    币: 246
活跃值: (4507)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
24
call fword和call far ptr 在x64环境下编译,都没法成功实现调用门
2020-10-12 10:17
0
雪    币: 5321
活跃值: (4803)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25

汇编代码编程这样

运行后 r3程直接挂了,请问是什么情况

2020-12-13 14:12
1
游客
登录 | 注册 方可回帖
返回
//