- 博客(5)
- 收藏
- 关注
原创 SEH原理剖析
用户层数据结构 TEB TEB 第一个字段是NtTib,NtTib的第一个字段ExceptionList是一个链表的头结点的首 地址. 当产生异常,系统会通过FS:[0]找到这个链表,依次调用处理异常. typedef struct _EXCEPTION_REGISTRATION_RECORD{ struct _EXCEPTION_REGISTRATION_RECORD* next; //
2017-11-05 22:44:06
1519
原创 中断与异常
中断: 由一个外部硬件产生,告知CPU,异步事件 异常: 由程序执行过程中引发,与当前处理器正在执行的任务有关,同步事件 中断与异常是由统一管理(IDT - > 中断描述符表) 系统为每一个中断或者异常都提供一个处理函数(陷阱处理器) 当中断或者异常发生,指令的执行就会转到特性的陷阱处理器中, 由该陷阱处理器完成中断或者异常的处理工作. 这些陷阱处理器被放到一张表中(数组 - > I
2017-11-05 22:43:24
196
原创 反调试
PEB BeginDebug : 调试标记位,当值为1,说明本进程处于被调试状态 //获取调试标记位的值 bool begindebug = IsDebuggerPresent(); if(begindebug) { //被调试 } 反反调试方法 : 修改PEB为原始值,OD插件自带了 原始API int info; NtQueryInfomationProcess(GetC
2017-11-05 22:42:46
306
原创 向量化异常处理
VEH : AddVectoredExceptionHandler(0,回调函数) LONG vehExceptionHandler(EXCEPTION_POINTERS* Exceptioninfo) VCH : AddVectoredContinueHandler(0,回调函数) LONG vchContinueHandler(EXCEPTION_POINTERS* Exception
2017-11-05 22:42:26
1304
原创 结构化异常处理(SEH)
结构化异常处理(SEH) 结构化异常处理(SEH) __try : 保护代码块,该代码块产生异常会抛出该异常 __finally : 终结处理器,只要离开保护代码块,就会执行finaly内的语句 __except : 异常过滤, 1 :执行异常处理块,不回到产生异常处 0 :寻找下一个异常处理 -1:回到产生异常处再次执行 unsigned long GetExceptionCo
2017-11-05 22:41:48
467
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人