簡體   English   中英

有沒有辦法從機器代碼中獲取助記符?

[英]Any way to get the mnemonics from the machine code?

我有一個簡單的程序集程序

.text
.globl _start
_start:
        movl $1, %eax
        movl $1, %ebx
        int $0x80

我已經組裝好了。 我已將其內容轉儲如下

root@bt:~# objdump -d out     
out:     file format elf32-i386
Disassembly of section .text:

08048054 <_start>:
 8048054:       b8 01 00 00 00          mov    $0x1,%eax
 8048059:       bb 01 00 00 00          mov    $0x1,%ebx
 804805e:       cd 80                   int    $0x80

現在我的問題是,如果只給出下面的機器代碼\\xb8\\x01\\x00\\x00\\x00\\xbb\\x01\\x00\\x00\\x00\\xcd\\x80 ,我可以找回助記符\\xb8\\x01\\x00\\x00\\x00\\xbb\\x01\\x00\\x00\\x00\\xcd\\x80

如何反匯編原始x86代碼中有相當詳細的記錄

為了做你的具體例子,這對我有用(在Linux機器上,使用GNU工具鏈):

printf '\xb8\x01\x00\x00\x00\xbb\x01\x00\x00\x00\xcd\x80' > /tmp/binary
objdump -D -b binary -mi386 /tmp/binary

以此作為選項的簡短文檔:

           [-D|--disassemble-all]
           [-b bfdname|--target=bfdname]
           [-m machine|--architecture=machine]

i386指定目標。 我不得不從原始示例命令中刪除addr16和data16,否則這將無法工作。

您只需要告訴objdump您想要在純二進制文件上操作:

$ hexdump -vC binaryFile
00000000  b8 01 00 00 00 bb 01 00  00 00 cd 80              |............|
0000000c
$ objdump -D -b binary -m i386 binaryFile 

binaryFile:     file format binary


Disassembly of section .data:

00000000 <.data>:
   0:   b8 01 00 00 00          mov    $0x1,%eax
   5:   bb 01 00 00 00          mov    $0x1,%ebx
   a:   cd 80                   int    $0x80

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM