文章目录
- 使用objdump
- 直接阅读ARM64手册
- 使用反汇编网站
有下面一个机器码:0x929ffee9,如何翻译成汇编呢?
下面介绍几种做法:
使用objdump
将这个机器码写到文件中,然后使用objdump去反汇编
- 创建一个二进制文件
dd if=/dev/zero of=./bin bs=1 count=4
- 编辑
使用vim -b bin
打开文件,然后使用:%!xxd
切换到二进制编辑模式,然后修改成:
00000000: e9fe 9f92 ....
接着执行:%!xxd -r
切回去,保存。
- 反汇编
$ objdump -D bin -b binary -m aarch64
bin: file format binary
Disassembly of section .data:
0000000000000000 <.data>:
0: 929ffee9 mov x9, #0xffffffffffff0008 // #-65528
直接阅读ARM64手册
先用windows自带的计算机得到每个bit的值:
然后对照ARM64的技术手册,找到跟机器码匹配的汇编指令:
根据描述:
imm16:0xfff7
反汇编后就是:
MOVN X9, #0xFFF7
或者:
MOV X9, #0xffffffffffff0008
使用反汇编网站
有一些网站提供了机器码的反汇编工具,下面列举几个:
-
https://asm.x32.dev/both.html
-
https://yozan233.github.io/Online-Assembler-Disassembler/
-
https://disasm.pro/
完。