将字符串转换为十六进制

时间:2018-08-22 21:36:23

标签: python-2.7 formatting hex

在CTF脚本中,我将十六进制格式的地址分配给随后要解释的变量,例如:

mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin2                     | <--
| character_set_connection | latin2                     | <--
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | latin2                     | <--
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

我写了一个增加该地址的循环,将其转换回字符串后,格式全部搞砸了。

问题是,我有一个字符串,如address = '\xc4\x32\xff\ff' ,我需要对它的解释与以前的地址相同。因此,我四处搜寻并进行了一些测试。由于前导\ x字符,打印变量会将文本转换为十六进制:

c432ffff

所以,我认为我需要将我的字符串转换为十六进制以产生相同的输出。搜索之后,我认为答案是“ binascii”,我尝试了一下,但输出显然不一样:

print '\xc4\x32\xff\ff'
Result is: �2�
   f

我认为我的措词可能有误,这就是为什么我的Google搜索没有结果的原因。有谁知道需要对字符串(c432 ...)执行什么才能使其与十六进制字符串解释相同?

0 个答案:

没有答案