codeql安装(从0开始的codeql之旅)

本文详细记录了CodeQL的安装过程,包括下载VSCode、安装CodeQL扩展、获取CodeQL引擎、配置环境变量、设置workspace以及构建Java项目数据库的步骤。在构建数据库时,强调了可能出现的问题及解决方法,并提供了查询语句的执行示例。
摘要由CSDN通过智能技术生成

本文章为多次尝试之后,自己成功安装并运行成功codeql的记录

下载

建议下载之前先新建一个codeql目录,下载和clone的东西都放在下面

首先安装最新版的vsCode

安装扩展

在其中搜索并安装CodeQl拓展

image-20220506121927675

下载codeql引擎

https://github.com/github/codeql-cli-binaries/releases

接着下载codeql引擎,选择对应版本即可
下载慢的话推荐这个平台进行代下载
云知梦
image-20220506121845766

点击小齿轮,Extension Settings 打开拓展设置

image-20220506121953523

把刚才下载并解压的ql引擎文件中的codeql.exe的路径填写上去

image-20220506122124707

同时把codeql.exe的路径配置到环境变量path中去,这一步是为了后面使用命令行构建数据库做准备

image-20220506122629448

设置workspace

接下来设置workspace

直接去clone这个项目https://github.com/github/vscode-codeql-starter,这个项目中有大佬设置好的workspace,可以直接拿来用

在clone的时候因为其包含子项目,不能直接git clone,需要加一个--recursive参数

git clone --recursive https://github.com/github/vscode-codeql-starter.git

如果https的报ssl错误,记得换成ssh的连接clone

git clone --recursive git@github.com:github/vscode-codeql-starter.git

构建数据库

现在需要下载的东西都下载完成了,接下来是很重要的一步,也就是构建数据库

这里以java为例,建议第一次先新建一个maven项目,随便写点东西进去

给一个简单的maven项目建立数据库

codeql database create D:\TOOLS\codeql\database\jndi --language="java" --command="mvn clean install --file pom.xml" --source-root=E:\java\jndi --overwrite

第一部分是给建立数据库指定的文件夹,

--source-root顾名思义就是源码文件夹

--command则是指定使用maven来帮助进行编译打包,这里是最容易出问题的地方,各种依赖呀啥的都需要编译打包之后才能添加进数据库里面进行查询

也就是说codeql需要mvn帮助打包才能构建数据库

--overwrite参数表示可以覆盖旧的数据库

对于java来说,如果在构建数据库的过程中出错了,那么一般都是因为mvn打包出了问题,可以单独在idea终端中尝试mvn clean install --file pom.xml根据报错信息来推断哪里出了问题

这里是最容易报错的,报错了一定不要气馁,慢慢排查问题所在,加油!!!

执行查询语句

首先打开vscode,通过file-> Open Workspace from file打开刚才clone好的那个workspace项目中的.code-workspace文件

这样就成功引入了workspace

image-20220506124421164

image-20220506124308766

接着在vsCode的侧边栏

image-20220506124042825

点击这个QL,进去之后,就可以添加数据库了

image-20220506124111095

通过目录引入刚才新建好的数据库

image-20220506124535532

接着在custom这个目录下新建test.ql文件,编写ql语句,进行第一次查询

image-20220506124610207

image-20220506124647783

from int x, int y
where x = 3 and y in [0 .. 2]
select x, y, x * y as product, "product: " + product
as res order by  res desc

右键在当前数据库Run query

image-20220506124801886

image-20220506124822269

成功执行了

参考连接
https://blog.csdn.net/god_zzZ/article/details/123475723
https://github.com/SummerSec/learning-codeql

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值