日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

10.任务门

發(fā)布時(shí)間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 10.任务门 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Reserved保留的填0就行
(TSS Segment Selector)存放TSS段描述符

任務(wù)門執(zhí)行過(guò)程:

  • INT N
  • 查IDT表,找到中斷門描述符
  • 通過(guò)中斷門描述符,查GDT表,找到任務(wù)段描述符
  • 使用TSS段中的值修改寄存器
  • IRETD返回
  • 構(gòu)造一個(gè)TSS先
    xx00e9xx`xxxx0068

    構(gòu)造IDT(我代碼的選擇子是48)
    0000e500`00480000

    代碼:

    #include<windows.h> #include<stdio.h>typedef struct TSS {DWORD link; // 保存前一個(gè) TSS 段選擇子,使用 call 指令切換寄存器的時(shí)候由CPU填寫。// 這 6 個(gè)值是固定不變的,用于提權(quán),CPU 切換棧的時(shí)候用DWORD esp0; // 保存 0 環(huán)棧指針DWORD ss0; // 保存 0 環(huán)棧段選擇子DWORD esp1; // 保存 1 環(huán)棧指針DWORD ss1; // 保存 1 環(huán)棧段選擇子DWORD esp2; // 保存 2 環(huán)棧指針DWORD ss2; // 保存 2 環(huán)棧段選擇子// 下面這些都是用來(lái)做切換寄存器值用的,切換寄存器的時(shí)候由CPU自動(dòng)填寫。DWORD cr3;DWORD eip;DWORD eflags;DWORD eax;DWORD ecx;DWORD edx;DWORD ebx;DWORD esp;DWORD ebp;DWORD esi;DWORD edi;DWORD es;DWORD cs;DWORD ss;DWORD ds;DWORD fs;DWORD gs;DWORD ldt;// 這個(gè)暫時(shí)忽略DWORD io_map; } TSS;char st[10] = { 0 }; // 0042b034 DWORD g_esp = 0; DWORD g_cs = 0;TSS tss = { // 0x00427b400x00000000,//link(DWORD)st, //esp00x00000010,//ss00x00000000,//esp10x00000000,//ss10x00000000,//esp20x00000000,//ss20x00000000,//cr30x0045a0c0,//eip-----填裸函數(shù)地址0x00000000,//eflags0x00000000,//eax0x00000000,//ecx0x00000000,//edx0x00000000,//ebx(DWORD)st, //esp0x00000000,//ebp0x00000000,//esi0x00000000,//edi0x00000023,//es 0x00000008,//cs 0x00000010,//ss0x00000023,//ds0x00000030,//fs0x00000000,//gs0x00000000,//ldt0x20ac0000 };void __declspec(naked) func() {//0045a0c0__asm {int 3mov g_esp, espxor eax,eaxmov ax, csmov g_cs, eaxiretd} } int main(int argc, char* argv[]) {printf("%x\n", &tss);printf("cr3:\n");scanf("%x", &(tss.cr3));char buffer[6] = { 0, 0, 0, 0, 0x48, 0 };__asm {int 0x20}printf("g_cs = %08x\ng_esp = %08x\n", g_cs, g_esp);getchar();return 0; } 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結(jié)

    以上是生活随笔為你收集整理的10.任务门的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。