网络安全
文章平均质量分 82
阿航的博客
一切都是最好的安排!
展开
-
Joern的安装与使用
一.前言最近在研究C/C++源码的漏洞挖掘,需要用到Joern工具将源码转换为图来分析,于是开始寻找关于Joern的安装教程。首先是按照别人的博客安装,发现大部分依赖库都是远古版本,根本安装不了,于是找官方教程,找到了一个官方文档(准确来说应该是旧的官方文档,文档底部显示2014年),安装的版本为joern-0.3.1,安装过程巨麻烦,且同样存在依赖库找不到的问题。于是就想写下这篇博客,初衷就是希望大家在安装Joern时可以少走弯路,避免我踩过的坑,减少不必要的时间浪费!二.关于Joern的简介Joe原创 2021-11-26 16:15:19 · 3477 阅读 · 1 评论 -
基于代码属性图和Bi-GRU的软件脆弱性检测方法
一.摘要提出了一种基于代码属性图和Bi-GRU的软件脆弱性检测方法。该方法通过从函数的代码属性图中提取出抽象语法树序列、控制流图序列作为函数表征的表征方式,减少代码表征过程中的信息的损失,并通过选取Bi-GRU来构建特征提取模型,提高对脆弱性代码的特征提取能力。实验结果表明,与以抽象语法树为表征方式的方法相比,该方法最大可提高35%的精确率和22%的召回率,可改善面向多个软件源代码混合的真实数据集的脆弱性检测效果,有效降低误报率和漏报率。二.本文贡献提出了一种基于代码属性图的软件脆弱性智能检测方法原创 2021-11-22 16:06:25 · 5793 阅读 · 2 评论 -
基于BiLSTM 模型的漏洞检测
基于BiLSTM 模型的漏洞检测一.摘要 首先从源代码中提取方法体,形成方法集;为方法集中的每个方法构建抽象语法树,借助抽象语法树抽取方法中的语句,形成语句集;替换语句集中程序员自定义的变量名、方法名及字符串,并为每条语句分配一个独立的节点编号,形成节点集。其次,运用数据流和控制流分析提取节点间的数据依赖和控制依赖关系。然后,将从方法体中提取的节点集、节点间的数据依赖关系以及控制依赖关系组合成方法对应的特征表示,并运用one-hot编码进一步将其处理为特征矩阵。最后,为每个矩阵贴上是否含有漏洞的标签原创 2021-11-19 21:17:58 · 4634 阅读 · 0 评论 -
缓冲区溢出漏洞分析技术研究进展
缓冲区溢出漏洞分析技术研究进展一.缓冲区溢出攻击步骤:注入攻击代码跳转到攻击代码(核心环节)执行攻击代码二.缓冲区溢出按照所攻击对象的不同可分为 3 类破坏栈数据 改变 RETADDR 的值,使其存放已经注入到栈中的攻击代码的地址或者是代码区中某些具有特权的系统函数地址(比如 system)。破坏堆数据更改类函数指针三.缓冲区溢出漏洞分析技术漏洞自动检测技术静态检测按照对模型节点的遍历方法分类正向分析:指从可能发生缓冲区溢出漏洞的源节点出发,正向遍历模原创 2021-09-29 10:36:36 · 1883 阅读 · 0 评论 -
缓冲区溢出分类
基于应用视角的缓冲区溢出检测技术一.缓冲区分类: 按照缓冲区所在内存区域位置分类: 栈溢出 堆溢出 数据段溢出 按照导致溢出的内存操作函数分类: 字符串操作函数(strcpy) 格式化输出函数(sprintf) 按照溢出数据修改的关键值分类: 修改返回地址 修改函数指针 修改指针变量 二.栈溢出 基于栈溢出的攻击Stack Smashing:原创 2021-09-24 09:05:00 · 2381 阅读 · 0 评论 -
Android逆向分析实例(四)-米读极速版日志植入
准备:1. 配置Fiddler抓包环境2. 下载米读极速版(密码:d0r2)3. Android手机/模拟器与电脑连同一个网络1. Fiddler配置首先去官网下载最新版的Fiddler;下载完后傻瓜式安装就行了;然后打开软件,先不要急着抓包,首先点击Tools -> Options;设置HTTPS选项;设置Connections选项;点击Actions第二项"Export Ro..原创 2021-07-02 14:11:26 · 399 阅读 · 0 评论 -
SEED(2)-缓冲区溢出攻击(Buffer-Overflow Attack)
1. 漏洞原理漏洞代码示例:#include<string.h>void foo(char *str){ char buffer[12]; strcpy(buffer, str);}int main(){ char *str = "This is definitely longer than 12"; foo(str); return 1;}当把str的内容copy到buffer中,由于str的长度大于12,就会造成缓冲区b..原创 2021-06-29 14:28:29 · 4295 阅读 · 1 评论 -
SEED(1)-实验环境搭建
1. 下载VirtualBox官网:Downloads – Oracle VM VirtualBox2. 下载SEED Ubuntu 20.04官网:https://seedsecuritylabs.org选择Lab Setup;点击DigitalOcean下载;3. 在VirtualBox中配置Seed-Ubuntu20.04解压SEED-Ubuntu20.04.zip文件打开VirtualBox,点击控制 ->原创 2021-06-29 13:55:13 · 10641 阅读 · 11 评论 -
抽象语法树(AST)
1.简介抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,这所以说是抽象的,是因为抽象语法树并不会表示出真实语法出现的每一个细节,比如说,嵌套括号被隐含在树的结构中,并没有以节点的形式呈现。抽象语法树并不依赖于源语言的语法,也就是说语法分析阶段所采用的上下文无文文法,因为在写文法时,经常会对文法进行等价的转换(消除左递归,回溯,二义性等),这样会给文法分析引入一些多余的成分,对后续阶段造成不利影响,甚至会使...原创 2021-04-20 13:33:06 · 2435 阅读 · 0 评论 -
Android逆向分析实例(三)-解密微信EnMicroMsg.db数据库
1.简介首先介绍下EnMicroMsg.db数据库:这个数据库是存放在Android手机本地的用来保存微信聊天记录的一个数据库,是一个Sqlite数据库,且手机必须要有root权限才能获取到,而且是被加密过的,必须先找到密钥才能打开。我们现在要做的就是找到这个密钥。网上关于该数据库的解密方法几乎都一样:首先通过微信的 system_config_prefs.xml 文件获取uin值,然后获取手机的IMEI值,最后 (IMEI值+uin值)取MD5的前七位就是数据库的密码。说下这个..原创 2021-04-30 16:10:05 · 12253 阅读 · 32 评论 -
程序依赖图(Program Dependency Graph)-(PDG)
1.定义百度百科:程序依赖图(Program Dependence Graph)是程序的一种图形表示,它是带有标记的有向多重图。程序依赖图能够表示程序的控制依赖和数据依赖关系。程序依赖图(Program Dependence Graph)是关于源代码的一种图模型。源代码的图模型包括流程图(Control Flow Graph)、控制依赖图(Control Dependence Graph)、数据流程图(dataDependence Graph)、程序依赖图(Program Depend..原创 2021-04-21 01:34:25 · 5448 阅读 · 0 评论 -
Android逆向分析实例(二)-修复输入法回编译后闪退问题
1.思考apk回编译后闪退,那肯定是这个app做了保护措施。开始我是这样想的,app闪退?那不就是被杀掉了进程嘛,直接去找KillProcess函数(杀死现有进程,也就是自己杀自己)不就行了么,或者找System.exit()函数(用 java api 退出当前线程)应该也可以,于是我根据这两个函数我找到了这个:apk下载链接既然找到了函数,那么直接把对应的smali文件里的A02()函数里的内容全都删掉,然后返回一个空值(return null)应该就可以了。思路应该是没问题的..原创 2021-04-18 11:29:54 · 1069 阅读 · 0 评论