来,教你如何破解一个 iOS APP
|
谢幺:呃……这……
2、如何反破解 搞懂了逆向破解的基本套路,自然也就能对症下药。 华保健的解决方法是,给APP做加固。 如果你玩过《植物大战僵尸》这款游戏,就能理解“APP加固”的意义。
华保健告诉我,通付盾的iOS加固第一步是“环境检测”。 他们会在 APP 的最外层布置很多探针,探针实时监测运行环境,一旦发现手机处于越狱状态,或者发现环境中有逆向分析工具,就立即进入警戒状态,告警提示,或者直接让程序崩溃。 这让我不禁脑补出一万个土豆雷围着代码的样子……
第二步,叫威胁感知。 除了检测运行环境,探针还会实时监测应用的运行状态,因为一旦程序中途中止,那就说明有人设置了“程序断点”,正在做动态调试。 第三步和第四步有些类似,分别是常量加密和符号隐藏。 代码中有一些内容永远是破解者的重点关注对象,比如一些名叫 password 的字符串,比如一些隐秘的URL。 为了防止破解者定位到这些关键位置,“常量加密”会把这些关键的字符都加密隐藏掉。“符号隐藏”类似,也是把一些类名、方法名、属性名加密隐藏起来。 总之,这两步的关键在于“打码”,保护关键部位。 第五步是“代码逻辑混淆”。 这个其实很好理解,我给大家做个比喻: 你想去超市买冈本卷纸杜蕾斯,但又是不想让人知道,于是你先去买了冈本和地瓜回来,又去操场跑两圈,再去趟超市买了卷纸和可乐,最后再去买了杜蕾斯回来。 虽然最后都买回来了冈本卷纸杜蕾斯,但是你隐藏了自己的行动目的。
“代码逻辑混淆”就是这样,在清晰明了的代码里加入各种多余的垃圾指令和代码,把原来的逻辑拆分成各种怪癖语法,改得连亲妈都不认识,从而防止破解。 “只要做完这几步,逆向破解的难度就会大大提高,虽然从理论上来讲没有破解不了的系统,但是只要把破解成本提高到足够高,黑客就会放弃破解,或者转向那些更容易的目标。” 华保健说。 只要做完加固就能抗住大部分破解? 是的。 听起来,反破解挺简单,就那么回事。 然鹅,现实永远比你想象得残酷。 3、“加固是不可能加固的“ “令我头疼的,不是扛不住逆向破解,而是开发者们都不肯用加固。” 华保健说,目前市面上只有20%左右的 iOS 应用做了加固,其中金融类的APP比例略高,但也只有50%左右,很多中小型金融机构甚至银行的APP都没做加固。 谢幺:纳尼?既然加固这么安全,为什么大家都喜欢裸奔呢? 华保健:因为裸奔更凉快呀~ 谢幺:??? 华保健说,以往的加固方法虽然安全,但弊端也很明显,这跟“衣服穿多了会显得臃肿”是一个道理(果然是裸奔更凉快。。。 。。。 ) 首先是拖慢程序性能。 就拿代码逻辑混淆来说,原本一步能干完的活,现在非得分成好多步,为了迷惑对手还得故意磨洋工,那可不就拖慢性能了。 其次是程序体积会更大。 “一般来说,基于源码的加固方式能让程序增大20~30%的体积”,华保健直言,这一点很多开发者都接受不了,因为体积增大会降低用户的下载欲望。 不过,最令开发者受不了的是加固带来的代码泄露风险,以及兼容性问题。 (编辑:PHP编程网 - 湛江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |





