某APP更新后,其二进制文件使用class-dump已无法dump出头文件【确切的说是,可以dump出头文件,但头文件里没有任何方法、属性、变量】
而且用hopper或是ida解析出来也看不到任何oc类和方法,所有的方法都被替换成sub_xxx的形式。
之前论坛里有说使用restore-symbol可以恢复,尝试了好几个版本,均以失败告终,参考的帖子有:
之后有说是class-dump版本的问题,然后也尝试了这个方案:仍然不行。。。。
https://github.com/HeiTanBc/restore-symbol
后面尝试了大佬@ 4ch12dy 的frida方式:
通过注入frida脚本能拿到二进制模块中所有的类以及类的所有方法 并能根据模块的偏移计算出方法在二进制文件中的地址,进而对应到hopper里进行分析:
但现在的问题是,所有这些方法里无法再看到任何调用其他selector的明文方法名,上面截图红框部分,没有strip符号之前 是能看到具体调用了哪些其他方法名的,所以还是得回归到restore_symbol的解决方式,直接恢复oc符号重新生成新的二进制文件。
求助 二进制文件OC符号恢复的最新姿势啊!!