linux虚拟机设置github加速
最近在使用vmware虚拟机跑项目复现,需要频繁使用github,因此在此记录下github加速的简单方法 https://zhuanlan.zhihu.com/p/432414619
Fudge论文笔记
摘要google针对c与c++库提出了新的fuzz driver自动化生成方式。 解决问题对C/C++库代码片段的slice_based_fuzz。 主要贡献基于google海量代码库进行测试,完成了Fudge可以有效的处理海量的代码。发现其中的安全漏洞 尚存不足fuzz基于源代码,可以考虑在编译源代码为可执行文件后加入动态符号执行等技术。(也在其Future Work中体现(还提到了Machine Learning)) Fudge具体过程Slicing...
Fuzzware复现
项目链接:https://github.com/fuzzware-fuzzer/fuzzware 1. 环境Ubuntu22.04 docker 具体过程比较简单,可以直接看github readme 2. 复现1./run_docker.sh examples fuzzware pipeline --skip-afl-cpufreq pw-recovery/ARCH_PRO 由图可以看到刚开始运行时发现新的MMIO寄存器模型,由于MMIO Access Model中并不存在,因此会将其定义为新的模型,然后继续向下运行 建模完毕后,开始进行正常的fuzzing阶段。 一轮fuzzing结束后,根据反馈调整输入,开始下一阶段fuzzing。
Winnie论文笔记
解决问题对当下Windows系统软件的fuzz没有合适的方法。提出了Winnie对Windows闭源软件进行fuzzing。 主要贡献 提出了Winnie,可以对Windows闭源软件进行模糊测试 实现了windows系统的fork方法,使得可以不用每次执行都得从头开始,提高了fuzzing效率,其中fork新进程的速度达到310次/s显著高于windows自带CreateProcess91.9次/s,与WSL的fork速度相近。 尚存不足 由于闭源特性,无法全自动,需要人工参与fuzzer代码的生成 具体细节 生成fuzz代码 Target Identification:确认二进制程序中可以用于fuzz的输入点(读取用户输入的api或函数) Call-seq Recovery:恢复目标程序中函数体内对各个相关targetfunction调用的顺序(类似于fudge) Argument...
P2IM论文笔记
简介背景:模拟以MCU为处理器的固件设备并没有完全的模拟外设,导致fuzzing时外设需要实际物理设备,速度偏慢,且没有达到完全模拟。 主要实现了一个可以模拟在MCU下运行的固件的模拟器P2IM。通过自动化外设接口的建模来进行自动化,可扩展的模拟。 特点:对mcu架构下的寄存器进行分类识别,在qemu模拟时同时模拟这些寄存器值的操作,从而模拟出了firmware外设的一系列操作。保证了firmware在qemu上的稳定运行的同时加入了外设的模拟。 解决问题当时对固件的模拟需要软硬件结合,导致fuzz的效率很慢,因此提出了一种模拟器对固件完全模拟的思路,通过实现对固件外设寄存器的分类并模拟以达到完全模拟的目的。 主要贡献实现了对无硬件模拟 提出了P2IE(外设接口等效属性):为了定义怎样的仿真是好的仿真 提出了MMIO寄存器四种模型:对四种模型的行为进行了定义 探索性执行技术 尚存不足 寄存器分类可能存在错误(eg:...
SFuzz论文笔记
简介RTOS系统当下并没有很好的分析方式,因此作者提出了sfuzz工具,利用RTOS每一项任务的控制流都是独立的特点,从RTOS系统中切出独立的代码块进行fuzzing。 项目地址:https://github.com/NSSL-SJTU/SFuzz 解决问题解决了在当时RTOS领域模糊测试没有很好的分析方式的问题。 主要贡献 提出了RTOS系统的特点:每一项任务的控制流都是相互独立的,通过代码切片获取到独立的代码树,分别进行分析 使用了前向切片与后向切片,根据依赖和函数调用关系获取了代码片段以供fuzz 设计了SFuzz,对RTOS进行灰盒测试。 尚存不足具体内容sfuzzing一共分为四个模块,分别为Forward slicer,Control Flow Nodes Handler,Micro Fuzzing,Concolic Analyzer。 Forward Slicer由上图可知,forward...
uEmu论文笔记
...
P2IM复现
导师说要多实践,因此将看过的P2IM论文进行复现,同时对源码进行简单查看。 看网上并没有相关的复现教程,因此写下该博客 链接: https://github.com/RiS3-Lab/p2im 1. 环境Ubuntu 16.04 !!!(重中之重!其他版本可能不成功) GNU Arm Embedded Toolchain:https://developer.arm.com/downloads/-/gnu-rm fuzz target: https://github.com/RiS3-Lab/p2im-real_firmware/tree/d4c7456574ce2c2ed038e6f14fea8e3142b3c1f7/binary 2. 过程 首先下载p2im源码 12git clone https://github.com/RiS3-Lab/p2im.gitcd p2im 下载子项目 123# submodules are cloned into externals/git submodule update --initgit submodule update...
uEmu复现
1. 环境Ubuntu 20.04(最好分配大于20G存储空间,否则可能不够用) gitee链接:https://gitee.com/cpdt/uEmu.git virtualbox 2. 步骤 克隆下载uEmu 1git clone https://gitee.com/cpdt/uEmu.git 使用vagrant Installation方式复现(不推荐,感觉和直接源码安装没区别,还要多出安装虚拟机的步骤,虚拟机套虚拟机。。。还容易崩溃。。。),安装virtualbox 12sudo apt install vagrantsudo apt install virtualbox 启动虚拟机 1vagrant up 需要等几分钟,第一次会下载ubuntu镜像,这里放一个清华源镜像,添加到vagrantfile里: 1config.vm.box_url =...
【SeedLab】格式化字符串实验报告
1 Overviewprintf函数用于根据指定格式打印出字符串,第一个参数诶格式化字符串format string,格式化字符串中使用了%来作为占位符。如果不使用%占位符而是直接将变量放入格式化字符串,则存在格式化字符串漏洞,可能被恶意利用。 2 Environment Setup2.1 Turning of Countermeasure关闭ASLR 12❯ sudo sysctl -w kernel.randomize_va_space=0kernel.randomize_va_space = 0 2.2 The Vulnerable Program漏洞程序如下 format.c:myprintf存在漏洞printf(msg); 1234567891011121314151617181920212223242526void myprintf(char *msg){#if __x86_64__ unsigned long int *framep; // Save the rbp value into framep asm("movq...