zoukankan      html  css  js  c++  java
  • 保护模式(三):中断门与陷阱门

    中断门与陷阱门在IDT表中,查看IDT表

    kd> dq idtr L40h
    8003f400  80538e00`0008f19c 80538e00`0008f314
    8003f410  00008500`0058113e 8053ee00`0008f6e4
    8003f420  8053ee00`0008f864 80538e00`0008f9c0
    8003f430  80538e00`0008fb34 80548e00`0008019c
    8003f440  00008500`00501198 80548e00`000805c0
    8003f450  80548e00`000806e0 80548e00`00080820
    8003f460  80548e00`00080a7c 80548e00`00080d60
    8003f470  80548e00`00081450 80548e00`00081780
    8003f480  80548e00`000818a0 80548e00`000819d8
    8003f490  80548500`00a01780 80548e00`00081b40
    8003f4a0  80548e00`00081780 80548e00`00081780
    8003f4b0  80548e00`00081780 80548e00`00081780
    8003f4c0  80548e00`00081780 80548e00`00081780
    8003f4d0  80548e00`00081780 80548e00`00081780
    8003f4e0  80548e00`00081780 80548e00`00081780
    8003f4f0  80548e00`00081780 806d8e00`00082fd0
    8003f500  00000000`00080000 00000000`00080000
    8003f510  00000000`00080000 00000000`00080000
    8003f520  00000000`00080000 00000000`00080000
    8003f530  00000000`00080000 00000000`00080000
    8003f540  00000000`00080000 00000000`00080000
    8003f550  8053ee00`0008e9de 8053ee00`0008eae0
    8003f560  8053ee00`0008ec80 8053ee00`0008f5c0
    8003f570  8053ee00`0008e481 80548e00`00081780
    8003f580  80538e00`0008db40 80538e00`0008db4a
    8003f590  80538e00`0008db54 80538e00`0008db5e
    8003f5a0  80538e00`0008db68 80538e00`0008db72
    8003f5b0  80538e00`0008db7c 806d8e00`00082728
    8003f5c0  80538e00`0008db90 80538e00`0008db9a
    8003f5d0  80538e00`0008dba4 80538e00`0008dbae
    8003f5e0  80538e00`0008dbb8 806d8e00`00083b70
    8003f5f0  80538e00`0008dbcc 80538e00`0008dbd6

    中断门基本结构与调用门相同,但Type为1110,陷阱门Type为1111

    中断门提权实验

    构造中断门为0040ee00`00081020

    #include "stdafx.h"
    //401020
    unsigned __int32 X;
    void __declspec(naked)Test(){
        __asm{
            mov eax,dword ptr ds:[0x8003f500]
            mov X,eax
            iretd
        }
    }
    
    int main(int argc, char* argv[])
    {
        __asm{
            int 0x20
        }
        printf("%x",X);
        getchar();
        return 0;
    }

    陷阱门与中断门几乎一致,区别在于中断门执行时会将IF位清零,陷阱门不会

  • 相关阅读:
    Arduino学习笔记34
    Arduino学习笔记33
    Arduino学习笔记32
    Arduino学习笔记31
    iOS7新JavaScriptCore框架入门介绍
    iOS7新JavaScriptCore框架入门介绍
    Objective C类方法load和initialize的区别
    Objective C类方法load和initialize的区别
    关于performSelector调用和直接调用区别
    apk签名原理及实现
  • 原文地址:https://www.cnblogs.com/harmonica11/p/14156745.html
Copyright © 2011-2022 走看看