检测项目是否包含特殊字符串

一、检查源码是否包含指定字符串

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工具

查看目标文件或者可执行的目标文件

你可能感兴趣的:(检测项目是否包含特殊字符串)