Source Insight是什么:Source Insight是一款代码编缉、浏览、分析工具。html
Source Insight与文本编缉器有什么区别:Notepad++等文本编缉器也能够编缉、浏览代码,但分析能力就比较弱;如跳转函数定义处、跳转函数调用处等都无能为力。程序员
Source Insight与集成开发环境有什么区别:IDE除了代码编缉、浏览、分析外还能编译、调试、运行;Source Insight还能存在主要是在分析方面作得更好:一是多了一个调用函数上下文窗口、二是项目全局查找功能比较好、三是前进后退比较好。sql
总而言之,一方面Source Insight是代码分析较好的工具。另外一方面也不用太极端凡代码风析必Source Insight,你想用IDE想用Notepad都是能够的。安全
另外,咱们这里一直说代码分析而不说代审计,是由于Source Insight和Wireshark同样并不仅是为安全人员设计的,通常的程序员也会用。分析侧重于弄懂整个代码流程,审计侧重于在理解代码基础上找出漏洞。ide
Source Insight是收费软件而咱们喜欢使用学习版,加上安装也就是双击安装就能够了,就很少说了。函数
可参考连接:http://www.zdfans.com/html/18590.html工具
启动Source Insight界面以下图,依次点击Project----New Project建立项目学习
New project name----这里的project name是Source Insight中起的项目名,而不是待审计的项目的项目名,也就是说无论后边要审计什么项目这里想起什么名字均可以。但为了方便起见仍是建议填的项目名与后续要审计的项目名一致。好比我这里后续要审计一个叫BankSystem的项目,这里的New project name也就填BankSystem。设计
Where do you want to store the project data files?----这个目录是用于存放记录代码审计过程当中的操做步骤、配置的文件,而不是待审计项目、代码的位置,这点要搞清楚。调试
Project Source Directory----这里选择待审计项目的目录,下一步会从这里向项目导入代码文件(这里只是导入位置而不是真把代码复制一份进去)。
选择要添加的文件,最简单的直接点击“Add Tree”
项目建立完成后界面以下。
右侧窗口----导入的待审查文件展示在该位置,双击便可查看文件内容。还有另外以目录形式展示等形式,本身实践时多在那点几下就懂了。
中间窗口----在左侧窗口双击文件后文件内容的展现窗口。该窗口是Source Insight的主窗口。
左侧窗口----展现当前在中间窗口打开的文件导入的库、存在的类、类的属性及方法。
底部窗口----展现当前光标指向的属性、方法的定义处的上下文。
在“代码审计思路 ”一文中咱们说,代码审计有正向跟踪数据流和逆向追踪数据流两个思路,前者要搜索输入函数看数据是否流向漏洞签名函数,后者搜索漏洞签名函数看数据是否源于输入函数。
无论哪一种思路首先须要的都是函数搜索。咱们以全局搜索sql语句执行函数executeUpdate为例。
使用“Crtl+F”打开查找对话框
若是直接点击Search只会在当前主窗口打开的文件内搜索,项目全局搜索咱们须要点击“Files”,勾选“Project Wide”再点击Search。
固然也能够经过主菜单----Search----Search Project唤出与下图相似的查找对话框。
查找完成后,即会出现以下图的搜索结果窗口,其中列出了当前审计项目中全部使用executeUpdate方法的位置。
点击各位置前方的红色按钮便可跳转到该位置的具体代码,使用左上角的前进后退按钮可将主窗口切换到本身前一步或后一步主窗口展现的窗口。