【作者踩坑总结0错版】vscode配置codeql-MacBook(M1/M2芯片-arm)

news2025/1/29 14:06:10

文章目录

  • 前言
  • 一、codeql是什么
  • 二、安装必备工具
    • 2.1、安装codeql-cli
    • 2.2、安装codeql仓库
    • 2.3、桌面新建文件夹
    • 2.4、安装vscode
  • 三、配置codeql环境变量
  • 四、vscode配置codeql插件
    • 4.1、下载测试靶场
    • 4.2、生成数据库文件(最难最多bug)
    • 4.3、vscode配置ql数据库
  • 五、测试ql查询
  • 总结


前言

最近在弄代码审计,要配置codeql,这工具在国外很流行,但是国内的资料缺非常少,b站的视频讲的太水了,九不搭八,外网的视频又听不太懂,跟着csdn上面其他博主的配置步骤来搞疯狂报错!!!!搞了2天都搞不定,无奈,还是得靠自己来。所以有了这篇文章,跟着我的来,绝对不会出错,如果跟着一步步来还是报错,是兄弟直接来砍我。


提示:以下是本篇文章正文内容,下面案例可供参考

一、codeql是什么

codeql是一款静态代码分析引擎。适用于安全人员审计源码,挖掘漏洞。想了解更多
自己百度,毕竟不是本文重点。

二、安装必备工具

codeql的安装分为两个部分:

2.1、安装codeql-cli

https://github.com/github/codeql-cli-binaries/releases
在这里插入图片描述

2.2、安装codeql仓库

https://github.com/github/codeql

在这里插入图片描述

codeql-cli:cli即command-line interface。主要用来执行codeql的命令。
codeql仓库:包含多种语言的ql查询文件。

2.3、桌面新建文件夹

桌面新建一个CodeQL的文件夹,文件夹里面新建3个文件,分别是:codeql-cli、codeql-repo、databases。
在这里插入图片描述

codeql-cli:里面放的就是codeql-osx64.zip的解压内容。
codeql-repo:里面放的是https://github.com/github/codeql下载的压缩包解压内容。
databases:空文件夹,后面用来放codeql生成的数据库文件,现在暂时是空文件夹。

2.4、安装vscode

https://code.visualstudio.com/

在这里插入图片描述

三、配置codeql环境变量

mac的M芯片的终端是zsh的。终端配置文件在 ~/.zshrc

在这里插入图片描述

我的配置文件如下:

export PYENV_ROOT="$HOME/.pyenv"
export PATH="/Users/zangcc/Desktop/CodeQL/codeql-cli:$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

#java8
export JAVA_8_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home"
alias jdk8='export JAVA_HOME=$JAVA_8_HOME'

#java20
export JAVA_20_HOME="/Library/Java/JavaVirtualMachines/jdk-20.jdk/Contents/Home"
alias jdk20='export JAVA_HOME=$JAVA_20_HOME'

#默认使用jdk8
export JAVA_HOME=$JAVA_8_HOME

如果你的配置文件没有配置多java环境,那么直接添加(codeql-cli的绝对路径):

export PATH="/Users/zangcc/Desktop/CodeQL/codeql-cli:$PATH"

如果你跟我一样,之前配置过多java环境,那么就要在PATH那里添加多一条(codeql-cli的绝对路径),用:隔开。

export PATH="/Users/zangcc/Desktop/CodeQL/codeql-cli:$PYENV_ROOT/bin:$PATH"

然后,刷新配置文件,让他生效。

source ~/.zshrc

在终端直接输入codeql,出现下面的信息,说明成功了。

在这里插入图片描述

配置mvn。
https://maven.apache.org/download.cgi
在这里插入图片描述

继续在zshrc配置文件里添加:
在这里插入图片描述

刷新配置文件,让他生效。

source ~/.zshrc

四、vscode配置codeql插件

4.1、下载测试靶场

https://github.com/l4yn3/micro_service_seclab/

在这里插入图片描述

下载完之后解压,然后放到你的一个目录下。(我是放到桌面,放CodeQL里面了)
在这里插入图片描述

4.2、生成数据库文件(最难最多bug)

终端输入以下命令:

