class-dump混淆加固与优化原理

在进行逆向工程时,我们经常需要dump可执行文件的头文件,以确定类信息和方法信息,为hook相关方法提供更详细的数据。class-dump主要用于检查存储在Mach-O文件的Objective-C中的运行时信息,它可以为类、类别和协议生成声明信息,生成的信息以Objective-C声明形式提供,更加紧凑易读。

安装与使用

class-dump是一个命令行工具,可以直接从官网下载并解压。然后将可执行文件class-dump复制到对应的目录下即可全局使用。在Mac OS 10.11之前,可以将class-dump文件放在/usr/bin目录下;在Mac OS 10.11之后,可以将class-dump文件放在/usr/local/bin目录下。基本使用格式如下:

class-dump [options] <mach-o-file>
常用命令包括:

-a: 显示实例变量偏移量
-A: 显示方法实现地址
--arch <arch>: 选择特定架构进行dump
-C <regex>: 只显示匹配正则表达式的类
-f <str>: 在方法名中查找字符串
-H: 在当前路径生成头文件或指定路径
-I: 按继承关系对类、类别和协议进行排序
-o <dir>: 指定头文件输出目录
-r: 递归展开框架和固定的VM共享库
-s: 按类名排序
-S: 按方法名排序
-t: 抑制输出标头
--list-arches: 列出支持的架构
--sdk-ios: 指定iOS SDK版本
--sdk-root: 指定完整的SDK路径
使用class-dump来dump从App Store下载的app时,首先需要对app进行砸壳处理,可以使用ipaguard等工具对程序进行加固。Ipa Guard是一款功能强大的ipa混淆工具,可以对IOS ipa文件的代码、代码库和资源文件进行混淆保护,增加破解反编译难度。

混淆器的作用是将代码变量等信息进行重命名,降低代码的可读性。通过混淆和加固,可以使得导出的包更加安全可靠。
展开
评论