首页
社区
课程
招聘
win10 x64 构造中断门出现CPU错误
发表于: 2022-6-23 19:38 6604

win10 x64 构造中断门出现CPU错误

2022-6-23 19:38
6604

本机实验环境为win10 x64,在做x64中断门提权实验时出现CPU错误。

 

本次实验分为两部分,第一部分为中断门非提权,第二部分为中断门提权。

 

测试代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    ; asm代码部分
    extern qwBuffer: qword
    .code
ReadKernelMemory proc
    mov rax, [0fffff8077806f030h]    //idt表型
    mov [qwBuffer], rax
    iretq
ReadKernelMemory endp
 
InterruptGate proc
    int 0fh
    ret 
InterruptGate endp
 
    end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// C语言部分
#include <windows.h>
#include <stdio.h>
 
EXTERN_C void InterruptGate();
EXTERN_C void ReadKernelMemory(__int64* qwBuffer);
__int64 qwBuffer;
 
 
int main()
{
    printf("func address: %p\n", ReadKernelMemory);
    system("pause");
    InterruptGate();
    printf("Done! %p\n", qwBuffer);
    system("pause");
 
    return 0;
}

中断门非提权

在ReadKernelMemory函数中执行指令mov rax,0ffffffff12345678h,构造中断门eq 0fffff8077806f0f0h 04000ee0000331000heq 0fffff8077806f0f0h 1,程序可正常执行。

中断门提权

在ReadKernelMemory函数中执行指令mov rax,[0ffffffff12345678h],中断门构造如下:

即使是在修改Cr4.SMAP/Cr4.SMEP的情况下,仍然会出现CPU错误!我并未找到原因,希望大牛解惑!

 

参考资料:B站周壑——x64探究


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

收藏
免费 2
支持
分享
最新回复 (3)
雪    币: 903
活跃值: (4970)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
有遇到同样问题的吗?
2022-6-24 10:06
0
雪    币: 903
活跃值: (4970)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
已解决,原因出在int 3中断上。。。
2022-6-25 17:26
0
雪    币: 126
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
ALwalker 已解决,原因出在int 3中断上。。。


最后于 2023-2-11 00:39 被A1v1n编辑 ,原因:
2022-11-4 16:45
0
游客
登录 | 注册 方可回帖
返回
//