什么是" \ x5b \ x4d \ x6f等.."用Python表示?

时间:2018-01-31 15:42:16

标签: python buffer metasploit

这是我在这里的第一篇文章所以请原谅我,如果我犯了任何错误。

所以,我在Metasploit页面上浏览,我发现了这些奇怪的代码类型。我尝试在谷歌和这里搜索它,但无法找到像我一样的任何其他问题和答案。我也注意到Elliot在"先生。机器人"在Python中编程。我可以看到代码通常用于病毒,但我需要知道原因。这是我使用此方法找到的代码:

  

buf + =   " \ 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"

3 个答案:

答案 0 :(得分:2)

代码是以十六进制编码的ASCII字符序列。 它可以直接打印。

print('\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')

结果是:

[MoviePlay]
FileName0=C:\

答案 1 :(得分:1)

它是一个字符串,就像"Hello World!"之类的其他字符串一样。但是,它以不同的方式编写。在计算机中,每个字符根据编码对应于称为代码点的数字。您可能听说过的一种编码是ASCII,另一种是UTF-8。举一个例子,在两种编码中,字母H对应于数字72.在Python中,通常使用匹配的字母指定字符串,如"Hello World!"。但是,也可以使用代码点。在python中,这可以用\xab表示,其中ab被替换为代码点的十六进制形式。因此H将变为'\x48',因为48是72的十六进制表示法,即字母H的代码点。在此表示法中,"Hello World!"变为"\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21"

您指定的字符串由十六进制代码点5b(十进制91,字符[的代码点)组成,后跟代码点4d({ {1}})等,导致完整的字符串M。这里[MoviePlay]\r\nFileName0=C:\\\r是特殊字符,表示换行符,因此也可以将其读作:

\n

原则上,这种符号在病毒中不是必然,但是这种编程通常需要对内存中的数字进行非常具体的操作,而不必过多考虑这些数字所代表的实际字符,所以这可以解释为什么你会在那里看到它。

答案 2 :(得分:-1)

他们使用Metasploit,更确切地说,msfvenom可以创建或生成专门针对精心设计或利用文件的shellcode,例如具有不同编码的文档(docs,ppt,xls等)。