Ret2dlresolve攻击解析 Ret2dlresolve攻击解析(Linux动态链接原理) 本文尝试使用问题驱动作为行文思路的方式,使用问答的方式一步一步剖析Linux动态链接原理,并解析ret2dlresolve攻击方法 Q1:什么是动态链接? 把链接这个过程推迟到了运行时再进行,在可执行文件装载时或运行时,由操作系统的装载程序加载库 Q2:为什么需要动态链接? 解决静态链接的空间浪费和更新困难问题 Q3:动态链接的实 2023-10-13 #栈溢出漏洞利用 #ret2dlresolve #linux动态链接
CVE-2023-38831(WinRAR)漏洞分析 CVE-2023-38831(WinRAR)漏洞分析1. 漏洞简介CVE-2023-38831是WinRAR(<=6.22)版本中存在的可执行任意恶意代码的漏洞,该漏洞需要被攻击的用户双击压缩包中的文件,随后恶意代码将会在被攻击用户的电脑中运行,因此此漏洞可用于钓鱼。 2. 漏洞复现复现环境与软件:Windows操作系统、WinRAR(<=6.22)、二进制编辑器(如WinHex) S 2023-09-18 #漏洞分析
分支是如何影响代码性能的? 分支是如何影响代码性能的?上周在ryf的公众号上发现一篇名为《How branches influence the performance of your code and what can you do about it?》[1]的文章,讲述了代码分支(if语句)对于程序性能的影响。主要契机是在AFL源码的if语句中常常出现的likely和unlikely用法,所以这一篇文章就挺让我在意的,不过 2023-09-08 #性能优化
一步一步”手搓“一个简单的PE解析器 一步一步”手搓“一个简单的PE解析器 本文主要通过编写一个简单的PE解析器来加强对于PE结构的理解 项目地址:bladchan/Simple-PE-Parser: A simple tool for parsing PE file (github.com) Step 0: 预备工作 了解PE文件结构,参考资料[1-7]均介绍了PE的结构,这里不再赘述 winnt.h,该头文件包含了很多PE文件格 2023-08-03 #PE #Windows
关于QEMU和AFL-QEMU模式那些事 关于QEMU和AFL-QEMU模式那些事1. QEMU是什么? QEMU(Quick EMUlator)是一个仿真和模拟虚拟环境的开源软件,其本质上还是一个软件,通过动态翻译实现模拟[1]。 软件虚拟化 跨平台 仿真多种架构的处理器 动态翻译 以模拟x86下的指令为例,动态翻译的基本思想就是把每一条x86指令切分为若干条微操作,而每条微操作都是由QEMU中的一段简单的C代码来实现 QEMU的动态 2023-07-20 #模糊测试 #AFL #QEMU
关于Linux IO多路复用那些事 关于I/O多路复用那些事Q1:为什么需要I/O多路复用?[1] A1: TCP Socket只能实现一对一通信 ==> 同步阻塞(连接请求饥饿性):read阻塞直到请求数据传送过来并write 🤔 如果没有I/O多路复用,那如何更好服务更多的用户? 一个请求对应一个线程 ==> 维护一个线程池 线程池的缺点:1)如何确定预先分配的线程池中线程的数量?如果分配少了,但连接数激增,可 2023-07-10 #多路复用 #Linux
AFLplusplus cmplog插桩解析 AFL++’s Cmplog插桩1. 源码解析afl-cc.c 代码片段: 123456789101112131415161718192021222324252627 if (cmplog_mode) { cc_params[cc_par_cnt++] = "-fno-inline";#if LLVM_MAJOR >= 11 2023-04-20 #模糊测试 #AFL++
AFLplusplus自定义变异器—源码细节 AFL++自定义变异器 支持C/C++库和Python模式 C/C++ library (*.so) Python module 1. 简介相关注意事项: custom_mutator_stage在确定性变异之后启用; 在使用C/C++接口时,需要引入一个动态链接库(动态库路径存放在环境变量AFL_CUSTOM_MUTATOR_LIBRARY中),该库(部分)定义AFL++暴露出来的接口 2023-03-09 #模糊测试 #AFL++
ReZZan:Efficient Greybox Fuzzing to Detect Memory Errors 1. 引言 内存错误是安全漏洞的常见来源 赋予攻击者更改内存内容的能力,可能会构成信息泄露和控制流劫持 内存错误的静默性: 内存错误不一定会导致程序立即崩溃 进行插桩监控内存情况:Sanitizer(e.g. AddressSanitizer) fork模式的模糊测试 + 内容错误sanitizers = 显著的性能开销 AFL+AddressSanitizer:吞吐量降低了约58% 2023-01-10 #论文阅读
深入浅出AFL插桩 AFL插桩剖析I. 前置知识 编译器产生可执行文件的流程如下图1、2所示(以gcc编译器为例,clang同理): 图1 gcc编译器工作流程(顶层架构) 图2 clang编译器工作流程(顶层架构) 主流的编译器【图1中第二个阶段】包括三个组件:前端、中间端和后端 [1] 前端:读取源文件并对其进行分析,通常是将源码转化为标准抽象语法树(AST) 中间端:进行源码优化,通常是使用生成的某 2022-12-27 #模糊测试 #AFL