codeql database create /Users/zangcc/Desktop/CodeQL/databases/codeql_demo --language="java" --command="mvn clean install -DskipTests --file pom.xml" --source-root=/Users/zangcc/Desktop/CodeQL/micro_service_seclab

database create:创建数据库。比如我这里就是在/Users/zangcc/Desktop/CodeQL/databases/目录下新建一个codeql_demo文件夹,这个codeql_demo文件夹里面就是生成的数据库内容了。
language:语言,因为靶场是springboot的,所以是java。
command:命令,用mvn,clean,install来编译代码。
source-root:需要代码审计的源代码根目录。

出现Successfully,说明生成数据库文件成功,否则都是失败。这一步要等个3分钟左右。
在这里插入图片描述

生成的数据库文件:
在这里插入图片描述

4.3、vscode配置ql数据库

安装codeql插件。

在这里插入图片描述

配置插件。
在这里插入图片描述

找到这个cli的设置,然后把codeql执行文件的绝对路径复制进去。
在这里插入图片描述
将codeql标准库,也就是repo,添加到工作区。
在这里插入图片描述

在这里插入图片描述

将生成的数据库文件夹放到vscode上面的codeql插件上,如下:

在这里插入图片描述

五、测试ql查询

在这里插入图片描述
成功。


总结

再接再厉,学好代码审计。

    文章原创,欢迎转载,请注明文章出处: 【作者踩坑总结0错版】vscode配置codeql-MacBook(M1/M2芯片-arm).。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/521310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[入门必看]数据结构5.3:二叉树的遍历和线索二叉树

[入门必看]数据结构5.3:二叉树的遍历和线索二叉树 第五章 树与二叉树5.3 二叉树的遍历和线索二叉树知识总览5.3.1_1 二叉树的先中后序遍历5.3.1_2 二叉树的层次遍历5.3.1_3 由遍历序列构造二叉树5.3.2_1 线索二叉树的概念5.3.2_2 二叉树的线索化5.3.2_3 在线索二叉树…

服务(第十九篇)mysql的备份和恢复

备份的类型: ①物理备份:备份数据库的物理文件,数据文件和日志文件; 冷备份:关闭数据库进行的; 热备份:数据库处于运行中状态,依赖于日志文件; 温备份:数…

Cisco NX-OS Software Release 10.3(3)F - 网络操作系统软件

Cisco NX-OS Software Release 10.3(3)F - 网络操作系统软件 请访问原文链接:https://sysin.org/blog/cisco-nx-os-10/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Cisco NX-OS Cisco NX-OS 操作系统助力网络紧…

Golang中map基础

目录 map类型 声明和初始化 元素操作 大小和容量 并发问题 实现原理 注意 map类型 Go语言中的map类型是一种key-value(键值对)结构,用于存储一组无序的数据,其中键是唯一的,值可以相同或者不同。在Go语言的程序…

button 设置外观

导入图片 设置拉伸 设置按钮的FlatStyle属性为Flat 设置透明背景

先到先得先学,2023最新国内大厂最新Java面试八股文总结

