日志 7.6 pwn

Full RELRO:不能修改程序的 got 表

fflush():是一个计算机函数,功能是冲洗流中的信息

LOWORD()得到一个32bit数的低16bit
HIWORD()得到一个32bit数的高16bit
LOBYTE()得到一个16bit数最低(最右边)那个字节
HIBYTE()得到一个16bit数最高(最左边)那个字节

十六进制中一字节为2位
x64:8字节地址即为16位十六进制地址
x32:4字节地址即为8位十六进制地址

p.recvline().strip() 接收一行 去掉开头和结尾的空格和换行符

格式化字符串

pwnme_k0

当要修改的地址和原地址只有低4位(2个字节)不同时 可以使用%hn,由于系统是小端存储,因此直接%md%a$hn(其中m为要修改的数字的十进制,a为修改处的偏移)
利用 %hhn 向某个地址写入单字节,利用 %hn 向某个地址写入双字节

contacts

\ x00会导致 printf 的时候出现 0 截断

Leave等价于:
movl ebp esp 将sep指向ebp
popl ebp ebp指向新的ebp

ret 等价于 pop eip

今日疑问:

exp中写的地方不是函数c29的ebp吗,怎么变成main函数的ebp了

读源码 没有看出来heap的起始是第一个联系人的描述?
答:不是第一个联系人 是当前联系人 输出的是当前联系人的描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值