看啥推荐读物
专栏名称: 看雪学苑
致力于移动与安全研究的开发者社区,看雪学院(kanxue.com)官方微信公众帐号。
今天看啥  ›  专栏  ›  看雪学苑

符号执行去除BR指令混淆

看雪学苑  · 公众号  · 互联网安全  · 2024-03-26 17:59
一开篇    直接进入正题,BR指令的混淆,该指令完全打断了IDA的反编译流程,导致我们无法看见看清反编译流程,一般的BR指令后续都紧跟两个跳转地址具体原理如下图所示:二正文   2.1 获取符号执行的后的地址       理清出了原理,那我们怎么去除了,这里我们选择的用miasm(东西是好东西,但是资料基本没有)符号执行去除,符号执行的优点在于它到未生成ir块和不确定的分支的时候会自己停止如下图所示,利用该特点我们只需要进行树的遍历即可探索出"基本所有分支"。生成的下次跳转地址,就是下面这个表达式:call_func_ret(0x1AE20, SP + 0xFFFFFFFFFFFFFF30)[0:32]?(@64[0x545B0] + 0xFFFFFFFFF775B348,@64[0x54558] + 0xFFFFFFFFF775B348)该表达式其实是Miasm中的ExprCond表达式,因此我们只需要解析出ExprCond表达式即可,通过阅读miasm源码我们可知:src1和src2就是我们 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照