1.环境安装
解释一下什么是codeql吧:
CodeQL 是一种强大的静态代码分析工具,由 GitHub 开发。它可以用于发现和修复软件中的安全漏洞、漏洞和代码质量问题。CodeQL 通过将编程语言的语法和语义建模为一种特殊的查询语言,使得用户可以编写自定义查询来分析代码库。它支持多种编程语言,包括 C、C++、C#、Java、JavaScript、Python 等。用户可以使用现有的查询来发现已知的问题,也可以编写自己的查询来查找特定的问题或需求。
CodeQL 的工作原理是首先将代码转换成一种中间表示(IR)也就是我们这里要用到的数据库,然后在这种 IR 上执行查询。这种方法可以让用户不受代码语言的限制,因为查询是在 IR 上执行的,而不是直接在源代码上。这使得用户可以使用相同的查询语言来分析不同编程语言的代码。同时,CodeQL 还提供了丰富的 API 和库,使得用户可以编写更加复杂和高效的查询。
1.环境准备
https://github.com/github/codeql-cli-binaries/releases
解压,设置环境变量
OK,第一步已经完成了。
2.规则库
官方规则库,各种内置的ql脚本,这部分是开源的。里面是各种ql脚本,也就是我们以后要学习的东西地址:
https://github.com/github/codeql(git clone下来,或者下载下来。最好和codeql_cli也就是上面那个放一起)
3.vscode_codeql插件
安装这个插件。设置可执行路径:
这里环境已经配置好了。
2.生成数据库
这里以java语言的数据库为示例:
原则要生成数据库的源文件:我这里选择的是java-sec-code 地址:https://github.com/JoyChou93/java-sec-code
因为java-sec-code是通过maven进行依赖管理,需要我们事先安装好maven,codeql识别出是个maven项目之后会自动对项目文件进行编译(用到mvn命令),通过编译得到的文件创建数据库。
安装maven: 默认你已经安装好java的jdk了,没有安装记得安装,并配置好环境变量
下载:https://maven.apache.org/download.cgi
配置环境变量:
这就是安装好了。我在这里遇见一个错误。后面在创建数据库的时候,一直创建失败,就是这一部分的原因。这里maven识别到的一定要是jdk下的jre,不能是如图:
注意看区别
创建数据库的命令:
codeql database create java-sce-code-database --language="java" --command="mvn clean install --file pom.xml" --source-root=D:\CODEQLALL\java-sec-code-master\
成功。
3.利用利用数据库进行查询:
选择语言选择数据库
打开规则库:
file ->open
找到Java的规则库如图:
你可以在这创建一个.ql的脚本也可以直接用写好的。
我们自己写一个查看(我在src下面写了一个test.ql)
也可以在这个地方查看,会主动识别的
我们写了一个查询调用了executeQuery
方法的地方:
点这两个地方运行。最好我们看一下查询结果:
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)