首页
学习
活动
专区
圈层
工具
发布

SEH学习

因为最近分析的一个壳用到了SEH相关的代码,所以要学习一下 内容转述自《软件加密技术内幕》 一些问题和回答 异常是谁提出的 Intel 提出了中断和异常的概念,中断跟外部硬件设备有关,而异常跟内部事件有关...现在如果异常还没被线程/进程相关的异常处理程序解决的话系统就会显示一个框框告诉你程序崩溃了,让你关闭或者调试这个程序 6 在程序终结之前,系统再次调用异常线程中的所有线程(这是释放资源最后的机会) 一些关于SEH...* include hhd.h ;编译所必需的头文件 .DATA szTit db "SEH...你可以在OD菜单中的查看-SEH链中找对最前的一个SEH handler地址在反汇编中查看 你也可以在其第一句代码处下断点,然后SHIFT+F9运行程序,程序会断在SEH handler第一句处 线程...SEH 注册线程SEH的方法(汇编),进OD调试下就知道为什么了 assume fs:nothing push SehHandler push [fs:0]mov [fs:0],esp 线程SEH使用例子

82320
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    VEH&SEH异常详解

    里面是没有这个函数的 跟进RtlCallVectoredExceptionHandlers,首先找全局链表(VEH链表),存储了很多个异常处理函数,如果在全局链表里面没有找到,就会继续往下找局部链表(SEH...7.线程再次返回3环后,从修正后的位置开始执行 SEH SEH就是一个跟0环异常处理结构类似的链表 首先看一下RtlpGetStackLimits 取出了fs:[8]和fs:[4] 我们知道fs...0] 拿到一系列的参数之后,会首先进行一系列的判断 RtlpExecuteHandlerForException 最后调用RtlpExecuteHandlerForException处理异常 SEH...链表的第一个成员 2.SEH的异常处理函数必须在当前线程的堆栈中 3.只有当VEH中的异常处理函数不存在或者不处理才会到SEH链表中查找 SEH异常流程 1.RtlpGetStackLimits取出_NT_TIB...EXCEPTION_EXECUTE_HANDLER:EXCEPTION_CONTINUE_SEARCH) { printf("SEH function run"); } } int main(

    1.2K10

    利用SEHOP防御结构化异常处理程序(SEH)覆盖攻击

    利用SEHOP防御结构化异常处理程序(SEH)覆盖攻击微软安全工程中心的一项职责是研究纵深防御技术,使攻击者更难成功利用软件漏洞。...攻击技术:SEH覆盖SEHOP缓解措施的目的是防止攻击者能够使用结构化异常处理程序(SEH)覆盖利用技术。...自该论文发表以来,SEH覆盖技术已成为攻击者的标准武器。最新版Metasploit框架中约20%的漏洞利用使用了SEH覆盖技术。...从高层次看,SEH覆盖技术利用软件漏洞通过滥用Windows提供的32位异常调度功能来执行任意代码。在功能层面,SEH覆盖通常通过使用基于栈的缓冲区溢出来覆盖存储在线程栈上的异常注册记录实现。...我们鼓励用户在默认未启用此功能时启用它,以更好地防御SEH覆盖利用技术。有关SEH覆盖和SEHOP起源的更多信息,可以参考引用的文献1,5。参考文献详见原文

    20200

    VMPROTECT处理异常2-各种异常处理(VEH,VCH,SEH,UEF)

    VEH,VCH,SEH,UEF VEH: 向量化异常处理程序(进程相关) VCH: 同上,也是向量化异常处理程序,不过它总是在最后被调用(进程相关) SEH: 结构化异常处理程序,这个不用解释了吧。...就是fs:[0]那个(线程相关) UEF: 即TopLevalEH,基于SEH的,是进程相关 因为SEH的的头部被保存在TEB(fs:[0]),所以它是线程相关的 UEF、VEH、VCH异常处理函数定义...PEXCEPTION_RECORD ExceptionRecord; PCONTEXT ContextRecord; } EXCEPTION_POINTERS, *PEXCEPTION_POINTERS; 函数调用 SEH...弹框,但是,如果把VEHFilter的返回值改为EXCEPTION_EXECUTE_HANDLER,不在调试状态下运行,不会弹VCH框,在调试状态(VS或WINDBG之类),会弹VCH框 相关结构体 SEH...链,如果存在,则交由它处理 5.如果SEH链的某个处理了异常,并且返回EXCEPTION_CONTINUE_EXECUTION,则查找VCH链,如有,则执行VCH,再执行程序 6.如果SEH链的某个处理了异常

    3.3K402
    领券