写点什么

iOS 进阶模块(逆向安防)

用户头像
关注
发布于: 2021 年 02 月 19 日
iOS进阶模块(逆向安防)

本文结合iOS方向

逆向防护之重签名


完全重签名


证书,mobileprovision、Bundle ID 三者信息对应一致,这种重签名方式基本上与直接对代码进行签名的效果是一样的;


优点:


有效期长、稳定性高;
复制代码


缺点:


维护成本较高,每一个重签名的ipa都必须修改Bundle ID 并且匹配对应的签名证书和mobileprovision描述文件;
复制代码


适用范围:


对签名稳定性有要求;
复制代码


不完全重签名


只保证证书和 mobileprovision 对应一致,至于这两者与原 ipa 的 Bundle ID 等信息是否一致则不考虑;


优点:


看起来较方便维护;
复制代码


缺点:


实际上并没有对原ipa的签名进行完全替换,很容易重签名失败,稳定性不高,很可能发生签名失效,需要重新签名,慎用!
复制代码


适用范围:


稳定性要求不高;
复制代码


图片介绍:



HOOK 与注入


软件加密技术不断更新迭代,攻防双方水平不断提升,单纯的静态级别的安全对抗已很少出现,分析人员面对得更多的是高强度的代码加密技术和程序防篡改技术,在此背景下,新的软件分析技术 —— Hook 与注入应运而生


反编译 APK、修改或添加代码后将 APK 重新打包,都会改变原文件的散列值和签名信息,软件防篡改技术即通过在软件运行时检查原文件的散列值和签名等手段判断程序是否遭到破坏。


Hook 技术也叫“钩子技术”,原理是先将要修改的函数“钩住”,然后用自定义的函数将其替换,让程序在运行时执行自定义的函数,达到动态修改软件的目的。


以 Hook 防篡改技术为例,防篡改系统在检测程序的散列值和签名时,会调用系统 API 读取 APK 签名信息,使用 Hook 技术,可“钩住”这些系统 API,直接返回原程序的签名信息,从而有效“欺骗”防篡改系统,解决代码重新打包后的签名检查问题。


如此就涉及俩技术点:如何实施“钩住”这个动作;如何编写自定义的函数

图片介绍:



视频详解:点这里


发布于: 2021 年 02 月 19 日阅读数: 22
用户头像

关注

你的努力没人会看到,可成功会让人羡慕。 2020.12.08 加入

iOS交流群:642363427 公众号:iOS进阶宝典 抖音:iOS 普拉斯 视频学习:https://space.bilibili.com/107521719 感谢支持与关注

评论

发布
暂无评论
iOS进阶模块(逆向安防)