中断

int xx调用中断,从 三环 进入 0环操作
门用 Iret 操作 进行从 0环 返回 三环

中断调用过程:

3环 传入API的下标 -> 调用 int 2E 切换到0环 ->
2E中断中 派发函数 (call FunAry[eax]的形式调用相应的系统API) ->
进行API调用之后, 利用iRet 返回三环

中断调用实现

int 调用中断时, Push 保存 CS,SS, ESP,EIP,EFlags
IRet返回三环时,Pop 还原 以上寄存器

常用中断向量号(256项):

常用中断

中段表的利用

0x2A 项: GetTickCount Hook此函数,可实现全局加速
0x93项: 键盘的中断,可以获取键盘的扫描码

中断描述符表格式

中断描述符表格式

MSR : rdmsr / wrmsr


Tips:

int 2E 处 进行Hook 可以监控整个系统的API 调用

WinDBG命令:

!idt 显示中段表
!idt -a 显示所有中段表

KV 显示栈

文章目录
  1. 1. 中断调用过程:
  2. 2. 中断调用实现
  3. 3. 常用中断向量号(256项):
  4. 4. 中段表的利用
  5. 5. 中断描述符表格式
  6. 6. Tips:
    1. 6.1. WinDBG命令:
|