这是神马高级混淆技巧?

分析一款越狱插件,插件是注入到com.apple.UIKit的,当目标app启动时,会在目标app的启动页toast一个文字提示“xxxx”

现在要定位到这个toast提示的位置。

反汇编按字符串“xxxx”反向追踪到了一个sub_xxx的函数,然并没有调用。

根据这个帖子:Lldb调试时怎么使程序在加载某个模块成功后断下来 - #7 由 Zhang
按张总的说法lldb断点在插件的入口函数logosXXX,然后就不知道该怎么办了,后续整个逻辑都是在这个入口函数里,感觉整个插件的逻辑都内联到这个入口函数里了,bt也看不到任何调用其他sub_xx函数的地方,无从下手了!!

1 个赞

你在说什么?

:rofl:

我这样问吧:
下图是插件入口函数logsXXX的伪代码:

查看其中任何一个sub_xxx函数都是这样的结果:
图片

然后查看这个off_557B70() 都跳转到了data段:

之前从没遇到过这样的汇编代码,想了解下这是什么混淆技巧?

2 个赞

这不就是明文么…也就 JUMPOUT 要处理下…

寄存器跳转,没有工具的话先还原范围再手动修

1 个赞

怎么处理呀?没搞过 :rofl:

IDA 对 switch 的识别.pdf (453.4 KB)
IDA修复跳表.pdf (2.0 MB)

这两个方案<一个针对linux,一个针对iOS的,都差不多,针对win下的,基本也这么搞>,你自己看一哈。
我懒得写总结…
处理完了,基本都这样 :

5 个赞

我不是大神,只是一个 埋头 折腾的,码畜。遇到问题,各种谷哥,度娘…

所以,我就是一个渣渣,小白,萌新一枚。

友好的回答