【腾讯Bugly干货分享】iOS 黑客技术大揭秘(5)

入侵的路有很多条,关键是要在开始阶段定好目标,并理清思路,不然很容易走进各种死胡同,还要学会面对失败,不要一条路走不通就放弃,最后呢,我们要善于借助各种工具,能用工具,干嘛还要去费力气。

今天分享就到这里,下面大家有问题可以提问哦!

问答环节

Q1:其实我挺好奇,这个能被破解,应该也会有被封堵的问题吧?

我们这里只是伪造了自己的参数,并调用微信原有的逻辑自动拆红包,所以技术上出了微信更新版本,是封不了的,但是如果你抢的太暴力,账号有可能被封,这里我们可以通过随机的延迟等操作来避免

Q2:我在分析 UI时候多用了一个 reveal的工具。

reveal的可视化做的比较强大,用来分析 ui很不错,有需要可以用

Q3:想问问那些安全类软件是如何防止 tweak,对微信支付宝的进程保护?

防止tweak上面我也讲到一些,不过都是从目标 app的代码层级来讲的,例如反 gdb和反注入,对于安全类软件来说,在非越狱的系统上,基本起不了作用,在越狱机上面,由于有 root权限,这时就能做很多事情了,例如检查 mach-o文件的 loadcommand、检查 DYLD_INSERT_LIBRARIES这种环境变量等

Q4:各种微信分身版能被微信后台准确的识别出来吗?如果可以识别,有哪些方方法可以去识别?

您指的是一机多装吧,ios系统通过 app的 bundleid来唯一识别一个 app,分身版大多是通过改 bundleid并重新签名和发布,在代码中可以通过监控自己 info.plist里面的 bundle id来识别是否被篡改,但是这也是不可靠的,因为黑客们还是可以通过 hook你的监控函数来绕开

Q5:看到你不少是根据方法名字面上来猜想它的意思,要是有的 app代码写的烂,我们反而不好弄了吧?还有如果红包的核心代码是用 C/C++的代码,这是不是就不能这样反汇编了?

确实会这样,代码写得烂,有点类似于“代码混淆”,会增加入侵的难度,如果核心代码是 c/c++,在汇编层面会增加阅读难度,但是只是难度增加了而已

Q6:对于哪些包括 watch和 extension的 App,在重签名时有哪些需要注意的呢? 重签名安装成功但启动就闪退可能是什么原因?

有 extension的app,在重签名时,需要记住每个 extension都需要用同样的证书单独签名,然后再对外层的 ipa进行签名,重签名后启动闪退,可以通过 xcode连接设备,点击 window->devices查看设备控制台,在控制台,会输出你那一个 dylib校验失败,还有失败的原因

Q7:听你分析逆向这么容易,那 ios防反编译有哪些方案?

ios防止反编译主要还是代码混淆,但是混淆的代价大家是知道的,而且混淆也不能完全阻止入侵,所以会得不偿失,因为这样,现在 ios开发很少用;还有一个方案就是反注入,上面讲过的,但是很容易被绕过

Q8:Android的一个安全加固保护是通过设置 PTRACEME来防止外部程序来 ptrace自己,如果 iOS APP也这样设置了,会不会导致其中一些逆向机制失效呢?

ptrace只是反调试的,不会影响逆向过程

更多精彩内容欢迎关注bugly的微信公众账号:

【腾讯Bugly干货分享】iOS 黑客技术大揭秘

腾讯 Bugly是一款专为移动开发者打造的质量监控工具,帮助开发者快速,便捷的定位线上应用崩溃的情况以及解决方案。智能合并功能帮助开发同学把每天上报的数千条 Crash 根据根因合并分类,每日日报会列出影响用户数最多的崩溃,精准定位功能帮助开发同学定位到出问题的代码行,实时上报可以在发布后快速的了解应用的质量情况,适配最新的 iOS, Android 官方操作系统,鹅厂的工程师都在使用,快来加入我们吧!

阅读 6.3k更新于 2016-09-02

本作品系 原创 , 采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议

腾讯Bugly

2.7k

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/fde9b9a5aea5cff405ec47d471e73efe.html