把ipa和dysm文件都给第三方,第三方是否可以反编译到源码的程度,危害到底有多大?


#1

问题描述:
我把ipa文件和dysm文件给了第三方,假设第三方想搞我,我给他这个危害性到底有多大?

问题来源:
目前流行很多crash日志收集平台,如蒲公英,bugly,友盟 等等,都支持上传dysm文件来符号化crash日志,帮助开发者分析问题,这个固然是方便了,但是带来一个潜在的危险,对方有了你的dysm文件,就可以去符号化你的ipa,这样对于逆向你的ipa又有了一个新的突破口,存在潜在危害。

问题分析:
如果只从dysm可以符号化ipa功能角度考虑,我们目前有一个工具 restore-symbol 可以方便的去符号化你的ipa(monkeyDev里也有集成),并且效果很好,所以别人如果真想搞你,通过这个就能符号化了,没必要dysm文件,那么问题来了,dysm文件还有别的作用吗?有了他是不是就 更无敌了呢?期望大神讨论。

参考:
http://blog.imjun.net/posts/restore-symbol-of-iOS-app/


#2

所以你的理解符号=OC函数符号?


#3

目前只用它在crash时候进行符号化,其它没有使用过,还请张总指教


#4

dsym没记错的话是包含所有符号的。(C/C++/Swift的函数/全局变量/ctor/所有类型的block 都包含在内),restore symbol只能恢复这其中的oc方法和一部分类型的block,但这些信息本来靠classdump和人肉分析/脚本也能比较轻易的获得。


#5

btw, 虽然很明显,但攻击者单靠这些是无法做到源码级的还原的。另外像bugly这种,我不认为有能力入侵腾讯服务器的人会对你的app的没什么特别大用处的dsym感兴趣。


#6

反编译源码的难度和dysm泄露与否无关。
至于dysm泄露的风险就是app被po解,协议被扒的风险高出那么一点点。