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

參考鏈接

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