加入收藏 | 设为首页 | 会员中心 | 我要投稿 好传媒网 (https://www.haochuanmei.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

来,教你如何破解一个 iOS APP

发布时间:2018-10-16 10:07:36 所属栏目:评论 来源:谢幺谢幺
导读:【新产品上线啦】51CTO播客,随时随地,碎片化学习 今天给大家来一个硬知识科普。 黑客中有一类人,注定跟程序开发者是死对头,是宿敌。 他们总跟开发者对着干: 开发者的日常是用一段段代码写出一个个软件,实现各种功能。 他们的日常则是把一个个完整的软

从此,程序员圈子里便有了“谁才是世界上最好的编程语言之争”……

来,教你如何破解一个 iOS APP

所以,当今程序世界里的规则是这样的:

程序员们先用高级语言写好程序代码,编译器把它们编译成机器能读懂的机器码用来执行。

逆向工程师的工作恰恰相反,他们直接从机器里抓取机器码,然后反汇编成汇编语言,再反编译成高级语言。

来,教你如何破解一个 iOS APP

到这里,恭喜你已经学会了反编译的原理,现在我们继续破解iOS应用。

“反编译工具网上有很多,但大体上方法分为两类:静态分析和动态调试。”

华保健说,所谓“静态分析”就是在程序不运行的状态直接反编译,把它从二进制的机器码转化成十六进制的编码、再到汇编代码,再到人类能直接理解的语言,一路转化。

在这个过程中,如果对方没有做任何防护措施,你就能直接找到并改掉里头的关键信息,比如版权信息、游戏数值等等,单挑 BOSS 怒刷装备。

来,教你如何破解一个 iOS APP

(十六进制查看程序是这样子,图源自网络)

华保健告诉我,由于反编译涉及很多不同的语言,所以没法把机器码直接还原成源代码,但是能用伪代码的形式把源代码的逻辑还原个七七八八。

所谓动态调试,顾名思义就是让程序先运行起来,在里头输入不同的值来观察各种组件、函数的反应,从而梳理出它们之间的关系。

如果把静态分析比作翻译一本外国漫画,动态调试就是翻译一部蓝光高清有码外国大片。

在整个过程中,逆向工程师需要反复调试,并且需要给程序打上“断点”,随时暂停下来慢慢欣赏,反复把玩。

来,教你如何破解一个 iOS APP

经过这两步,一个程序的运行逻辑就被完全还原。接下来,只需要找到登录验证、加密、授权等关键部位找出漏洞,篡改掉关键数据,完成破解,为所欲为。

最后,再从网上买个iOS签名,就能把代码重新打包成一个APP,安装在自己或别人的手机里。

来,教你如何破解一个 iOS APP

华保健:到这一步,一个iOS应用破解的流程就讲完啦~ 其实破解很简单,就三步,脱壳、反编译、签名打包,懂了吗?

谢幺:懂了!~

华保健:好的,既然懂了,现在随便找个APP去练练手吧~不如就试试破解微信吧!

谢幺:呃……这……

来,教你如何破解一个 iOS APP

2、如何反破解

搞懂了逆向破解的基本套路,自然也就能对症下药。

华保健的解决方法是,给APP做加固。

如果你玩过《植物大战僵尸》这款游戏,就能理解“APP加固”的意义。

来,教你如何破解一个 iOS APP

华保健告诉我,通付盾的iOS加固第一步是“环境检测”。

他们会在 APP 的最外层布置很多探针,探针实时监测运行环境,一旦发现手机处于越狱状态,或者发现环境中有逆向分析工具,就立即进入警戒状态,告警提示,或者直接让程序崩溃。

这让我不禁脑补出一万个土豆雷围着代码的样子……

来,教你如何破解一个 iOS APP

第二步,叫威胁感知。

除了检测运行环境,探针还会实时监测应用的运行状态,因为一旦程序中途中止,那就说明有人设置了“程序断点”,正在做动态调试。

第三步和第四步有些类似,分别是常量加密和符号隐藏。

代码中有一些内容永远是破解者的重点关注对象,比如一些名叫 password 的字符串,比如一些隐秘的URL。

为了防止破解者定位到这些关键位置,“常量加密”会把这些关键的字符都加密隐藏掉。“符号隐藏”类似,也是把一些类名、方法名、属性名加密隐藏起来。

总之,这两步的关键在于“打码”,保护关键部位。

第五步是“代码逻辑混淆”。

这个其实很好理解,我给大家做个比喻:

你想去超市买冈本卷纸杜蕾斯,但又是不想让人知道,于是你先去买了冈本和地瓜回来,又去操场跑两圈,再去趟超市买了卷纸和可乐,最后再去买了杜蕾斯回来。

(编辑:好传媒网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读