mips 纯二进制反汇编(bin文件)
Usage: mipsel-linux-objdump <option(s)> <file(s)>
Display information from object <file(s)>.
At least one of the following switches must be given:
-a, --archive-headers Display archive header information
-f, --file-headers Display the contents of the overall file header
-p, --private-headers Display object format specific file header contents
-h, --[section-]headers Display the contents of the section headers
-x, --all-headers Display the contents of all headers
-d, --disassemble Display assembler contents of executable sections
-D, --disassemble-all Display assembler contents of all sections
-S, --source Intermix source code with disassembly
-s, --full-contents Display the full contents of all sections requested
-g, --debugging Display debug information in object file
-e, --debugging-tags Display debug information using ctags style
-G, --stabs Display (in raw form) any STABS info in the file
-W, --dwarf Display DWARF info in the file
-t, --syms Display the contents of the symbol table(s)
-T, --dynamic-syms Display the contents of the dynamic symbol table
-r, --reloc Display the relocation entries in the file
-R, --dynamic-reloc Display the dynamic relocation entries in the file
@<file> Read options from <file>
-v, --version Display this program's version number
-i, --info List object formats and architectures supported
-H, --help Display this information
The following switches are optional:
-b, --target=BFDNAME Specify the target object format as BFDNAME
-m, --architecture=MACHINE Specify the target architecture as MACHINE
-j, --section=NAME Only display information for section NAME
-M, --disassembler-options=OPT Pass text OPT on to the disassembler
-EB --endian=big Assume big endian format when disassembling
-EL --endian=little Assume little endian format when disassembling
--file-start-context Include context from start of file (with -S)
-I, --include=DIR Add DIR to search list for source files
-l, --line-numbers Include line numbers and filenames in output
-C, --demangle[=STYLE] Decode mangled/processed symbol names
The STYLE, if specified, can be `auto', `gnu',
`lucid', `arm', `hp', `edg', `gnu-v3', `java'
or `gnat'
-w, --wide Format output for more than 80 columns
-z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling
--start-address=ADDR Only process data whose address is >= ADDR
--stop-address=ADDR Only process data whose address is <= ADDR
--prefix-addresses Print complete address alongside disassembly
--[no-]show-raw-insn Display hex alongside symbolic disassembly
--adjust-vma=OFFSET Add OFFSET to all displayed section addresses
--special-syms Include special symbols in symbol dumps
mipsel-linux-objdump: supported targets: elf32-tradlittlemips elf32-tradbigmips ecoff-littlemips ecoff-bigmips elf32-ntradlittlemips elf64-tradlittlemips elf32-ntradbigmips elf64-tradbigmips elf64-little elf64-big elf32-little elf32-big srec symbolsrec tekhex binary ihex
mipsel-linux-objdump: supported architectures: mips mips:3000 mips:3900 mips:4000 mips:4010 mips:4100 mips:4111 mips:4120 mips:4300 mips:4400 mips:4600 mips:4650 mips:5000 mips:5400 mips:5500 mips:6000 mips:7000 mips:8000 mips:9000 mips:10000 mips:12000 mips:16 mips:mips5 mips:isa32 mips:isa32r2 mips:isa64 mips:isa64r2 mips:sb1
The following MIPS specific disassembler options are supported for use
with the -M switch (multiple options should be separated by commas):
gpr-names=ABI Print GPR names according to specified ABI.
Default: based on binary being disassembled.
fpr-names=ABI Print FPR names according to specified ABI.
Default: numeric.
cp0-names=ARCH Print CP0 register names according to specified architecture.
Default: based on binary being disassembled.
hwr-names=ARCH Print HWR names according to specified architecture.
Default: based on binary being disassembled.
reg-names=ABI Print GPR and FPR names according to specified ABI.
reg-names=ARCH Print CP0 register and HWR names according to specified architecture.
For the options above, the following values are supported for "ABI":
numeric 32 n32 64
For the options above, The following values are supported for "ARCH":
numeric r3000 r3900 r4000 r4010 vr4100 vr4111 vr4120 r4300 r4400 r4600 r4650 r5000 vr5400 vr5500 r6000 rm7000 rm9000 r8000 r10000 r12000 mips5 mips32 mips32r2 mips64 mips64r2 sb1
mipsel-linux-objdump -D test.exe
得到:
test.exe: file format elf32-tradlittlemips
Disassembly of section .init:
1fc00000 <main>:
1fc00000: 3c011fc0 lui at,0x1fc0
1fc00004: 24210020 addiu at,at,32
1fc00008: 8c220000 lw v0,0(at)
1fc0000c: 8c230004 lw v1,4(at)
1fc00010: 00000000 nop
1fc00014: 00432020 add a0,v0,v1
1fc00018: ac240008 sw a0,8(at)
1fc0001c: 00000000 nop
1fc00020 <value>:
1fc00020: 0000000a 0xa
1fc00024: 00000014 0x14
...
1fc00030: 1000001e b 1fc000ac <_gp+0x5c>
1fc00034: 00000000 nop
...
hexdump -v -e '"%06_ax\t" 1/4 "%08X" "\n" ' test.bin
得:
000000 3C011FC0
000004 24210020
000008 8C220000
00000c 8C230004
000010 00000000
000014 00432020
000018 AC240008
00001c 00000000
000020 0000000A
000024 00000014
000028 00000000
00002c 00000000
000030 1000001E
000034 00000000
000038 00000000
00003c 00000000
000040 00000000
000044 00000000
mipsel-linux-objdump -D -m mips -b binary -EL -M no-aliases test.bin
test.bin: file format binary
Disassembly of section .data:
0000000000000000 <.data>:
0: 3c011fc0 lui at,0x1fc0
4: 24210020 addiu at,at,32
8: 8c220000 lw v0,0(at)
c: 8c230004 lw v1,4(at)
10: 00000000 sll zero,zero,0x0
14: 00432020 add a0,v0,v1
18: ac240008 sw a0,8(at)
1c: 00000000 sll zero,zero,0x0
20: 0000000a 0xa
24: 00000014 dsllv zero,zero,zero
...
30: 1000001e beqz zero,0xac
34: 00000000 sll zero,zero,0x0
...
mipsel-linux-objdump -D -m mips -b binary -EL -M no-aliases -z test.bin
test.bin: file format binary
Disassembly of section .data:
0000000000000000 <.data>:
0: 3c011fc0 lui at,0x1fc0
4: 24210020 addiu at,at,32
8: 8c220000 lw v0,0(at)
c: 8c230004 lw v1,4(at)
10: 00000000 sll zero,zero,0x0
14: 00432020 add a0,v0,v1
18: ac240008 sw a0,8(at)
1c: 00000000 sll zero,zero,0x0
20: 0000000a 0xa
24: 00000014 dsllv zero,zero,zero
28: 00000000 sll zero,zero,0x0
2c: 00000000 sll zero,zero,0x0
30: 1000001e beqz zero,0xac
34: 00000000 sll zero,zero,0x0
38: 00000000 sll zero,zero,0x0
3c: 00000000 sll zero,zero,0x0
40: 00000000 sll zero,zero,0x0
44: 00000000 sll zero,zero,0x0
mipsel-linux-objdump -D -m mips -b binary -EL -z test.bin
test.bin: file format binary
Disassembly of section .data:
0000000000000000 <.data>:
0: 3c011fc0 lui at,0x1fc0
4: 24210020 addiu at,at,32
8: 8c220000 lw v0,0(at)
c: 8c230004 lw v1,4(at)
10: 00000000 nop
14: 00432020 add a0,v0,v1
18: ac240008 sw a0,8(at)
1c: 00000000 nop
20: 0000000a 0xa
24: 00000014 dsllv zero,zero,zero
28: 00000000 nop
2c: 00000000 nop
30: 1000001e b 0xac
34: 00000000 nop
38: 00000000 nop
3c: 00000000 nop
40: 00000000 nop
44: 00000000 nop
mipsel-linux-objdump -D -m mips -b binary -EL test.bin
test.bin: file format binary
Disassembly of section .data:
0000000000000000 <.data>:
0: 3c011fc0 lui at,0x1fc0
4: 24210020 addiu at,at,32
8: 8c220000 lw v0,0(at)
c: 8c230004 lw v1,4(at)
10: 00000000 nop
14: 00432020 add a0,v0,v1
18: ac240008 sw a0,8(at)
1c: 00000000 nop
20: 0000000a 0xa
24: 00000014 dsllv zero,zero,zero
...
30: 1000001e b 0xac
34: 00000000 nop
...