这是我在这里的第一篇文章,所以如果我犯了任何错误,请原谅我。
所以,我在Metasploit页面上浏览,我发现了这些奇怪的代码类型。我尝试在谷歌和这里搜索它,但找不到任何其他问题和答案。我还注意到 Elliot 在用 Python 编程时在"机器人先生"中使用了该方法。我可以看到代码通常用于病毒,但我需要知道为什么。这是我使用此方法找到的代码:
布夫 += "\x5b
\x4d\x6f\x76\x69\x65\x50\x6c\x61\x79\x5d\x0d\x0a\x46\x69\x6c\x65\x4e\x61\x6d\x65\x30\x3d\x43\x3a\x5c"
它是一个字符串,就像任何其他字符串一样"Hello World!"
.但是,它以不同的方式编写。在计算机中,每个字符对应于一个数字,根据编码称为代码点。您可能听说过的一种编码是 ASCII,另一种是 UTF-8。举个例子,在这两种编码中,字母H
对应于数字 72。在 Python 中,通常使用匹配的字母指定字符串,如"Hello World!"
。但是,也可以使用代码点。在python中,这可以用xab
表示,其中ab
被替换为代码点的十六进制形式。所以H
会变成'x48'
,因为48是72的十六进制表示法,字母H
的代码点。在此表示法中,"Hello World!"
变为"x48x65x6cx6cx6fx20x57x6fx72x6cx64x21"
.
指定的字符串由十六进制代码点5b
(十进制 91,字符[
的代码点)组成,后跟代码点4d
(M
) 等,导致完整的字符串[MoviePlay]rnFileName0=C:\
。这里的r
和n
是代表换行符的特殊字符,因此也可以将其理解为:
[MoviePlay]
FileName0=C:\
原则上,这种符号不一定在病毒中找到,但这种编程通常需要对内存中的数字进行非常具体的操作,而没有充分考虑这些数字所代表的实际字符,因此这可以解释为什么你会看到它出现在那里。
代码是以十六进制编码的 ASCII 字符序列。 可以直接打印。
print('x5bx4dx6fx76x69x65x50x6cx61x79x5dx0dx0ax46x69x6cx65x4ex61x6dx65x30x3dx43x3ax5c')
结果是:
[MoviePlay]
FileName0=C:
他们使用Metasploit,msfvenom更具体地说,创建或生成专门用于构建或利用的文件的shellcode,例如具有不同编码的文档(docs,ppt,xls等)。