Any interest for an ARM disassambler? - General Discussion and Assistance - CHDK Forum  

Any interest for an ARM disassambler?

  • 28 Replies
  • 11745 Views
*

Offline RaduP

  • *****
  • 908
Any interest for an ARM disassambler?
« on: 28 / March / 2009, 20:03:56 »
Advertisements
I have a new pet project, writting an ARM disassambler. I worked at it for a few days now, and I making some progress.
Of course, it is nowhere near finished, it will take a month or more, depending on my free time.
But the question is, is anyone interested in something like that? And I know, there are a few free ones out there, but mine can load and dissasembly raw files, so no need to change the binary.

*

Offline PhyrePhoX

  • *****
  • 2254
  • make RAW not WAR
    • PhyreWorX
Re: Any interest for an ARM disassambler?
« Reply #1 on: 31 / March / 2009, 16:26:01 »
hm, maybe you should ask somewhere else, as most devs here seem to use ida. not the broadest of audience if you ask me. but of course i welcome any effort thats made in order to make the world a better place. and a free feature ridden arm disassembler would do such a thing - so yes, go on, do it :D

*

Offline RaduP

  • *****
  • 908
Re: Any interest for an ARM disassambler?
« Reply #2 on: 31 / March / 2009, 16:59:43 »
Well, I made quite some bit of progress. Now my disassembler will disassembly the first 10K instructions with just a few unimplemented isntructions and addressing modes.
When I am done, I plan to add some nicer GUI to it, to have syntax highlighting, and then maybe even some basic ARM emulation, to be able to go through the instructions and see what's going on. This should be quite useful, because AFAIK, IDA can't do that.

*

Offline fudgey

  • *****
  • 1705
  • a570is
Re: Any interest for an ARM disassambler?
« Reply #3 on: 01 / April / 2009, 14:59:25 »
Well... I'm interested of course... (I don't have IDA). I have the GPL tools set up so that I can batch disassemble all fws supported by trunk, add strings as comments and add stubs from CHDK and from lists exported from IDA... but I guess a gui could provide better ways to navigate the code than a code editor with asm hilighting...


*

Offline RaduP

  • *****
  • 908
Re: Any interest for an ARM disassambler?
« Reply #4 on: 01 / April / 2009, 20:04:21 »
Ok, well, now I implemented almost all the instructions and addressing modes all the way up to ffc61a7c (starting at ffc00000). It's hard to know if I missed anything, because right now my disassembler can't tell the code apart from the data.
I am going to start working at the GUI soon, I tried to find a GUI API that is multiplatform, easy to use, and allows for multi colored text, but I couldn't find anything yet, so I think I will make my own using SDL (yes, the mashochist way).
As soon as I have a GUI, I'll post a binary and some screenshots for you to try.

*

Offline mx3

  • ****
  • 372
Re: Any interest for an ARM disassambler?
« Reply #5 on: 02 / April / 2009, 01:04:50 »
But the question is, is anyone interested in something like that?

There was an idea to implement universal binary loader.
Idea was to plant chunk of code into RAM , protect it from overwriting using MPU and call original firmware boot code (FFFF0000) once again.
Then based on some event this resident code would search for thread/process function signatures and create own process + load some additional binary code from card.
Project was abandoned due to free time shortage and absence of suitable disassembler.

Why such dificulties?
well. idea is to somehow wake our code inside already running OS.
presently every build has own boot loader - it means new porting developers need to rewrite it manually.

I believe prototype code for this project is in cail's svn branch
skype: max_dtc. ICQ: 125985663, email: win.drivers(at)gmail, eVB decompiler

*

Offline RaduP

  • *****
  • 908
Re: Any interest for an ARM disassambler?
« Reply #6 on: 02 / April / 2009, 03:37:31 »
Quote
Project was abandoned due to free time shortage and absence of suitable disassembler.
Can you please explain what exactly the problem was? What does a suitable disassembler need to do?

*

Offline mx3

  • ****
  • 372
Re: Any interest for an ARM disassambler?
« Reply #7 on: 02 / April / 2009, 07:33:40 »
Quote
Project was abandoned due to free time shortage and absence of suitable disassembler.
Can you please explain what exactly the problem was? What does a suitable disassembler need to do?
for planted code to protect itself it must deny writing into vectors area (0x00000000) and into itself.
so it was decided to use MPU (memory protection unit).
when writing performed handler is called.
handler must analize instruction caused exception and if area of writing should not be protected (4kb -is minimum for MPU) it must emulate this instruction.
skype: max_dtc. ICQ: 125985663, email: win.drivers(at)gmail, eVB decompiler


*

Offline mx3

  • ****
  • 372
skype: max_dtc. ICQ: 125985663, email: win.drivers(at)gmail, eVB decompiler

*

Offline RaduP

  • *****
  • 908
Re: Any interest for an ARM disassambler?
« Reply #9 on: 02 / April / 2009, 14:21:14 »
Ok, maybe I don't understand the complexity of the problem, but.. rather than use the MPU and fancy stuff, why not just put a hook in the malloc() function used by the OS and make sure it does not allocate memory in that range? And this hook can be also used to check if the OS is running..

 

Related Topics