
二进制
文章平均质量分 94
sam1i
这个作者很懒,什么都没留下…
展开
-
缓冲区溢出
栈溢出指的是程序向栈中某个变量中写入的字节数超过了这个变量本身所申请的字节数,因而导致与其相邻的栈中的变量的值被改变。现在新版的很多编译器都是默认带上安全配置,除了上面的PIE,还有NX保护等,随着这些保护的开启对应以往直接向栈或者堆上直接注入代码的方式就不能实现了,后面主要思路就是ROP(Return Oriented Programming)。EBP(Base Pointer)是栈帧基址指针寄存器,存放执行函数对应栈帧的栈底地址,用于C运行库访问栈中的局部变量和参数。一般来说,我们会有如下的覆盖需求。原创 2024-06-27 15:26:35 · 807 阅读 · 0 评论 -
基础ROP篇1
ROP (Return-Oriented Programming)是为了程序编译后存在如非执行(NX)页或代码签名等保护机制时,仍能执行任意代码一种手段;其主要思想是在“gadget” 指的是目标程序或系统库中的一小段机器指令序列,这些序列以 ret指令结束。之所以称之为 ROP,是因为核心在于利用了指令集中的 ret 指令,改变了指令流的执行顺序。ROP 攻击一般得满足如下条件假设有以下几个 x86 架构的指令序列作为 gadgets,可以通过组合这些gadgets构造一个执行序列。原创 2024-06-27 17:07:06 · 1308 阅读 · 0 评论 -
GDB使用技巧和相关插件
参考:《100个gdb小技巧》链接中的文档有许多关于GDB的使用小技巧;gdb中使用“x”命令来打印内存的值,格式为“x/nfu addr”。含义为以f格式打印从addr开始的n个长度单元为u的内存值。参数具体含义如下:a)n:输出单元的个数。b)f:是输出格式。比如x是以16进制形式输出,o是以8进制形式输出,等等。c)u:标明一个单元的长度。b是一个byte,h是两个byte(halfword),w是四个byte(word),g是八个byte(giant word)。原创 2022-12-05 16:38:14 · 1774 阅读 · 0 评论 -
智能调试设备动态分析-gdb
在《智能硬件固件分析》中讲了关于固件静态分析部分,从常见的固件获取方式,以及拿到固件后如何分析,涉及到的相关工具,并最后完成自己的静态分析脚本;然后静态分析的弊端也是非常明显,具体可以看以前写的《APP动态分析-Eclipse调试》,《APP动态分析-AndroidStudio调试+IDA 我来了》,就是因为在移动端的静态分析完不成一部分工作,或者说很多问题要通过动态调试来发现,当时讲的动静态分析是根据移动端的分析目的角度来讲的,这里就简单补充一下静态跟动态的区别;...原创 2022-07-14 14:59:18 · 546 阅读 · 0 评论 -
C/C++的命令执行分析
wiki百科上描述:任意代码执行(简称ACE)是指攻击者能够让目标电脑或目标进程中执行任意命令或代码[1]。如果系统有地方可以被黑客利用以执行任意代码,则此处被称为任意代码执行漏洞。特别设计利用此一漏洞的程式,称为任意代码执行漏洞利用。可以通过网络(尤其是通过互联网等广域网)让目标电脑(远程电脑)执行任意代码的能力称为远程代码执行(RCE)。wiki的描述比较偏于云端的场景,这里场景就是指用户通过浏览器或者其他辅助程序提交数据,由于执行端没有针对执行函数进行过滤,导致在没有指定绝对路径的情况下执行命令。原创 2023-06-21 17:13:15 · 1262 阅读 · 1 评论 -
FUZZ工具—Boofuzz框架
Boofuzz是一个基于著名的Sulley模糊测试框架的分支和继承者。除了修复了许多bug,Boofuzz还致力于扩展性。其目标是:fuzz everything。原创 2023-06-25 15:48:29 · 1684 阅读 · 0 评论 -
FUZZ工具—Boofuzz框架实际使用
接着上一篇文章来对框架进行实际的使用;官方提供了很多案例模板,且网上关于boofuzz的使用介绍很多,也比较成熟,在各个领域都有,可以通过官方提供的案例也看得出来,然后覆盖的面也非常的全,目前也就只有ble、zigbee这种无线电通信协议的覆盖不了,下面用一个简单的测试来学习一下boofuzz的使用,来挖掘一下漏洞;原创 2023-06-25 16:10:30 · 4478 阅读 · 5 评论 -
PWN利器-pwntools安装、调试教程一览
pwntools是一个CTF框架和漏洞利用的python开发库,专为快速开发而设计,旨在使漏洞利用编写尽可能简答原创 2022-12-05 16:45:53 · 9333 阅读 · 1 评论