开源代码阅读工具使用心得
从刚开始代码审计到现在,我尝试过很多工具,比如source insight,understand,vscode,vim,emacs和clion,以及插件;上面每种工具都很成熟各有特色,适用条件不尽相同。
需求分析
首先是需求分析,在代码审计中我要解决以下痛点
- 快速查看定义,在查看完后能迅速关闭该窗口(比如查找类型定义)
- 查找函数引用,确定函数调用关系,c++中的继承关系
- 良好的编程环境,至少要有错误提示,查看定义,代码补全
工具特色
source insight在windows上使用体验不错,但不能在linux上使用,首先排除它。emacs按得我手指疼,排除它。understand卡慢。作为代码审计工具他们必须具有快速打开文件的功能。
工具 | 缺点 | 优点 |
---|---|---|
clion | 不易切割窗口,无法符号在代码中的引用 | 查看定义准确,能查看类继承,适合编写cmake工程的poc,代码补全 |
vscode | 无法全局查找符号,不易切割窗口 | 在小窗口快速查看定义,查找字符串方便,适合编写AOSP的poc |
vim | 补全天生劣势 | 插件丰富,窗口管理自由 |
工具和实际
结合当前工作和工具特点,按如下分配工具使用:
目标工程 | 架构分析 | 单个函数审计 | 数据流追踪 | test和poc |
---|---|---|---|---|
cmake | vim | vscode | vscode+vim | clion |
aosp | vscode | vscode | vscode | vscode |
chromium | vim | vscode | vim | vim |
在手指疼不想使用键盘时的代替品:htags
网友评论