September 03, 2012, 07:17:45 pm
News:
Pages: [1]
Print
Author Topic: My name is Inigo Montoya. You killed my father. Prepare to die.  (Read 984 times)
heyrick
Global Moderator
Sr. Member
*****
Posts: 325



View Profile WWW
« on: May 04, 2011, 08:49:49 pm »

Here's a screenshot of a little something I'm brewing. It is a mock-up, so the final result may not look quite like this (which, in itself, is based upon the colourisation of !Zap).

The thing is, IDAPro is expensive (quote: "IDA Pro Standard Licenses start at 539 USD or 419 EUR." Shocked), and BDAsm is not only dead (the website is no longer), but it makes a complete and total hash of decoding B/BL targets, which as you can understand renders it somewhat pointless.

The thing that strikes me as strange is that there don't appear to be any decent free ARM disassemblers for Windows. Sure, if the command line is your thing, there are options. But for use under Windows? If it exists, I've not found it yet!
[Linux - it ought to work under wine, but YMMV]


Best wishes,

Rick.
ofla ofla ofla ofla Wink
Logged
greyback
Administrator
Hero Member
*****
Posts: 1639


View Profile
« Reply #1 on: May 05, 2011, 07:16:23 pm »

Inconceivable! What about:
  • objdump -d (if you can compile using the OSD's toolchain on Windows, then you can use it's arm-linux-objdump binary to disassemble)
  • IDA Pro 5.0 which is freeware for Windows.
Remember, people in masks cannot be trusted Smiley
-G

P.S. much respect for building your own disassembler. *much* respect. What could you possibly want to disassemble? Cheesy
Logged
heyrick
Global Moderator
Sr. Member
*****
Posts: 325



View Profile WWW
« Reply #2 on: May 05, 2011, 08:37:56 pm »

Inconceivable!

Smiley

Quote
objdump -d (if you can compile using the OSD's toolchain on Windows, then you can use it's arm-linux-objdump binary to disassemble)

The toolchain works in Windows under a hosted Linux pseudo-emulation. I really ought to get a cheap SD card and reinstall it, this time taking loads of screenshots...


Quote
IDA Pro 5.0 which is freeware for Windows.

...but doesn't do ARM. I have the v6 demo version (does ARM and x86), but it is huge. And it is ridiculously expensive with support for several dozen processors I'll never touch. Overkill, no?


Quote
P.S. much respect for building your own disassembler. *much* respect.

Not built it yet! That's just a mock-up to get the redraw system working before I start on the actual job of disassembling. I have some proto-logic to pull apart the instruction bit-codes, taken from a half-assed attempt at writing an emulator a billion years ago. Just need to paste in some of the newer instructions, port it to VB, and assemble a file that uses every ARM instruction, so I can have something to work with.


To be honest, looking at my planned feature list, the disassembly will be the simple part!
Especially as I do not intend to support Thumb so it'll be word aligned all the way, baby! Cool


Quote
What could you possibly want to disassemble? Cheesy

I have no idea. Can you think of anything that has an ARM inside that isn't a mobile phone? Tongue


Best wishes,

Rick.
Logged
greyback
Administrator
Hero Member
*****
Posts: 1639


View Profile
« Reply #3 on: May 06, 2011, 08:13:50 am »


Quote
IDA Pro 5.0 which is freeware for Windows.
...but doesn't do ARM. I have the v6 demo version (does ARM and x86), but it is huge. And it is ridiculously expensive with support for several dozen processors I'll never touch. Overkill, no?

Oops, my bad. I've the demo version too, not the 5.0 freeware one. I'd not buy it either.
-G
Logged
heyrick
Global Moderator
Sr. Member
*****
Posts: 325



View Profile WWW
« Reply #4 on: May 06, 2011, 01:09:56 pm »

Hi,
At work on break. Just downloaded the ARM v6 datasheet (better than 7500FPE one!) with EDGE. Was just like old fashioned dial-up! Wink
Hope to cut some code tonight...
Logged
heyrick
Global Moderator
Sr. Member
*****
Posts: 325



View Profile WWW
« Reply #5 on: May 06, 2011, 08:54:52 pm »

Hi,

Came home, had a bath, then did a little fiddling around so I can work with real data. The code is awful, but it is a means to an end. The crappy code will, little by little, be replaced with something better.

Anyway, got to get up in five (!) hours Shocked, so I'll leave you with another screenshot...


I'm not happy with the byte display (second column, red/grey). I wanted it to have control codes offset to be 0=@, 1=A, etc, which I have done. But I also wanted high bit ASCII (128-255) to be shown in red. But the font has a number of holes around 150ish, and annoyingly these holes are little boxes (not a problem) that are a different width to the rest of the characters (a big problem). For the moment I have just discarded the top bit, but it is an unsatisfactory solution. Any suggestions?


Best wishes,

Rick.
ofla ofla ofla ofla Wink
Logged
heyrick
Global Moderator
Sr. Member
*****
Posts: 325



View Profile WWW
« Reply #6 on: May 10, 2011, 06:20:39 am »

Smiley Spent some time over the weekend working on an early/basic disassembler. Which I'm now going to delete. It was starting to get a bit messy and extensibility is problematic if you're going to have to hack the code to add an instruction.

I'm thinking a big lookup data table loaded in at runtime would be more flexible. Parse out parts of the bitfield, scan down the list for a match, then follow the instructions in the data for decoding the rest of the instruction. Wink


Best wishes,

Rick.
Logged
Pages: [1]
Print
Jump to: