pwn和逆向的区别_Pwn之简单patch

本文探讨了Pwn和逆向分析的区别,并通过栈溢出、格式化字符串漏洞和堆UAF漏洞的例子,展示了如何进行漏洞修补。在32位和64位环境下,对栈溢出的patch方法进行了详细说明,同时提出了格式化字符串漏洞的两种修复策略。此外,文章还简单介绍了堆UAF漏洞的原理及修复思路。
摘要由CSDN通过智能技术生成
96d2fb54942bfc55b4fcba699c5e0b63.gif亲爱的,关注我吧 96d2fb54942bfc55b4fcba699c5e0b63.gif

9/27

文章共计1389个词

图片xue微有点多

注意流量哦

预计阅读7分钟

来和我一起阅读吧

1

引言

在攻防的时候不仅仅需要break,还需要fix将漏洞patch上。

2

工具 

这里我使用的是keypatch这个ida脚本

下载地址:https://github.com/keystone-engine/keypatch/blob/master/keypatch.py

3

栈溢出的patch

漏洞原理

由于输入函数的输入长度超过了局部变量所开辟的空间,因此使得输入能够覆盖到返回地址

patch

简单了解原理之后,我们可以知道,栈溢出起始就是输入的长度过大,那么我们将输入长度修改到局部变量开辟空间的范围内即可

例子
32为情况下

bcfeb933a206a4bf7b2ecf847cfa0d00.png


我们可以看到,buf距离ebp(栈底)距离0x28,但是输入却能够输入0x100,很明显的栈溢出漏洞

a2021bed68e2036152fe7025e1fb3d70.png

可以看到这里参数为0x100<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值