任务门

在这里插入图片描述
任务门的类型为 :5
低4字节的高16位是一个TSS段描述符的选择子

在这里插入图片描述
思考:已经有任务段了,为什么还提供了任务门????

实验: 通过任务门去访问任务段

构造TSS描述符写入GDT表中
构造 任务门描述符 写入idt表中 eq 8003f500 0000e500`00480000

// tssss.cpp : Defines the entry point for the console application.
//
//  
		#include "stdafx.h"
        #include "windows.h"
        #include "stdio.h"
        DWORD iTSS[26];
        DWORD ESP0[0x1000];
        DWORD ESP3[0x1000];
        
        DWORD dwESP;
        DWORD dwCS;
        DWORD dwCR3;
        char PrevTr[6]={0};
        _declspec(naked) void Call(){
            _asm{
				pushfd
				push fs
				int 3
				pop fs
				popfd
				iret
            }
        }
        int main(int argc, char* argv[])
        {

			__asm{
				push ax
				str  ax
				lea ebx,PrevTr
				mov [ebx+4],ax
				pop  ax
			}
			printf("tr=%x\n",*(PrevTr+4));
            memset(iTSS,0,sizeof(iTSS));
            memset(ESP0,0,sizeof(ESP0));
            memset(ESP3,0,sizeof(ESP3));
        
            dwESP = 0;
            dwCS = 0;
            dwCR3 = 0;
        
            iTSS[1] = (DWORD)(ESP0+0x900);    // ESP
            iTSS[2] = 0x10;                    // SS0
            iTSS[8] = (DWORD)Call;            // EIP
            iTSS[14] = (DWORD)(ESP3+0x900); // ESP3
            iTSS[18] = 0x23;    // ES
            iTSS[19] = 0x08;    // CS
            iTSS[20] = 0x10;    // SS
            iTSS[21] = 0x23;    // DS
            iTSS[22] = 0x30;    // FS
        
            printf("iTSS:%x ESP3:%x ESP0:%x\n",iTSS,(ESP3+0x900),(ESP0+0x900));
            printf("input cr3:");
            scanf("%x",&dwCR3);
            iTSS[7] = dwCR3;        // cr3
			__asm{
				int 0x20
			}
          
            printf("ESP:%x CS:%x\n",dwESP,dwCS);
            getchar();
            return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值