S3c_r3v3rs3r

uaf漏洞原理浅析

Use after free漏洞原理浅析实例

前言 uaf 漏洞全称是use after free,free是指函数是在堆上动态分配空间后不再使用该改数据从而被回收。但是由于程序员的一些不适当的操作,会导致攻击者能够操控已经被释放的区域,从而执行一些byte codes。本文简述了uaf的基本原理,并使用一个简单的例子进行讲解。 正文 首先让我们看一下存在漏洞程序的源码: #include <err.h> #includ...

buffer overflow执行shellcode基本原理

Linux平台下经典buffer overflow原理介绍

前言 虽说针对buffer overflow的防御机制已经很多了,为了防止指针地址被控制, 操作系统强制开启了了ASLR,随机分布地址,使得攻击者难以控制返回地址。 与之类似的防止栈溢出的方法还有NX不可执行栈, 和Canary即在return address前放置一个随机的值,在callee返回之前caller之前先要检测该值是否 被修改。接下来就简单讲一讲最基本的栈溢出是怎么实现发生的...

使用Windbg&OllyDbg从头调试windows服务

Windows平台使用Windbg&OllyDbg从头调试服务

前言 在分析恶意软件时,恶意软件通常会创建服务,然后拉起服务删除自身文件,结束进程。很多关键的操作都在恶意软件新创建的服务之中,当然可以使用IDA进行静态的调试,但同时需要OD对服务进行动态的调试。 正文 对于绝大多数的服务可以直接attach到OD或者windbg上进行调试,但是如果想从启动就开始就调试该服务,这种attach的方法就不是很适用。网上有一些多年前的文档教程,但是在亲身尝试...

使用fuzzer实现anti-debugging的趣味实验 XD

Linux平台下使用fuzzer实现anti-debugging的实验

前言 在youtube和国外论坛上看到了一种比较有趣的使用fuzzing实现反调试的思路. 方法的原理很简单,通过循环修改源文件的一个byte使得该文件正常共能能够实现,但是能够对gdb和radare2这累调试软件进行一定程度上的干扰。通过实验之后发现,该方法不一定适合实战,但是可能会在对于反调试这一部分开拓新思路上面会有所帮助。 正文 首先使用C语言写一个类似于Crackme的简单...