除了我不理解代码外,我没有任何问题。 dq是什么意思?它在装配中起什么作用?所有这些数字代表什么?文本文件仅包含歌曲歌词,所以我猜只是单词。但这仅仅是十六进制表示法吗?
我只是用反汇编器打开了一个文本文件,只是为了了解它的含义,但是我在任何地方都看不到像jmp命令这样的常规汇编语法。我怎么知道这意味着什么?
; Segment type: Pure code
segment byte public 'CODE' use64
assume cs:seg000
assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing
dq 6E00550022FEFFh, 65006400200064h, 560020006E0069h, 6C00650067006Fh
dq 6E0061006B0020h, 6900730020006Eh, 6E00650067006Eh, 0D000A000D0022h
dq 6500690053000Ah, 67006100730020h, 6D0020006E0065h, 20002C00720069h
dq 73007300610064h, 65006900530020h, 6C006C00610020h, 68002000730065h
dq 6E006500620061h, 6100770020002Ch, 69005300200073h, 6F007700200065h
dq 6E0065006C006Ch, 6E0055000A000Dh, 65006400200064h, 560020006E0069h
dq 6C00650067006Fh, 6E0061006B0020h, 6900730020006Eh, 6E00650067006Eh
dq 620041000A000Dh, 64002000720065h, 65007600200075h, 65007400730072h
dq 20007400730068h, 6800630069006Dh, 630069006E0020h, 0A000D00740068h
dq 76002000750044h, 74007300720065h, 74007300680065h, 630069006D0020h
dq 69006E00200068h, 0D007400680063h, 59000A000D000Ah, 7400200075006Fh
dq 20006C006C0065h, 7400200065006Dh, 20007400610068h, 270075006F0079h
dq 67002000650076h, 6500200074006Fh, 79007200650076h, 6E006900680074h
dq 6F007900200067h, 61007700200075h, 0A000D0074006Eh, 200064006E0041h
dq 720075006F0079h, 72006900620020h, 61006300200064h, 6900730020006Eh
dq 0A000D0067006Eh, 20007400750042h, 200075006F0079h, 27006E006F0064h
dq 65006700200074h, 65006D00200074h, 6F0059000A000Dh, 6F006400200075h
dq 2000740027006Eh, 20007400650067h, 0A000D0065006Dh, 690053000A000Dh
dq 61007300200065h, 2C006E00650067h, 65006900530020h, 62006100680020h
dq 730020006E0065h, 65006200650069h, 7500570020006Eh, 7200650064006Eh
dq 73006500670020h, 6E006500680065h, 6E0055000A000Dh, 65006400200064h
dq 560020006E0069h, 6C00650067006Fh, 74007300690020h, 0FC007200670020h
dq 41000A000D006Eh, 20007200650062h, 6B002000750064h, 73006E006E0061h
dq 69006D00200074h, 6E002000680063h, 74006800630069h, 68006500730020h
dq 0A000D006E0065h, 6B002000750044h, 73006E006E0061h, 69006D00200074h
dq 6E002000680063h, 74006800630069h, 68006500730020h, 0A000D006E0065h
dq 6F0059000A000Dh, 61007300200075h, 6F007900200079h, 65007600270075h
dq 65006500730020h, 6500730020006Eh, 20006E00650076h, 64006E006F0077h
dq 0D007300720065h, 64006E0041000Ah, 75006F00790020h, 69006200200072h
dq 69002000640072h, 72006700200073h, 0D006E00650065h, 7400750042000Ah
dq 75006F00790020h, 6E006100630020h, 73002000740027h, 6D002000650065h
dq 59000A000D0065h, 6300200075006Fh, 740027006E0061h, 65006500730020h
dq 0D0065006D0020h, 57000A000D000Ah, 20006E006E0065h, 20007200680049h
dq 74007200650077h, 6C006C006F0076h, 42002000720065h, 74006900730065h
dq 46000A000D007Ah, 650067006E0061h, 2C006E00610020h, 63006900640020h
dq 75007A00200068h, 73006500620020h, 65007700680063h, 0D006E00650072h
dq 6800630053000Ah, 69002000750061h, 65006D0020006Eh, 200065006E0069h
dq 68006300690052h, 67006E00750074h, 630049000A000Dh, 65007700200068h
dq 20006500640072h, 64006E00750072h, 69006500730020h, 49000A000D006Eh
dq 77002000680063h, 65006400720065h, 6E007500720020h, 65007300200064h
dq 0A000D006E0069h, 680057000A000Dh, 790020006E0065h, 2000720075006Fh
dq 7A006900720070h, 70002000640065h, 6500730073006Fh, 6F006900730073h
dq 0A000D0073006Eh, 72006100740053h, 6F007400200074h, 69006500770020h
dq 79002000680067h, 6400200075006Fh, 0D006E0077006Fh, 6F006F004C000Ah
dq 6E00690020006Bh, 200079006D0020h, 65007200690064h, 6F006900740063h
dq 49000A000D006Eh, 20006C006C0027h, 72002000650062h, 64006E0075006Fh
dq 270049000A000Dh, 620020006C006Ch, 6F007200200065h, 0D0064006E0075h
dq 57000A000D000Ah, 20006E006E0065h, 6E006900650064h, 67006F00560020h
dq 6B0020006C0065h, 74007500700061h, 73006900200074h, 42000A000D0074h
dq 67006E00690072h, 73006500200074h, 63006900640020h, 75007200200068h
dq 7200650074006Eh, 53000A000D003Fh, 6B002000650069h, 65006E006E00F6h
dq 7500610020006Eh, 77006500670066h, 74006B00630065h, 72006500770020h
dq 0D006E00650064h, 6800630049000Ah, 72006500770020h, 72002000650064h
dq 200064006E0075h, 6E006900650073h, 630049000A000Dh, 65007700200068h
dq 20006500640072h, 64006E00750072h, 69006500730020h, 0D000A000D006Eh
dq 6500680057000Ah, 6F00790020006Eh, 62002000720075h, 20006400720069h
dq 62002000730069h, 65006B006F0072h, 57000A000D006Eh, 20006C006C0069h
dq 62002000740069h, 67006E00690072h, 75006F00790020h, 77006F00640020h
dq 0A000D003F006Eh, 200075006F0059h, 2000790061006Dh, 61002000650062h
dq 65006B006F0077h, 49000A000D006Eh, 20006C006C0027h, 72002000650062h
dq 64006E0075006Fh, 270049000A000Dh, 620020006C006Ch, 6F007200200065h
dq 0D0064006E0075h, 53000A000D000Ah, 73002000650069h, 6E006500670061h
dq 720069006D0020h, 6100640020002Ch, 53002000730073h, 6A002000650069h
dq 6E006500640065h, 6E006F00540020h, 68006500670020h, 200074007200F6h
dq 65006200610068h, 55000A000D006Eh, 6400200064006Eh, 20006E00690065h
dq 650067006F0056h, 61006B0020006Ch, 730020006E006Eh, 69007700680063h
dq 6E00650067006Eh, 620041000A000Dh, 64002000720065h, 61006B00200075h
dq 740073006E006Eh, 630069006D0020h, 69006E00200068h, 20007400680063h
dq 65007200F60068h, 44000A000D006Eh, 61006B00200075h, 740073006E006Eh
dq 630069006D0020h, 69006E00200068h, 20007400680063h, 65007200F60068h
dq 0D000A000D006Eh, 75006F0059000Ah, 6C006500740020h, 65006D0020006Ch
dq 61006800740020h, 6F007900200074h, 65007600270075h, 61006500680020h
dq 65002000640072h, 79007200650076h, 75006F00730020h, 7400200064006Eh
dq 65007200650068h, 0D007300690020h, 64006E0041000Ah, 75006F00790020h
dq 69006200200072h, 63002000640072h, 730020006E0061h, 67006E00690077h
dq 750042000A000Dh, 6F007900200074h, 61006300200075h, 2000740027006Eh
dq 72006100650068h, 0D0065006D0020h, 75006F0059000Ah, 6E006100630020h
dq 68002000740027h, 20007200610065h
db 6Dh ; m
align 2
dw 65h, 0FEFFh
ends
end
答案 0 :(得分:1)
您看到的只是一个旨在将字节解释为机器代码或二进制数据的程序,该程序试图解释UTF-16 Unicode格式的文本。十六进制FF,FE字节构成一个Unicode字节顺序标记(BOM),其他字节构成一个16位“字符”的序列(准确地说,是代码点)。第一行:
dq 6E00550022FEFFh, 65006400200064h, 560020006E0069h, 6C00650067006Fh
实际上是Unicode文本(准确地说,是两个字节的BOM,后跟16位小尾数Unicode文本:
“ Und dein Vogel
),但是由于程序将您扔给它的所有内容都视为二进制数据,因此它将数据显示为四字(64位值),因此在每行的开头显示dq
。
FWIW:dq
的意思是“定义四字” [即定义64位项目]。
这是由于错误的目的而使用错误的程序的原因:废话。
要阅读文本,请使用文本编辑器或文字处理器,而不要使用十六进制编辑器。 FWIW,如果您在字节模式下使用了十六进制编辑器,则会看到它是文本。右侧将显示为:
..".U.n.d. .d.e.
i.n. .V.o.g.e.l.
看起来像德国歌曲文字。