ctf中常用模块之binascii

写在前面

ctf各类题目里都经常遇到要用python处理以字符串形式拿到的地址值(尤其是pwn),有的时候写起来还挺伤脑筋的。记录一下好用的binascii模块

1
from binascii import *

b2a_hex 和 a2b_hex

1
2
3
4
5
In [1]: from binascii import *
In [2]: b2a_hex('\x16\x31\x66\x58')
Out[2]: '16316658'
In [3]: a2b_hex('16316658')
Out[3]: '\x161fX'

hexlify

1
2
3
4
5
6
In [4]: hexlify('hello')
Out[4]: '68656c6c6f'
In [5]: a2b_hex('68656c6c6f')
Out[5]: 'hello'
In [6]: unhexlify('68656c6c6f')
Out[6]: 'hello'

函数列表

其实作用就是把二进制的数据按照字节返回成十六进制的表示,但是binascii模块里还有一堆可以把二进制数据返回成其他表示的函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
binascii.a2b_uu(string)

binascii.b2a_uu(data)

binascii.a2b_base64(string)

binascii.b2a_base64(data)

binascii.a2b_qp(string[, header])

binascii.b2a_qp(data[, quotetabs, istext, header])

binascii.a2b_hqx(string)

binascii.rledecode_hqx(data)

binascii.rlecode_hqx(data)

binascii.b2a_hqx(data)

binascii.crc_hqx(data, crc)

binascii.crc32(data[, crc])

binascii.b2a_hex(data)

binascii.b2a_hex(data)

binascii.hexlify(data)

binascii.a2b_hex(hexstr)

binascii.unhexlify(hexstr)

文章目录
  1. 1. 写在前面
  2. 2. b2a_hex 和 a2b_hex
  3. 3. hexlify
  4. 4. 函数列表
|