首页 > 代码库 > CTF中pwn exp编写的一些小技巧
CTF中pwn exp编写的一些小技巧
因为是搞底层的,平时也不怎么写脚本,所以并不太熟悉python。之前介绍过zio库何pwntools了,这次就来介绍一下关于读取输入输出的编写方法。
from struct import *
struct对于我们这种跟二进制打交道的人来说是极其有用的。
如何接受输出的明文地址?
比如
output:0x802A308
可以这样来接收
io.read_until(‘output:‘)get=io.read(9)
字符串转成数字
addr=int(get,16)
如何接受输出的被当成ascii字符的地址?
output:????
可以这样
io.read_until(‘output:‘)get=io.read(4)addr=unpack(‘i‘,get[0:4])
把数字作为字符输出
a=hex(addr)b=str(a)print b
Python作为脚本语言并没有C中的那些有符号数无符号数什么的,这样就只能借助库去实现转换了。
比如求-1的有符号表示
struct.pack(‘b‘,-1)‘\xff‘
>>> struct.pack(‘i‘,-65496)‘(\x00\xff\xff‘>>>
CTF中pwn exp编写的一些小技巧
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。