“铜三铁四”接近尾声,身边被迫“毕业”或者主动在这个时间点跳槽的大佬基本该找到工作的都找到工作了,找不到的也大多数都已经躺平了(手动狗头),只剩一群“45度人”(卷不动,躺不平的人&#xf…

用于跨中心多边形分割的任务相关特征补充

文章目录 Task-Relevant Feature Replenishment for Cross-Centre Polyp Segmentation摘要本文方法Domain-Invariant Feature Decomposition (DIFD)Task-Relevant Feature ReplenishmentPolyp-Aware Adversarial Learning (PAAL)总损失函数 结果 Task-Relevant Feature Repleni…

AI翻译工具分享

LanguageX简介 冠军翻译引擎交互式翻译,为专业译者而生的新一代译者工具 自2017年神经网络机器翻译流行以来,“机器翻译替代人工翻译”的观点屡见不鲜。作为一个技术和语言背景结合的团队,LanguageX认为语言服务是高度复杂、需要创意的智力活动,并肩负着人类沟通的重要使命。La…

机器学习之k-means聚类二、啤酒聚类实现

文章目录 一、环境开发说明二、基于前篇理论实现1. 数据说明2. 具体实现流程a. 对数据进行标准化处理b. 使用手肘法进行K值得选择c. 算法实现,d.将聚类结果进行可视化e. 计算轮廓系数f. 轮廓系数可视化 三、 文中的完整代码四、不调包实现五、参考文献 一、环境开发…

MySQL-图形化界面工具 (下

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️树高千尺,落叶归根人生不易&…

ip route 和 route 命令

ip route 属于 iproute2 工具包;route 属于 net-tools 工具包;目前 ip route 使用较为广泛; 两个工具包的介绍请见 “iproute2 和 net-tools 介绍” 文章。 ip route命令介绍 ip route命令用于管理静态路由表。 linux 系统中,可…

【GigaGAN论文精读】Scaling up GANs for Text-to-Image Synthesis

【GigaGAN论文精读】Scaling up GANs for Text-to-Image Synthesis 0、前言Abstract1. Introduction(图放在文末)2. Related Works2.1Text-to-image synthesis.2.2GAN-based image synthesis.2.3Super-resolution for large-scale text-to-image models.…

【Java|基础篇】面向对象三大特性之封装

文章目录 1.前言2.什么是封装3.如何更好的封装4.封装的好处5.总结 1.前言 面向对象有三个特性:封装,继承和多态,本文主要讲解封装. 封装是面向对象编程的基本原则之一,它可以提高程序的安全性、稳定性、可维护性和可扩展性,减少了代码的冗余&#xff0c…

【框架源码】Spring源码核心注解Conditional和应用

1.什么是Conditional注解 Conditional来源于spring-context包下的一个注解。通过Conditional配置一些条件判断,当所有条件都满足时,被该Conditional注解标注的目标才会被Spring处理。 例如根据当前环境、系统属性、配置文件等条件来决定是否注册某个Bea…

股票量价关系基础知识3

成交量变化的表现形式 成交量变化的表现形式主要有以下几种 一、缩量 一般界定当日成交量低于前一交易日成交量10%以上为缩量。 缩量往往发生在上升途中的回调末期、上涨末期以及股价下跌的中后期。一般下跌趋势中的缩量阶段,往往意味着股价仍未见底,不能…

服务攻防-中间件安全CVE复现IISApacheTomcatNginx漏洞复现

目录 一、导图 二、ISS漏洞 中间件介绍> 1、短文件 2、文件解析 3、HTTP.SYS 4、cve-2017-7269 三、Nignx漏洞 中间件介绍> 1、后缀解析漏洞 2、cve-2013-4547 3、cve-2021-23017 无 EXP 4、cve-2017-7529 意义不大 四、Apache漏洞 中间件介绍> 1、漏…

AcWing算法提高课-1.3.5买书

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 本题链接&#xff08;AcWing&#xff09; 点这里 题目描述 小明手里有n元钱全部用来买书&#xff0c;书的价格为10元&#xff0c;20元&#xff0c;50元&#xff0c;100元。 问小明有多少种买…

【Python--读写模式全解】

读写模式 读写模式语法读取写入追加 小结 读写模式 open() 函数常用形式是接收两个参数&#xff1a;文件名(file)和模式(mode)。 # 读写文件最好用 with...open...操作&#xff0c;这样最安全 # 而且还不需要关闭文件 with open(path,r)as f:f.read() # 一次读取整个文件&…

如何调用API数据接口来获取想要的数据

API&#xff08;Application Programming Interface&#xff09;是连接不同软件和服务的桥梁&#xff0c;允许不同的应用程序之间共享和交换数据。API接口被广泛应用于各种场景&#xff0c;如&#xff1a; 1.移动应用程序&#xff1a;许多移动应用程序使用API接口与服务器通信…

量子计算——新兴领域的前沿技术

随着人类社会文明的不断进步&#xff0c;计算技术也在不断发展。传统计算机在过去的几十年中快速发展&#xff0c;计算速度、存储能力等方面发生了天翻地覆的变化。但随着大数据、人工智能、区块链等新兴领域的迅速崛起&#xff0c;传统计算机的发展似乎面临了瓶颈。在这样的背…