English Amiga Board Amiga Lore



Go Back   English Amiga Board > Coders > Coders. General

 
 
Thread Tools
Old 10 July 2008, 13:45   #1
bippym
Global Moderator

bippym's Avatar
 
Join Date: Nov 2001
Location: Derby, UK
Age: 38
Posts: 8,352
Send a message via Skype™ to bippym
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)
bippym is offline  
AdSense AdSense  
Advertisement:
Old 10 July 2008, 14:26   #2
StingRay
move.l #$c0ff33,throat

StingRay's Avatar
 
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 4,931
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.
StingRay is online now  
Old 10 July 2008, 14:39   #3
zenox98
Komakino

zenox98's Avatar
 
Join Date: Nov 2006
Location: East Yorkshire
Posts: 165
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.
zenox98 is offline  
Old 10 July 2008, 20:42   #4
heavy
Registered User
 
Join Date: Jun 2007
Location: europe
Posts: 143
I use it for both platform win and amiga exe.
very good. (old version a little bit buggy with information window )
heavy is offline  
Old 11 July 2008, 10:54   #5
hitchhikr
Registered User
 
Join Date: Jun 2008
Location: somewhere
Posts: 329
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.
hitchhikr is offline  
Old 11 July 2008, 22:51   #6
crabfists
Registered User
 
Join Date: Feb 2008
Location: warrington UK
Posts: 60
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)
... I haven't figured out how to make it substitute the $96(a5) with the name set for memory location custom_base+$96 (which I have named as dmacon in IDA).
crabfists is offline  
Old 12 July 2008, 10:22   #7
hitchhikr
Registered User
 
Join Date: Jun 2008
Location: somewhere
Posts: 329
On the other hand Resource provides ways to handle word sized jump tables and base registers relative variables (x(ax)) quite efficiently.
hitchhikr is offline  
Old 20 July 2008, 11:19   #8
crabfists
Registered User
 
Join Date: Feb 2008
Location: warrington UK
Posts: 60
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.
crabfists is offline  
Old 20 July 2008, 11:37   #9
heavy
Registered User
 
Join Date: Jun 2007
Location: europe
Posts: 143
nice. or post it in the zone
heavy is offline  
Old 22 July 2008, 00:19   #10
crabfists
Registered User
 
Join Date: Feb 2008
Location: warrington UK
Posts: 60
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.
Attached Thumbnails
Click image for larger version

Name:	IDA_copper.GIF
Views:	272
Size:	21.9 KB
ID:	17252  
crabfists is offline  
Old 22 July 2008, 09:16   #11
zenox98
Komakino

zenox98's Avatar
 
Join Date: Nov 2006
Location: East Yorkshire
Posts: 165
Nice, crabfists. I'll try it out later
zenox98 is offline  
AdSense AdSense  
Advertisement:
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Disassembler copse Coders. General 77 06 September 2013 05:49
Peasauce disassembler copse Coders. General 0 11 November 2012 04:03
Sandisk EXTREME III 4GB CF card compatible with IDA-CF adapter ? Overdoc support.Hardware 4 27 December 2008 13:44
ReSource disassembler gizmomelb request.Apps 5 21 January 2006 23:50
Built in disassembler XDread request.UAE Wishlist 4 24 April 2004 02:20

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 19:30.


Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
Page generated in 0.15598 seconds with 13 queries