码迷,mamicode.com
首页 > 其他好文 > 详细

CTF中pwn exp编写的一些小技巧

时间:2016-09-20 23:44:48      阅读:680      评论:0      收藏:0      [点我收藏+]

标签:

因为是搞底层的,平时也不怎么写脚本,所以并不太熟悉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编写的一些小技巧

标签:

原文地址:http://www.cnblogs.com/Ox9A82/p/5890732.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!