ios 开发

iOS代码混淆

2023-01-11  本文已影响0人  iOS小洁

加固

加固是为了增加应用的安全性,防止应用被破解,盗版、二次打包、注入、反编译等

常见的加固方式有:

代码混淆

iOS程序可以通过class-dump、Hopper、IDA等获取类名、方法名、以及分析程序的执行逻辑

如果进行代码混淆,可以加大别人的分析难度

混淆方案:

源码混淆

通过宏定义混淆方法名、类名

需要注意的是:

工具:https://github.com/CoderMJLee/MJCodeObfuscation

ios-class-guard

https://github.com/Polidea/ios-class-guard

它是基于class-dump的扩展

用class-dump扫描出可执行文件中的类名、方法名、属性名等并做替换,会更新xib和storyboard的名字等等

用法:

$ brew install ios-class-guard
$ ios-class-guard [options] <mach-o-file>

常用参数:

--sdk-root <path>:用于指定SDK路径,如果是模拟器SDK,一般路径就是
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk
--sdk-ios:相当于指定SDK路径为真机设备SDK
-X <path>:用于指定xib、storyboard所在目录,它会递归搜索
-O <path>:生成的混淆头文件路径
-m <path>:符号映射表(默认是symbols.json)

字符串加密

很多时候,可执行文件中的字符串信息,对破解者来说,非常关键,是破解的捷径之一

为了加大破解、逆向难度,可以考虑对字符串进行加密

字符串的加密技术有很多种,可以根据自己的需要自行制定算法

例如:

上一篇 下一篇

猜你喜欢

热点阅读