![]() |
|
|
#1 |
|
Global Moderator
Join Date: Nov 2001
Location: Derby, UK
Age: 37
Posts: 8,141
|
IDA Disassembler
Has anyone got experience of this?
What can it do, and how is it comparable to resource (Resource can insert lib offsets, hardware offsets etc)
__________________
Little Puddings Cakes - My fiancées hobby |
|
|
|
|
|
#2 |
|
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 4,547
|
IDA is quite powerful, you can f.e. code your own plugins for it if you need a disassembler for an unknown/exotic CPU. However, for Amiga stuff I still prefer ReSource as it's a native Amiga disassembler and thus features many Amiga specific things not found in IDA.
|
|
|
|
|
|
#3 |
|
em c a7
Join Date: Nov 2006
Location: UK
Posts: 135
|
I've used IDA quite extensively in combination with w32dasm to reverse certain protections - for educational purposes you understand - all of which were Windoze based. I did try an amiga file, but found Resource more suitable because of it's built-in library offset functions.
Regardless of which one you choose, they both require a lot of time, effort and considerable patience. |
|
|
|
|
|
#4 |
|
Registered User
Join Date: Jun 2007
Location: europe
Posts: 119
|
I use it for both platform win and amiga exe.
very good. (old version a little bit buggy with information window ) |
|
|
|
|
|
#5 |
|
Registered User
Join Date: Jun 2008
Location: somewhere
Posts: 326
|
As i already said here for executable files, resource have an edge, for absolute addresses files IDA may be more suited.
Also IDA reports how some data are referenced (by data or by code) so it helps to determine what's what during disassembling and the navigation is generally easier than with resource. Edit: and Resource have troubles disassembling anything than plain 68000 instructions. Last edited by hitchhikr; 11 July 2008 at 16:39. |
|
|
|
|
|
#6 |
|
Registered User
Join Date: Feb 2008
Location: warrington UK
Posts: 57
|
Well I may not have a very balanced opinion because I have used IDA pro heavily and ReSource not so much but what I can tell is that IDA is very easy to use compared to ReSource and has some nice features such as a graph view (can visualise routines and the flow of execution with a graphical "node view"). Having multiple windows onto the disassembly is nice too. Windows can show hex data, which other routines call current routine, strings etc.
As has already been mentioned, if you are working with some code which uses a lot of custom chips or library routines then I would recommend using ReSource as it much better at giving meaningful disassembly as it knows about library offsets and custom chip flags etc. One thing which I like is the way you can create memory segments in IDA. For the disassembly of Ruff'n'Tumble I create one big memory segment which starts at address 0 (start of chipram) and ends at address $1000000 (end of rom). Then I load in a memory dump from WinUae of the chipram to location 0 and the slowram to location $c00000 and then disassemble. This gives me a nice big picture of what is going on and any memory locations referenced outside of the chipram and slowram will be marked and given an auto generated name. These can be renamed to something meaningful. Eg $df000 == custom_base etc. One thing I find frustrating about IDA is if you have something like this... : Code:
lea (custom_base).l, a5 move $7C7F, $96(a5) |
|
|
|
|
|
#7 |
|
Registered User
Join Date: Jun 2008
Location: somewhere
Posts: 326
|
On the other hand Resource provides ways to handle word sized jump tables and base registers relative variables (x(ax)) quite efficiently.
|
|
|
|
|
|
#8 |
|
Registered User
Join Date: Feb 2008
Location: warrington UK
Posts: 57
|
I've been mucking about figuring out how to write IDA plugins over the past few days and I've worked it out now - it's quite straight forward really. Somehow I thought there would be more of a learning curve but it's really not too bad. As something easy to start with I've written a "Copper list annotater" which, if you tell it where a copper list starts, will "disassemble" the copper list and add comments telling you what each copper instruction does (exactly the same as if you use the "o" command in the WinUAE debugger). I actually based it on the code from WinUAE to save re-inventing the wheel.
![]() I'll post a link to it including source code when I get a chance as I think somebody might find it useful. I was thinking it would hopefully not be a huge job to write a plugin which filled in custom chip names or names of library calls. I may do the custom chip one as a next step perhaps depending on my motivation and interest from others. The library routine name one wouldn't be that useful at the moment to me so I may not look at that. Be quite easy for someone else to do though. Would be great if we could get to the stage where we've got a nice suite of Amiga plugins for IDA Pro. ![]() |
|
|
|
|
|
#9 |
|
Registered User
Join Date: Jun 2007
Location: europe
Posts: 119
|
nice. or post it in the zone
|
|
|
|
|
|
#10 |
|
Registered User
Join Date: Feb 2008
Location: warrington UK
Posts: 57
|
Here is the IDA plugin and source code for disassembling copper lists. Attached is a screen shot of what it does.
Instructions: 1 - Copy this plw file to the "plugin" directory of your IDA install directory - (C:\Program Files\IDA\plugins) by default. 2 - Start IDA. 3 - Move cursor to start of where you think the copper list is located. 4 - Run plugin by selecting "Edit->Plugins->Annotate copper list". Any comments, suggestions or bug reports welcome! Useful links... pdf book on IDA Plugin writing - useful for getting started with plugins. Wizard for writing plugins in Visual Studio. |
|
|
|
|
|
#11 |
|
em c a7
Join Date: Nov 2006
Location: UK
Posts: 135
|
Nice, crabfists. I'll try it out later
![]() |
|
|
|
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| resource disassembler | dalton | request.Apps | 5 | 05 July 2006 21:26 |
| ReSource disassembler | gizmomelb | request.Apps | 5 | 21 January 2006 23:50 |
| Amiga Disassembler for Windows? | cpeel2300 | Coders. General | 5 | 05 April 2005 12:49 |
| Built in disassembler | XDread | request.UAE Wishlist | 4 | 24 April 2004 02:20 |
| A good 68K disassembler | TikTok | request.Apps | 11 | 23 January 2002 03:49 |