异常记录分为:CPU异常记录与软件模拟异常记录
CPU异常记录例如: 除零
软件模拟异常记录例如: throw 1(c++)
CPU异常记录分析:
CPU异常后直接进入了0号中断
0号中断调用流程分析:
一丶保存当前的环境信息到Trap_Frame结构体(位于当前堆栈的位置)
二丶调用Ki386CheckDivideByZeroTrap判断是否是除零异常,(如果是就获取异常码)
三丶调用CommonDispatchException,保存异常信息到EXCEPTION_RECORD结构体(位于当前堆栈位置)
图片效果:
电脑没电了,明天再更新用户异常记录
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)