digitalmars.D - Disassemble binary.
- vital.fadeev (42/42) May 08 2018 Just share.
- vital.fadeev (24/24) May 08 2018 example:
- vital.fadeev (1/1) May 08 2018 Source code: https://github.com/vitalfadeev/dasm
Just share. Script for disassemble binary. And script for bash completion. Complete symbol names. Files: ./dasm /etc/bash_completion.d/dasm file <./dasm> sstrg="^[[:xdigit:]]{2,}+.*<$2>:$" objdump -d $1 | awk -F"\n" -v RS="\n\n" '$1 ~ /'$2'/' objdump -d $1 | awk -F"\n" -v RS="\n\n" '{ print $1 }' else echo "You have to add argument(s)" echo "Usage: "$0 " arg1 arg2" echo "Description: print disassembled label to std-out" echo " arg1: name of object file" echo " arg2: name of function to be disassembled" echo " "$0 " arg1 ... print labels and their rel. addresses" fi file </etc/bash_completion.d/dasm> _dasm() { local cur=${COMP_WORDS[COMP_CWORD]} if [[ $COMP_CWORD -eq 1 ]] ; then COMPREPLY=( $( command ls *.o -F 2>/dev/null | grep "^$cur" ) ) elif [[ $COMP_CWORD -eq 2 ]] ; then OBJFILE=${COMP_WORDS[COMP_CWORD-1]} COMPREPLY=( $( command nm --demangle=dlang $OBJFILE | grep " W " | cut -d " " -f 3 | tr "()" " " | grep "$cur" ) ) else COMPREPLY=($(compgen -W "" -- "$cur")); fi } complete -F _dasm dasm
May 08 2018
example: ./dasm opcode.o opcode.op_eq_s Disassembly of section .text._D6opcode7op_eq_sFZi: 0000000000000000 <_D6opcode7op_eq_sFZi>: 0: 55 push %rbp 1: 48 8b ec mov %rsp,%rbp 4: 48 39 d1 cmp %rdx,%rcx 7: 75 0a jne 13 <_D6opcode7op_eq_sFZi+0x13> 9: 48 85 c9 test %rcx,%rcx c: 74 0c je 1a <_D6opcode7op_eq_sFZi+0x1a> e: fc cld f: f3 a6 repz cmpsb %es:(%rdi),%ds:(%rsi) 11: 74 07 je 1a <_D6opcode7op_eq_sFZi+0x1a> 13: b8 00 00 00 00 mov $0x0,%eax 18: eb 05 jmp 1f <_D6opcode7op_eq_sFZi+0x1f> 1a: b8 01 00 00 00 mov $0x1,%eax 1f: 90 nop 20: 5d pop %rbp 21: c3 retq ...
May 08 2018
Source code: https://github.com/vitalfadeev/dasm
May 08 2018