也就是读取Mach-O文件中的数据,所以这需要了解Mach-O文件。
一、main函数处理——做一个简单的工具
注意,命令行工具的调试,是编译好文件后拖拽到手机bin目录下,在终端中打印调试;而不是运行XCode。

命令行工具,就是个可执行文件,跟app差不多。


二、Mach-O文件数据的位置分析





三、代码实现加载数据——读取magic

command+B,编译好的文件拖拽到手机的Device/usr/bin,给予权限。
执行命令:TestCL
(即编译好的包名),打印信息:

四、参数——给命令加参数


如果什么都不传,也会有一个参数,就是可执行文件的路径。



五、权限
解决handle没有值,读取失败
的问题。


这是权限的问题,读取每个app下的文件夹都必须要权限。
给文件签上一定的权限,让它可以访问其他app的可执行文件



entitlements == xml == plist,所以,后缀可以修改。
权限文件如何写呢?
——找一个已有的权限文件,来修改。
SpringBoard上放了一堆APP,它有权限读取所有APP,它的权限最高。

拖拽到电脑上。



把这个权限强制导入到自己写的命令行工具中:

验证:导出TestCL的权限文件,打开看下是否由很多权限

拖拽TestCL到手机/bin目录,赋值权限后,操作TestCL -l

也可以用codesign,但比较麻烦。
六、MJAppTools分析

网友评论