Как я могу прочитать этот ассемблерный код (в частности, "dq")? - PullRequest
0 голосов
/ 19 декабря 2018

У меня нет проблем, кроме того, что я не понимаю код.Что значит 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

1 Ответ

0 голосов
/ 19 декабря 2018

То, что вы видите, - это просто программа, предназначенная для интерпретации байтов как машинного кода или двоичных данных, которая пытается интерпретировать текст в формате UTF-16 Unicode.Шестнадцатеричные байты FF, FE образуют метку порядка байтов в Юникоде (BOM), остальные байты образуют последовательность 16-битных «символов» (ну, если быть точным: кодовые точки).Первая строка:

dq 6E00550022FEFFh, 65006400200064h, 560020006E0069h, 6C00650067006Fh

- это фактически текст Unicode (точнее, двухбайтовая спецификация, за которой следует 16-битный текст Unicode с прямым порядком байтов:

"Und dein Vogel

), но поскольку программа видит все, что вы кидаете в нее, как двоичные данные, она отображает данные в виде четырех слов (64-битных значения), следовательно, dq в начале каждой строки.

FWIW: dq означает «определить четырехзначное слово» [т.е. определить 64-битный элемент (ы)].

Это то, что вы получаете, когда используете неправильную программудля неправильной цели: ерунда .

Для чтения текста используйте текстовый редактор или текстовый процессор , а не шестнадцатеричный редактор. FWIW, если вы использовалиВ шестнадцатеричном редакторе в байтовом режиме вы увидите, что это текст. Правая сторона будет отображаться примерно так:

..".U.n.d. .d.e.
i.n. .V.o.g.e.l.

Похож на текст немецкой песни.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...