CodeQL 代码审计平台学习笔记
CodeQL是一款代码审计分析平台,它将Python、Go、JavaScript等语言解析生成语法树并存储到数据库中,之后通过QL语法进行代码审查与筛选。你可以按照自己的想法写代码审计检测脚本,甚至进行代码漏洞 OR 恶意检测。
安装
下载CodeQL二进制文件
wget https://github.com/github/codeql-cli-binaries/releases/download/v2.2.4/codeql-linux64.zip
下载语言库依赖
wget https://github.com/github/codeql/archive/v1.24.0.zip
生成DB数据库
假设codeql_project/存在一个test.py文件,内容如下:
print("hello world")
下面根据project生成codeql数据库。
codeql database create pytest2 --source-root=codeql_project/ --language=python
指定--source-root为要进行检测的项目目录,指定language为python,生成的db名称为pytest2,之后他会生成一个db,其中包含codeql_project/test/中所有python文件的语法树解析。
编写QL脚本
在语言依赖库中创建QL查询脚本,以查询String为hello world为例。
# cat engine/codeql/python/ql/src/test.ql import python from StringValue s where s.getText() = "hello world" select s.toString()
执行查询
# codeql query run -d pytest2 codeql-1.24.0/python/ql/src/test.ql | col0 | +---------------+ | 'hello world' |
指定test.ql查询语句便可查到所有的字符串为hello world的项。
后续
后面就是QL语法的学习以及codeql的实现原理的分析。
CodeQL 代码审计平台学习笔记相关推荐
- 云平台学习笔记(三)-实践
一.实验目的 本实验目的: 1.熟练克隆虚拟机: 2.熟练配置域名解析 3.学会配置 Chrony: 4.学会安装 OpenStack 基础框架: 5.学会安装 Mariadb 数据库 6.熟练为虚拟 ...
- 迪文屏幕T5L平台学习笔记一:开发环境搭建注意事项
前面一直用T5UID3平台的屏幕开发,但是吐槽下<DWIN C Compiler 1>编译器bug太多,项目能不能做好,全靠运气:售后说T5L平台支持keil开发,我感觉挺好,于是从新学习 ...
- 迪文屏幕T5UID3平台学习笔记二:变量图标显示和按键返回值按钮学习
需要实现一个功能:当点击某个按钮时候,要求能够改变按钮的字体和颜色,比如: 点击strat按钮后,显示stop,这样再点击就实现Stop逻辑,同时显示变成Start,也 就是说把Start和Stop按 ...
- 百度AI studio平台学习笔记
百度Paddlepaddle深度学习学习营笔记总结 自学深度学习过程 开始了解到百度深度学习AI Stuidio平台时,不是它终于出现的感觉,而是我终于等到它的感觉. 过去学习机器学习知识的方式中,会 ...
- 微信公众平台学习笔记
微信公众号平台各个号的区别 订阅号 主要偏于为用户传达咨询(类似报纸杂志),认证后都是每天只可以群发一条消息 服务号 主要偏于服务交互(类似银行,114,提供服务查询),认证前后都是每个月可群发4条消 ...
- 迅雷云加速开放平台学习笔记——说明
最近在研究软件的自动更新功能,手动更新太麻烦而且对电脑小白来说容易出错.之前对自动更新没什么概念,不知道如何实现.简单百度之后,原来"更新"功能是一个单独的模块,在需要更新的时候启 ...
- .Net平台学习笔记(7)
7 .Net学习第七天 7.1 面向对象的概念 7.2 类 7.3 静态与非静态 7.4 构造函数 7.5 this关键字 7.6 析构函数 7 .Net学习第七天 7.1 面向对象的概念 C#是一种 ...
- 迪文屏幕T5L平台学习笔记七:RS485测试
由于串口通信距离近,且容易受到干扰,最近改为RS485通信方案,迪文屏幕DMG10600K070_03WTC正好也支持RS485通信,把调试过程记录下. 1.首先看下数据手册: 串口5支持RS485通 ...
- 迪文屏幕T5UID3平台学习笔记四:串口使用和定时器使用
我感觉迪文屏幕分两大类吧,指令屏和OS屏,指令屏幕只能通过UART指令交互和DWIN GUI交互: OS屏幕,则可以通过在屏幕上二次开发,来实现我们的功能,当然了,OS屏幕也支持UART指令和 DWI ...
最新文章
- cad菜单栏快捷键_拒绝效率低下,教你瞬间提升10倍!老师傅珍藏多年CAD快捷键...
- Servlet -- 重定向
- c语言读取一个图像文件格式,求指导,如何用c语言实现读取*.raw格式图像
- IntelliJ IDEA创建spring boot项目的方法
- cglib动态代理和jdk动态代理的区别与应用
- php中getdistance函数_php代码渗透测试 后门分析篇
- x:Name与Name区别
- php页面上必须有表单,php – 在同一页面上显示提交的表单响应. (没有重装)
- KDD CUP 2018 前4 名解决方案公开: AI预测空气质量
- 使用redis作为缓存,数据还需要存入数据库中吗?
- 尚学堂百战程序员1573题---答案总结第三章 控制语句
- 远程桌面未知的用户名_远程桌面连接 提示用户名密码错误的解决办法
- 宏碁台式计算机u盘启动,宏基台式机bios设置u盘启动方法
- 卡内基梅隆大学机器人研究所课程分享
- linux安装mysql总结
- 智能物流仓储机器人|海格里斯HEGERLS货物夹抱式防倾倒装置四向穿梭车
- Gentoo USE参数清单中文详解
- mongodb中文件导入报错error inserting documents解决方法
- SoundNet:根据声音来识别场景环境实践
- 微软100题(91)智力题
热门文章
- MIPS架构的Linux系统安装配置Qt5.11
- arm64 smmu 驱动笔记
- 我的世界服务器修改物品id,【图片】求助:如何修改物品ID【minecraft吧】_百度贴吧...
- ti linux 开发环境,Ubuntu下搭建MSP430开发环境(MSPGCC)
- word07如何删除分隔符
- 软件测试越老越吃香?还是吃青春饭?
- TWS耳机有哪些?国产TWS耳机排行
- 数字化转型系列主题:智能制造的数字化工厂规划
- 初识·集成运算放大电路(运放)
- 云南大学c语言实验报告3,云南大学软件学院C语言所有实验代码.doc