摘要:
CodeQL具有用于标识调用其他代码,以及可以被任意位置调用的代码的类。通过这个类你可以找到从未使用过的方法。 调用图类 CodeQL的Java库提供了两个抽象类来表示程序的调用图:Callable和Call。前者是Method和Constructor的公共超类,后者是MethodAccess,Cl 阅读全文
摘要:
声明类 下述表格列出了所有Stmt的子类: Statement syntaxCodeQL classSuperclassesRemarks ; EmptyStmt Expr ; ExprStmt { Stmt ... } BlockStmt if ( Expr ) Stmt else Stmt If 阅读全文
摘要:
1.命令替换 实现方法 替换系统中常见的进程查看工具(比如ps、top、lsof)的二进制程序 对抗方法 使用stat命令查看文件状态并且使用md5sum命令查看文件hash,从干净的系统上拷贝这些工具的备份至当前系统,对比hash是否一致,不一致,则说明被替换了。 注:需要在bin目录下执行。 2 阅读全文
摘要:
OAuth 2.0 有 4 种认证流程: 授权码模式(authorization code) 简化模式(implicit) 密码模式(resource owner password credentials) 客户端模式(client credentials) 下面以微信为例介绍最常见的也是最安全的 阅读全文
摘要:
数据流程图 CodeQL数据流库通过对程序或功能的数据流图进行建模来实现对程序或功能的数据流分析。与抽象语法树不同,数据流图不反映程序的语法结构,而是在运行时对数据流过程序的方式进行建模。抽象语法树中的节点代表语法元素,例如语句或表达式。另一方面,数据流图中的节点表示在运行时带有值的语义元素。 一些 阅读全文
摘要:
该库被实现为一个QL模块,是一个后缀为.qll的文件,即java.qll,该模块导入了所有核心Java库模块,因此,我们可以在查询的开始位置通过以下方式来引入完整的java库: import java 库类总结标准Java库中重要的类可以分为5种: 表示编程元素的类(例如类和方法) 表示AST节点的 阅读全文
摘要:
在CodeQL CLI中使用自定义查询 为了使用CodeQL进行定制分析,我们可以通过自己编写查询来实现查找漏洞或错误。CodeQL的查询类型有: 告警查询:突出显示代码中特定位置的问题的查询。 路径查询:代码中source和sink之间信息流的查询。 基本查询结构 用CodeQL编写的查询文件扩展 阅读全文
摘要:
一、CodeQL 工作流程 CodeQL 的整体工作流程如下图所示:(图片来源:https://blog.semmle.com/introduction-to-variant-analysis-part-2/) CodeQL 的整体思路是把源代码转化成一个可查询的数据库,通过 Extractor 模 阅读全文
只有注册用户登录后才能阅读该文。 阅读全文