zoukankan      html  css  js  c++  java
  • 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
    ...

  • 相关阅读:
    博客推荐
    oracle11g dataguard 安装手册(转)
    Linux文件系统介绍(转)
    降低磁盘IO使Oracle性能优化(转)
    关于AWR报告命中率指标的解释(转)
    oracle 锁的介绍 (转)
    oracle undo redo 解析
    oracle sqlplus 连接不正常
    Oracle技术嘉年华
    断线的回忆
  • 原文地址:https://www.cnblogs.com/openix/p/2431959.html
Copyright © 2011-2022 走看看