【iOS逆向】某盟App去混淆

admin 2025年1月11日14:10:17评论11 views字数 749阅读2分29秒阅读模式
【iOS逆向】某盟App去混淆

为一个身经百战的iOS逆向,如果你没有遇到过混淆,说明你没有深入竞品的核心业务。大厂的核心业务多少都有点防护,是保护自己的一种方式。今天咱分析某盟,只做学习使用。

【iOS逆向】某盟App去混淆
 目录

一.混淆方式

二.MonkeyDev下

三.frida-stalker的使用

四.总结

一.混淆方式

常见的混淆方式:bcf(虚假块), fla(控制流展开), sub(指令膨胀), Split(基本块分割),这是张总ollvm中的功能,很不错,很佩服能自己写PASS的大佬。但是,也有一些厂商会利用IDA解析的bug去做一些防护:比如故意制造堆栈不平衡,不能F5,或者函数内利用寄存器跳转BR X12,或者插入一下垃圾指令,导致IDA解析不出来等。

【iOS逆向】某盟App去混淆

二.MonkeyDev下

【iOS逆向】某盟App去混淆

在运行时,我们是可以知道x12寄存器的值,是一个地址。

二..frida-stalker

frida-stalker我主要用来采集指令的,在运行中,记录真实执行的指令,有了真实的执行指令,再配合IDAPython,在IDA上可以写很多修复脚本。

编写脚本,采集指令,生成指令json文件

【iOS逆向】某盟App去混淆

【iOS逆向】某盟App去混淆

通过2采集到指令集合,在IDA中执行修复脚本

exec(open('/Users/xxx/Desktop/Uxx/ida_fix.py').read())

效果展示

【iOS逆向】某盟App去混淆

到目前为止,一个代码还原完成了

四.总结

  • 1.找到目标函数的起始点,计算执行步骤数;

  • 2.编写stalker脚本,采集目标函数执行的指令集;

  • 3.编写IDAPython脚本,并在IDA中执行,修复目标函数

我是BestToYou,分享工作或日常学习中关于二进制逆向和分析的一些思路和一些自己闲暇时刻调试的一些程序,文中若有错误的地方,恳请大家联系我批评指正。

原文始发于微信公众号(二进制科学):【iOS逆向】某盟App去混淆

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月11日14:10:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【iOS逆向】某盟App去混淆https://cn-sec.com/archives/1886639.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息