type
status
date
slug
summary
tags
category
icon
password
在github偶然发现的一个项目,详细研究了其中原理
GitHubGitHubGitHub - cs1ime/sehcall: Windows X64 mode use seh in manual mapped dll or manual mapped sys
手动映射DLL和驱动的时候,通常不支持SEH异常处理,这种方法用来实现SEH。
routine是要执行的函数地址。
用push qword ptr[r10]伪造一个返回地址,到PocAddr。比如下图,以180026A43作为这一地址。原理是Seh特性,只要返回地址在异常表记录范围内,Windows就会正常处理seh,把ip修改回到Handler的地址,只要找到Handler代码是直接返回的函数就能实现任意使用seh
notion image
这里except(1)是异常可以被识别会被处理所有异常都会到这里来,直接把eax写1然后返回了。但如果正常返回到返回地址,则是xor eax eax清空eax再返回。因此后续通过cmp eax,0判断是否触发了异常处理即可。
内核的原理是一样的,KdpSysWriteMsr
notion image
 
iOS liapp bypass+Unity逆向+tweak开发Pixel6Pro安卓内核源码编译
Loading...