CodeQL学习

CodeQL环境搭建

参考:https://help.semmle.com/codeql/codeql-cli/procedures/get-started.html

下载

下载链接:https://github.com/github/codeql-cli-binaries/releases

下载最新的codeql.zip就可以了,比如:
https://github.com/github/codeql-cli-binaries/releases/download/v2.1.0/codeql.zip

不要下载下面的Source code

搭建本地环境

新建一个codeql目录用来放cli工具,比如$HOME/codeql-home

下载CodeQL依赖的库和examples:
https://github.com/Semmle/ql
在这里插入图片描述

重新组织目录

组织完之后是这样的:

77@ubuntu:~/repos/CodeqlHome$ ls codeql-repo/
change-notes  CODE_OF_CONDUCT.md  CODEOWNERS  config  CONTRIBUTING.md  cpp  csharp  docs  java  javascript  LICENSE  misc  python  README.md
77@ubuntu:~/repos/CodeqlHome$ ls codeql-cli/
codeql  codeql.cmd  codeql.exe  cpp  csharp  go  java  javascript  legacy-upgrades  LICENSE.md  Open-Source-Notices  python  tools  xml

在这里插入图片描述

codeQL常用命令

查看codeql执行哪些语言:

codeql resolve languages

在这里插入图片描述
根据已有的源码创建codeql工程:

codeql database create CodeQL_java-sec-code --source-root=/home/77/repos/java-sec-code --language=java

codeql自动识别了这个项目是maven的,然后编译了。
在这里插入图片描述
然后得到了这样的一个codeql工程目录:
在这里插入图片描述

src.zip是源码的压缩包,

codeql命令行参考手册:
https://help.semmle.com/codeql/codeql-cli/commands.html

从LGTM.com中获取databases

LGTM.com已经使用CodeQL分析了上千个项目,可以从LGTM.com下载这些项目的databases。

一些CodeQL给Java写的示例

参考:https://help.semmle.com/QL/learn-ql/ql-training.html

//TODO

参考链接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章