擅长:python、mysql、java
<p>关于这个问题的解释,见<a href="https://stackoverflow.com/a/57814416/4518341">Mark's answer</a>。至于如何修复它,您可以使用下面的一个示例在两字节块中迭代字符串:<a href="https://stackoverflow.com/q/312443/4518341">How do you split a list into evenly sized chunks?</a></p>
<pre><code>import binascii
content = 'string\n'
def chunks(sequence, n):
"""
Yield successive n-sized chunks from the sequence.
Modified from https://stackoverflow.com/a/312464/4518341
"""
for i in xrange(0, len(sequence), n):
yield sequence[i:i+n]
shellcode = ''
for t in chunks(content, 2):
shellcode += "%u"
if len(t) > 1:
shellcode += binascii.hexlify(t[1])
shellcode += binascii.hexlify(t[0])
print shellcode
</code></pre>
<p>输出:</p>
<pre><code>%u7473%u6972%u676e%u0a
</code></pre>