近期做了一道CTF逆向题,牵涉到SEH异常处理机制,简单记录一下。
如果程序引发了异常,程序将利用SEH(Structured Exception Handling)机制处理异常,在处理过程中对程序进行一定的修改。
代码的执行顺序: try->_except filter->except
如果使用IDA,需要开始graph模式,在反编译的C代码中看不到。如下图所示
为了方便调试,可以手工修复异常处理:在触发异常的地方,将代码patch成jmp filter位置;然后,在filter返回位置改成nop,方便执行完filter后转到except处理。
网友评论