我正在尝试生成ascii到javascriptunicode,我可以生成它,但是在检查了一些方面之后。我注意到我的程序正在吃掉字符串的最后一部分。我怎样才能解决这个问题?你知道吗
import binascii
content = 'string\n'
first_byte = ""
second_byte = ""
shellcode = ""
flag = 0
for b in content:
if flag == 0:
shellcode += "%u"
first_byte = binascii.hexlify(b)
flag += 1
else:
second_byte = binascii.hexlify(b)
shellcode += second_byte
shellcode += first_byte
flag = 0
print shellcode
我的脚本输出
%u6c62%u6361%u6c6b%u6965%u7574%u
想要一个,但一般来说不管是什么字符串
%u6c62%u6361%u6c6b%u6965%u7574%u0a73
您正在使用变量
flag
将您的输入分成两部分。偶数字符保存在first_byte
中,当您得到奇数字符时,您将两者都保存到shellcode
。循环结束时,first_byte
中有一个尚未输出的字符,如果字符数为偶数。你知道吗关于这个问题的解释,见Mark's answer。至于如何修复它,您可以使用下面的一个示例在两字节块中迭代字符串:How do you split a list into evenly sized chunks?
输出:
相关问题 更多 >
编程相关推荐