快速查找可执行文件内部信息

iOS App提交审核后,有时被拒是因为某个方法有问题,或者调用了某些私有API,有时使用私有API不是自己的业务代码而是其他第三方SDK所致,为了快速定位问题点,可以用命令stringsotool

主要用法:

快速查找字符串

strings是可以查看任意文件的任意字符串,strings在文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。 strings命令对识别随机对象文件有用。

strings {file}  | grep -i {keyword}

快速查找方法或类

otool: 针对目标文件的展示工具(object file displaying tool)。

使用otool可以对指定的目标文件(object file)或库文件中的特定部分以特定的形式展现出来。otool能够理解Mach-O格式和任何通用文件格式。

赖库查询

otool -L {file}

可以看到应用运行所需要的系统库,这样依赖了哪些系统库,版本号分别是多少一目了然。

汇编码

查看依赖系统库仅仅是其中的一小功能。otool命令配上不同的参数可以发挥很强大的功用。(慎用,耗CPU)

otool -tV {file}

则整个ARM的汇编码就都显示出来了,能看到ARM的汇编码。

Mach-O headers

otool -h {file}

类的继承结构和引用关系

 otool -ov {file} 

可以根据结构来分析调用关系和继承关系。

Class Dump

使用class-dump-xx.dmg 链接:http://stevenygard.com/projects/class-dump/

使用方法:https://www.jianshu.com/p/c4272fce6703