Arm interactive disassembler

discuss pc<>acorn file transfer issues and the use of other utils
Post Reply
User avatar
dominicbeesley
Posts: 2210
Joined: Tue Apr 30, 2013 12:16 pm
Contact:

Arm interactive disassembler

Post by dominicbeesley »

I've been poking around in various arm binaries and partial disassemblies and was wondering if there are any good, free, interactive disassemblers. In the past I've used https://6502bench.com/ with good results for making various 6502 and 65816 diassemblies.

I remember BITD there were a few for the Arc but I'd really prefer something that ran on Windows or Linux. I did find this https://onlinedisassembler.com/ online one but it seems pretty limited

Any ideas - I'm probably not using the right search terms?

D
User avatar
spanners
Posts: 178
Joined: Fri Mar 23, 2018 2:37 pm
Location: Glasgow
Contact:

Re: Arm interactive disassembler

Post by spanners »

You'll be wanting Ghidra, Binary Ninja or radare2.

D.
User avatar
dominicbeesley
Posts: 2210
Joined: Tue Apr 30, 2013 12:16 pm
Contact:

Re: Arm interactive disassembler

Post by dominicbeesley »

Thanks, I'd forgotten Ghidra - I had somehow thought it was x86 only. I've used it in the past to get DOS working on my machine - it's a bit clunky but hopefully it should serve.

The others look like probable "no"s, paid for binary ninja and too faffy for radare2.

I'm half tempted to have a go at something myself but really don't need another rabbit hole to disappear down!

On a similar vein any recommendations for a nice cross assemblers for ARM - I might go gcc but I really don't like the syntax. I've been trying vasm, is there a cross assembler that takes the same syntax as that used in the ROOL sources?

D
dp11
Posts: 1757
Joined: Sun Aug 12, 2012 9:47 pm
Contact:

Re: Arm interactive disassembler

Post by dp11 »

one more just to add to the list : https://salmanarif.bitbucket.io/visual/
User avatar
dominicbeesley
Posts: 2210
Joined: Tue Apr 30, 2013 12:16 pm
Contact:

Re: Arm interactive disassembler

Post by dominicbeesley »

Thanks Dominic,

That looks prettier than Ghidra which I'm currently fighting with but making progress. I'll give it a try later!

D
User avatar
spanners
Posts: 178
Joined: Fri Mar 23, 2018 2:37 pm
Location: Glasgow
Contact:

Re: Arm interactive disassembler

Post by spanners »

Whoops, I forgot that Binary Ninja was paid for. Hopper <https://www.hopperapp.com/> is paid for but isn't too bad price wise - £89.

I see there's now a fork of radare2 called Rizin and it's got a decent looking GUI called Cutter <https://cutter.re/>. I'll have to try that out sometime.

Honourable mention for ARMalyser <https://armclub.org.uk/free/> which isn't interactive but was built to pull apart RISC OS formats.

D.
User avatar
dominicbeesley
Posts: 2210
Joined: Tue Apr 30, 2013 12:16 pm
Contact:

Re: Arm interactive disassembler

Post by dominicbeesley »

Thanks again,

I need to reinstall Virtual RPC and have a look at Armalyser - I'm sure I remember something from the 90's that I ran on the A3000 that I used to reverse engineer some demos and some code that I'd lost the sources, was it something to do with !Zap?

I'll have a work through all those this evening if I get a chance and can cool down enough to concentrate!

D
User avatar
spanners
Posts: 178
Joined: Fri Mar 23, 2018 2:37 pm
Location: Glasgow
Contact:

Re: Arm interactive disassembler

Post by spanners »

There was Dissi by BASS, and Diss by Doggysoft. Zap's got the disassembler mode but it's not great for recreating sources.

D.
User avatar
IanJeffray
Posts: 5962
Joined: Sat Jun 06, 2020 3:50 pm
Contact:

Re: Arm interactive disassembler

Post by IanJeffray »

And there's my !ArmTool. Interactive desktop disassembler and assembler (you can enter assembly instructions 'live' whilst editing a binary). Knows RISC OS modules and AOF and can generate symbolic labels for branches and things like that.
User avatar
dominicbeesley
Posts: 2210
Joined: Tue Apr 30, 2013 12:16 pm
Contact:

Re: Arm interactive disassembler

Post by dominicbeesley »

Ah it is flooding back now. I think I used both dissi and diss. Will they run on a RiscPC - perfect excuse to get mine working again.

Ian I will look at !ArmTool too.

Thanks both
gtoal
Posts: 89
Joined: Sat Nov 04, 2017 2:07 am
Contact:

Re: Arm interactive disassembler

Post by gtoal »

I just noticed this thread. Back in the Acorn days I created an ARM disassembler out of an instruction decoder that we got from 3L (the compiler writers).

https://gtoal.com/acorn/arm/adec.imp

with a binary in https://gtoal.com/acorn/arm/ADEC.tar (since you're unlikely to recompile an Imp program)

It does a bit of a tree walk and knows about modules. Unfortunately the hard-coded module names were just what happened to be in
my own machine at the time, so a good chance that they won't work in modern systems.

I thought you could just plug in the addresses on the command line but apparently not. Maybe that was a later version. So lucky I guess that
the tar file contains enough to rebuild the binary :-)

I have a BBC 6502 disassembler somewhere too that knows about OsBytes etc, but it hasn't surfaced yet.

G
User avatar
dominicbeesley
Posts: 2210
Joined: Tue Apr 30, 2013 12:16 pm
Contact:

Re: Arm interactive disassembler

Post by dominicbeesley »

Thanks Graham. I'll add these to my stash of resources. I've now had a bash at a basic disassembler for my online debugger but it didn't do anything clever with code walking as yet.

I've never come across Imp before... another thing to read up on!
User avatar
spanners
Posts: 178
Joined: Fri Mar 23, 2018 2:37 pm
Location: Glasgow
Contact:

Re: Arm interactive disassembler

Post by spanners »

Another one for the list: DisAssem by Henrik Bjerregaard Pedersen <https://henrikbp.riscos.fr/>

D.
gtoal
Posts: 89
Joined: Sat Nov 04, 2017 2:07 am
Contact:

Re: Arm interactive disassembler

Post by gtoal »

Dominic - not usable code, but as an FYI... I've made a start on a generic tree-walking disassembler: https://gtoal.com/SBTPROJECT/generic/ - if you find yourself writing a new one from scratch, there may be some hints in there that will save some research. Best disassembly technique is to get some help from an emulator in identifying opcodes vs data. Especially for a specific system where you can look at the parameters of known procedure calls and identify them (eg graphics calls and associated data structures, for example sprites)
Post Reply

Return to “software & utilities for the pc, mac or unix”