吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8995|回复: 13
收起左侧

[系统底层] 内核实验02 中断提权 中断现场之寄存器探测

[复制链接]
BeneficialWeb 发表于 2019-9-1 19:21
本帖最后由 BeneficialWeb 于 2019-9-2 15:15 编辑

工具:VMMWare vs2017, WinDbgPrew,PCHunter64
平台:win7x64虚拟机
声明:本次实验是基于周壑大佬的视频自学而成。

实验目的主要是观察ring3进ring0的权限变化,观察寄存器的变化
实验步骤:
1.通过双机调试构造int 20号中断处理例程
2.编写代码读取两个环境下的寄存器
3.观察实验结果
[Asm] 纯文本查看 复制代码
.data
EXTERN        g_rbp:DQ
EXTERN        g_rax:DQ
EXTERN        g_rcx:DQ
EXTERN        g_rbx:DQ
EXTERN        g_rdx:DQ
EXTERN        g_rsi:DQ
EXTERN        g_rdi:DQ
EXTERN        g_rsp:DQ
EXTERN        g_cs:DW
EXTERN        g_fs:DW
EXTERN        g_ds:DW
EXTERN        g_ss:DW
EXTERN        g_gs:DW
EXTERN        g_es:DW

.code
IdtEntry PROC
        mov [g_rax+8],rax
        mov [g_rbx+8],rbx
        mov [g_rcx+8],rcx
        mov [g_rbp+8],rbp
        mov [g_rsi+8],rsi
        mov [g_rdi+8],rdi
        mov [g_rsp+8],rsp
        mov [g_rdx+8],rdx

        mov word ptr [g_cs+2],cs
        mov word ptr [g_ds+2],ds
        mov word ptr [g_ss+2],ss
        mov word ptr [g_fs+2],fs
        mov word ptr [g_es+2],es
        mov word ptr [g_gs+2],gs
        iretq
IdtEntry ENDP


go PROC
        mov [g_rax],rax
        mov [g_rbx],rbx
        mov [g_rcx],rcx
        mov [g_rbp],rbp
        mov [g_rsi],rsi
        mov [g_rdi],rdi
        mov [g_rsp],rsp
        mov [g_rdx],rdx

        mov word ptr [g_cs],cs
        mov word ptr [g_ds],ds
        mov word ptr [g_ss],ss
        mov word ptr [g_fs],fs
        mov word ptr [g_es],es
        mov word ptr [g_gs],gs
        int 20h
        ret
go ENDP
END



[C] 纯文本查看 复制代码
#include<stdlib.h>
#include<stdio.h>
#include<Windows.h>

extern VOID IdtEntry();
extern VOID go();

DWORD64 g_rax[2], g_rbx[2], g_rcx[2], g_rdx[2], g_rbp[2],g_rsi[2],g_rdi[2],g_rsp[2];
WORD g_cs[2], g_ds[2], g_ss[2], g_es[2], g_fs[2], g_gs[2];


void main()
{
	// r idtr
	// dp fffff80000b95080 l42
	// ep fffff800`054e9280 4000ee00`00101200 00000000`00000001
	if (IdtEntry != 0x140001210)
	{
		printf("error address:%p\n", IdtEntry);
		exit(-1);
	}
	go();
	printf("rax:%p\r\nrbx:%p\r\nrcx:%p\r\nrdx:%p\r\nrbp:%p\r\nrsp:%p\r\nrsi:%p\r\nrdi:%p\r\n", g_rax[0], g_rbx[0], g_rcx[0], g_rdx[0], g_rbp[0], g_rsp[0], g_rsi[0], g_rdi[0]);
	printf("cs:%04x\r\nds:%04x\r\nss:%04x\r\nes:%04x\r\nfs:%04x\r\ngs:%04x\r\n", g_cs[0], g_ds[0], g_ss[0], g_es[0], g_fs[0], g_gs[0]);
	printf("\n");
	printf("rax:%p\r\nrbx:%p\r\nrcx:%p\r\nrdx:%p\r\nrbp:%p\r\nrsp:%p\r\nrsi:%p\r\nrdi:%p\r\n", g_rax[1], g_rbx[1], g_rcx[1], g_rdx[1], g_rbp[1], g_rsp[1], g_rsi[1], g_rdi[1]);
	printf("cs:%04x\r\nds:%04x\r\nss:%04x\r\nes:%04x\r\nfs:%04x\r\ngs:%04x\r\n", g_cs[1], g_ds[1], g_ss[1], g_es[1], g_fs[1], g_gs[1]);
	system("pause");
}

实验结果:
register.png
结果分析验证:
ss.png
应该是没问题了。
总结:
在实验中学习保护模式,就不那么枯燥无聊了。






免费评分

参与人数 5吾爱币 +13 热心值 +4 收起 理由
willJ + 9 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
gaosld + 1 + 1 谢谢@Thanks!
少林大虾 + 1 热心回复!
nj001 + 1 + 1 我很赞同!
陈世界 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zhouaheng123 发表于 2019-9-1 20:16
感谢楼主分享
astrisk 发表于 2019-9-1 20:33
 楼主| BeneficialWeb 发表于 2019-9-1 21:01
astrisk 发表于 2019-9-1 21:57
BeneficialWeb 发表于 2019-9-1 21:01
b站的一个人,我也不认识,哈哈

他的视频在哪有的看
 楼主| BeneficialWeb 发表于 2019-9-2 09:49
astrisk 发表于 2019-9-1 21:57
他的视频在哪有的看

哔哩哔哩啊,。。。。
头像被屏蔽
wozaibj 发表于 2019-9-2 12:01
提示: 作者被禁止或删除 内容自动屏蔽
TZ弹指之间 发表于 2019-9-2 15:33

感谢楼主分享
Slaughter-Infer 发表于 2019-9-2 16:50
感谢楼主分享
gaosld 发表于 2019-9-2 17:56
谢谢分享学习经验
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-22 12:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表