zoukankan      html  css  js  c++  java
  • 中断门


    #include <windows.h> #include <stdio.h> // 存放idtr寄存器的值 char sz[6]; // 声明一个全局变量 存放IDT表中的第二项的值 LONGLONG IdtSecond; // 用于间接获取IDT表第二项的地址 DWORD* MyFirst; // 存放IDT表第二项的地址 DWORD MySecond; VOID _declspec(naked) MyCAll() { // 将IDTR寄存器的值放入数组 _asm { sidt sz; } // IDT表的地址存放于第二个位置 // 获得的是IDT表基址的地址 MyFirst = (DWORD*)&sz[2]; // 获得IDT表第二项的值 MySecond = (*MyFirst) + 8; // 获取IDT表第二项的值 IdtSecond = *(LONGLONG*)(MySecond); // 从中断处理函数返回 _asm { iretd; } } int main() { // 产生异常,进入相应的中断处理函数 _asm { int 0x20; } printf("%llx ", IdtSecond); system("pause"); return 0; }
  • 相关阅读:
    4月24日 PHP基础
    4月22日 常用函数
    4月22日 练习题
    PHP正则数组
    PHP基础函数应用
    数据库SQL语句
    高级查询
    mysql
    CSS样式表
    词汇
  • 原文地址:https://www.cnblogs.com/duxie/p/9692182.html
Copyright © 2011-2022 走看看