I've been working on a GUI utility that aims to allow browsing a disassembly with some added comfort.
It's still far from being finished, but I think it has reached a state where others might find it usable.
Please read the text file enclosed in the adi_yymmdd_win32.7z archive.
Quick start: adi.exe and objdump.exe should go in the same directory. My utility is adi.exe, which will use objdump.exe whenever disassembling is needed.
These Win32 executables should run on systems that support x86 Windows programs. That includes Windows (XP or newer) and Wine (2.0 or newer).
Features:
- Binary files (fw dump, RAM dump) can be added to a project.
- (Parts of the) binaries can be disassembled (ARM, Thumb and Xtensa instruction sets are supported at the moment).
- It allows nearly unlimited number of pages, showing parts of the disassembly.
- Pages have browsing history.
- Branches and other references can be followed by clicking on them.
- Stubs and other symbols can be imported, or can be added manually.
- Comments can be added to disassembly lines.
- Parts of the disassembly can be re-interpreted using a selected instruction set.
- The Xtensa disassembler ('Xtensa autodetect' on the project page) is able to recognize the start of most functions. For Xtensa, there's also a helper (accessible on 'assembly view' pages, in the popup menu) that lets the user quickly fix most badly disassembled parts.
- Unnecessary disasm lines can be erased.
It also has lots of bugs and requires a fair amount of RAM for larger projects.
Objdump is used to do the actual disassembly.
Development is done in Free Pascal plus Lazarus.
At the moment it's "freeware". If anyone is uncomfortable running the binary, PM me for a dev snapshot of the source.
adi_210117_win32.7z includes the Win32 executable and a text file, containing partial description, including usage.
Virustotal: All negative.
objdump_arm_xtensa_win32.7z includes an Objdump Win32 executable that supports ARM/Thumb and Xtensa.
Virustotal:
There is one positive. I believe it's false. Most recent scan shows the file as clean.
I used this script to build the objdump executable, using MinGW environment:
Quick usage: extract the binutils source tarball to a directory. Copy script to a file in the root of the extracted binutils source, make it executable and run it.
I'm aware that it isn't the best looking script, but I'm not changing it (had to experiment on it to finally get proper executables that need no extra DLLs).#!/bin/sh
ROOT=`pwd`
#TRGTS=all
TRGTS=arm-elf,xtensa-elf
for i in libiberty intl bfd opcodes
do
cd $ROOT/$i
make clean
rm -rf $i-conf.log $i-make.log
./configure --enable-targets=$TRGTS --disable-nls > $i-conf.log 2>&1
make -j2 LDFLAGS="-all-static" > $i-make.log 2>&1
done
for i in binutils
do
cd $ROOT/$i
make clean
rm -rf $i-conf.log $i-make.log
./configure --enable-targets=$TRGTS --disable-nls > $i-conf.log 2>&1
make -j2 LDFLAGS="-all-static" > $i-make.log 2>&1
done
adi_170709_win32.7z (665.55 kB - downloaded 21 times.)
adi_170714_win32.7z (661.4 kB - downloaded 1 times.)
adi_170723_win32.7z (667.41 kB - downloaded 2 times.)
adi_170725_win32.7z (668.03 kB - downloaded 4 times.)
adi_170803_win32.7z (685.06 kB - downloaded 4 times.)
adi_170826_win32.7z (692.37 kB - downloaded 25 times.)
adi_180224_win32.7z (754.8 kB - downloaded 4 times.)
adi_180520_win32.7z (754.82 kB - downloaded 18 times.)
adi_181020_win32.7z (755.82 kB - downloaded 2 times.)
adi_190216_win32.zip (1134.48 kB - downloaded 2 times.)
adi_190324_win32.7z (787.33 kB - downloaded 4 times.)
adi_191011_win32.7z (791.63 kB - downloaded 7 times.)
adi_191103_win32.7z (793.76 kB - downloaded 10 times.)
adi_200726_win32.7z (795.03 kB - downloaded 3 times.)