iOS静态分析工具
2019-04-01 08:52
134 查看
iOS静态分析工具
-
OCLint
安装
// 首先设置brew的第三方库 brew tap oclint/formulae // 安装 brew install oclint
-
使用
// 编写hello world代码,创建Hello.m文件 // 用OClint检查 oclint Hello.m // 结果生成html文件 oclint -report-type html -o report.html Hello.m
Clang静态分析器
常用的两个工具
scan-build
用来运行分析器的命令行工具
scan-view
包含了scan-build的工具,将scan-build执行的结果可视化
使用
// 项目目录下 \yourpath\scan-build -k -V make
Clang静态分析器由分析引擎(analyzer core)和 checkers 组成
checker基于底层分析引擎之上,通过分析引擎提供的功能我们可以编写新的checker
列出当前Clang版本下所有的checker
clang -analyze -Xclang -analyzer-checker-help debug.ConfigDumper 配置表 debug.DumpCFG 显示控制流程图 debug.DumpCallGraph 显示调用图 debug.DumpCalls 打印引擎遍历的调用 debug.DumpDominators 打印控制流程图的 dominance tree debug.DumpLiveVars 打印实时变量分析结果 debug.DumpTraversal 打印引擎遍历的分支条件 debug.ExprInspection 检查分析器对表达式的理解 debug.Stats 使用分析器统计信息发出警告 debug.TaintTest 标记污染的符号 debug.ViewCFG 查看控制流程图 debug.ViewCallGraph 使用 GraphViz 查看调用图 debug.ViewExplodedGraph 使用 GraphViz 查看分解图
如何使用checker
int main() { int a; int b = 10; a = b; return a; }
使用DumpCFG这个Checker对其进行分析:
clang -cc1 -analyze -analyzer-checker=debug.DumpCFG
显示结果:
int main() [B2 (ENTRY)] Succs (1): B1 [B1] 1: int a; 2: 10 3: int b = 10; 4: b 5: [B1.4] (ImplicitCastExpr, LValueToRValue, int) 6: a 7: [B1.6] = [B1.5] 8: a 9: [B1.8] (ImplicitCastExpr, LValueToRValue, int) 10: return [B1.9]; Preds (1): B2 Succs (1): B0 [B0 (EXIT)] Preds (1): B
控制流程图把程序拆分的更加详细,有助于我们分析
infer
安装
brew install infer
使用
infer -- clang -c Hello.m
工作流程
类c语言ClangJava语言javacInfer-out问题问题...report.json相关文章推荐
- 【幻灯片分享】揭开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
- ios代码静态分析工具有哪些,我主要想获得控制流和数据流
- iOS开发工具-网络封包分析工具Charles
- iOS 静态分析Analyze
- [Mac OS/iOS]反汇编工具Hopper分析Crash Log
- Visual Lint 4.0.4 交互式静态代码分析工具
- 代码静态分析工具——splint的学习与使用(转)
- iOS开发工具-网络封包分析工具Charles
- 代码静态分析工具——splint的学习与使用
- 浅淡静态代码分析工具
- 静态代码分析工具-jenkins应用2(astyle,nsiqcppstyle,c_style_check,cpplint and cUnit,cppUnit,c++test)
- 代码静态分析工具PC-LINT安装配置
- 浅淡静态代码分析工具
- IDA反汇编/反编译静态分析iOS模拟器程序(六)交叉引用
- iOS技巧-Xcode代码静态分析
- C++代码静态分析工具-Prefast
- 常用Java静态代码分析工具的分析与比较
- 国产c/cpp/java代码走查工具----雨田静态分析系统
- IOS_ios逆向工程-静态分析
- C++代码静态分析工具-Prefast