一、检查源码是否包含指定字符串
1、查看源码中的【UIWebView】
cd到项目根目录下,使用命令grep -r UIWebView .
2、查看源码中是否用到了IDFA(广告标识符)
cd到工程目录,执行命令grep -r advertisingIdentifier .
(注意:后面包含个点)看下运行结果
>grep -r advertisingIdentifier .
Binary file ./Pods/JCore/libjcore-noidfa-ios-2.1.4.a matches
./Pods/Headers/Public/JPush/JPUSHService.h: advertisingIdentifier:(NSString *)advertisingId;
./Pods/Headers/Private/JPush/JPUSHService.h: advertisingIdentifier:(NSString *)advertisingId;
Binary file ./Pods/JPush/libjpush-ios-3.2.6.a matches
./Pods/JPush/JPUSHService.h: advertisingIdentifier:(NSString *)advertisingId;
二、strings工具
查看ipa包是否包含【UIWebView】
1、输出UIWebView相关信息到控制台
cd xxx/Payload/xxx.app
strings - -a -arch armv7 "Long" | grep UIWebView
2、输出检索结果到文件,在文件中搜索UIWebView
cd xxx/Payload/xxx.app
strings - -a -arch armv7 "Long" >/Users/admin/Desktop/未命名文件夹/111.txt
3、输出检索结果到文件,在文件中搜索UIWebView
strings .app绝对路径 > /Users/admin/Desktop/未命名文件夹/111.txt
4、检测.framework是否包含UIWebView
cd xxx/xxx. framework
find . -type f | grep -e ".a" -e ".framework" | xargs grep -s UIWebView
或者
strings - -a -arch armv7 "Long" >/Users/admin/Desktop/未命名文件夹/111.txt
或者
strings .framework绝对路径 > /Users/admin/Desktop/未命名文件夹/111.txt
三、otool工具
xcode自带,可以直接在终端中使用
终端中 cd 到 Payload 里面的 app
然后使用如下命令
otool -L appName
这个命令会列出你所有使用的系统库,检查一下给出的列表中有没有私有api的库
如果对命令不熟悉还可以使用
otool -help
去查看命令帮助文档
四、nm工具
常用工具参考
常用的命令和工具
readelf、objdump、nm使用详解
用来显示一个程序包的符号表, 默认会显示入口地址, 符号类型, 符号名.
nm -j MAMapKit.armv7 | grep png > symbols
可以获得所有的libpng导出符号, 存入到symbols文件, 为接下来的工作做准备. -j 选项控制只输出符号名.
五、objdump工具
查看目标文件或者可执行的目标文件