![]() |
![]() |
#1 |
Registered User
Join Date: Apr 2019
Location: UK
Posts: 277
|
Aira Force - an interactive reassembler
I’ve been developing a GUI for the excellent ira “reassembler”. It is available for download for Windows, Mac and Linux at https://howprice.itch.io/aira-force Sorry it doesn't run on Amiga!
Latest version 0.7.5: https://howprice.itch.io/aira-force/...-now-available ![]() The goal was to streamline the iteration time, adding an easy to use intuitive interface. I find it quite useful and will be making it available soon (Edit: Now available at link above). As requested in the Small IRA Tutorial thread, here’s a little preview video demonstrating the live analysis feature I’m working on: [ Show youtube player ]. This was inspired by Hoffman's steams and associated challenges. EDIT: The tool does not contain an Amiga emulator; just enough to help the disassembly figure out where to go and what's being accessed. Last edited by hop; 05 July 2024 at 20:52. |
![]() |
![]() |
#2 |
Registered User
Join Date: Jul 2009
Location: Lala Land
Posts: 608
|
Looking great. I especially like the show documentation option. I do most of mine in Ghidra decompiling to C with the aid of the disassembly, and that'd be a time saver.
|
![]() |
![]() |
#3 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,891
|
I’m eager to test it.
|
![]() |
![]() |
#4 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,441
|
the tool I wanted to write for 20 years
|
![]() |
![]() |
#5 |
Registered User
Join Date: Apr 2019
Location: UK
Posts: 277
|
If it assists your productivity in any way then I will be very happy indeed.
I'm currently testing on my small test suite of go-to binaries to catch any low hanging fruit. Then I guess I can post a pre-release build here, or stick one on itch.io so it can be better managed. I don't have a website. |
![]() |
![]() |
#6 |
Registered User
Join Date: Apr 2019
Location: UK
Posts: 277
|
itch.io seems to be down so I'll post a Windows package here (EDIT: Removed: See itch.io link in original post). I've let the Linux and Mac builds rot a little, so if you really need one let me know (EDIT: Now available)
There is a readme in the zip, with more info. Most actions can be performed in 1-3 ways: 1. Keyboard 2. Main menu 3. Context menus Most keyboard shortcuts can be found by looking at the menu items. There is a list at the bottom of the readme. Hopefully the editing keys are as you expect: Code:
Up Select previous line Down Select next line Page Up Move up one page Page Down Move down one page G Goto (context sensitive) Ctrl+G Goto address/symbol/line Left Navigate backwards Right Navigate forwards C Convert to Code D Convert to Data T Convert to Text R Rename label L Add label ; Add comment above selected line (lines can have multiple comments) F2 Edit comment on selected line B Add banner P Define pointer E Define equate Delete Delete label/comment/banner/pointer (context sensitive) Esc Close dialogue popup Ctrl+F Find Ctrl+Tab Switch window etc Code:
F5 Run F6 Break F11 Step Into (no step over or out yet sorry) F9 toggle breakpoint etc File > Preprocess… to begin analysis of a new binary and generate the .cnf config file (this is like the project file). I suggest you use a non zero offset and entry for hunk files if you want to use the Live Analysis/Debugger so that the "load" address of the relocated binary doesn't overlap ABSEXECBASE and exception vectors. Use File > Process with config… to load a previously disassembled binary and process using the config - Check the output window for any errors or warnings - Identify code, data and text areas - Identify missing labels required to allow the code to be reassembled correctly A good goal is to get the built-in VASM reassembly working, and ideally producing an identical binary (there may be differences in hunk files due to ordering etc, but binaries should be OK) Understand the code: - Rename labels and and comments to aid user code analysis - Run Live Analysis (noddy 68000 emulator traversal) to auto-identify custom and LVO offsets and identify new code areas - Use the final disassembly as required e.g. to fix bugs, add features or optimise There will be lots of bugs! I have only tested this on a small set of binaries. I have a TODO list several metres long, but I've tried to keep on top of bugs. I have a habit of using asserts and fatals to catch bugs fast, but I've tried to remove most of them from user-dependent code. If you have any feedback, I'd love to hear it. Please let me know of anything needs to change or doesn't make any sense. I'll release the source code for this when I have all the basic features in that I want (alpha) or if I stop working on it. Big thanks to @phx and TTE for all of their support. Last edited by hop; 30 May 2024 at 13:04. |
![]() |
![]() |
#7 |
Registered User
Join Date: Jul 2009
Location: Lala Land
Posts: 608
|
Out of curiosity, what support have TTE given?
|
![]() |
![]() |
#8 |
Registered User
Join Date: Apr 2019
Location: UK
Posts: 277
|
TTE? Without Hoffman's streams this product would not exist. He and his followers showed me just how much fun it is reverse engineering Amiga software. The first few hours of Action Replay action were a revelation, and I've learned an awful lot about the Amiga from the followers/team chat. They have offered technical advice and QA throughout. Thanks!
|
![]() |
![]() |
#9 | |
Ex nihilo nihil
Join Date: Oct 2017
Location: CH
Posts: 5,143
|
Quote:
![]() Examples: Edit : Haven't checked the zip yet, but according to its name, it's 64 bit only. Any plan to compile it for x86 ? It will for sure please the people having fully functional PC that do not intend to buy a new one soon ![]() Last edited by malko; 28 May 2024 at 08:53. |
|
![]() |
![]() |
#10 | |
Registered User
Join Date: Apr 2019
Location: UK
Posts: 277
|
Quote:
That should be possible. If so, I'll add it to the itch.io page (see original post). EDIT: Added AiraForce-0.6.0-win32.zip to the downloads. Hope this works. Last edited by hop; 28 May 2024 at 10:18. |
|
![]() |
![]() |
#11 |
AmigaMan
Join Date: Oct 2012
Location: Castro Urdiales/Spain
Posts: 765
|
This is awesome. Tried It yesterday for a few minutes but seems a fantastic tool.
Thanks so much. |
![]() |
![]() |
#12 |
Registered User
Join Date: Apr 2019
Location: UK
Posts: 277
|
I've just uploaded Linux packages to https://howprice.itch.io/aira-force
Tested on Ubuntu LTS. I'm not really a Linux user, so please report any issues if you are. ![]() Last edited by hop; 28 May 2024 at 15:54. |
![]() |
![]() |
#13 |
Registered User
Join Date: Apr 2019
Location: UK
Posts: 277
|
|
![]() |
![]() |
#14 |
Registered User
Join Date: Apr 2019
Location: UK
Posts: 277
|
|
![]() |
![]() |
#15 | |
Registered User
Join Date: Jul 2014
Location: Warsaw/Poland
Posts: 196
|
Quote:
Would it be possible to add other 68k binaries, e.g. Atari PRG/TOS ? |
|
![]() |
![]() |
#16 | |
Registered User
Join Date: Apr 2019
Location: UK
Posts: 277
|
Quote:
This is an interesting idea. This is an Amiga-focussed tool, and it will certainly stay that way until it hits V1.0. This could possibly be something that could be added post-launch, possibly as a fork. I don't have time to fall in love with another platform! As a stretch goal, I am considering supporting my other loves of the Z80-based Spectrum and SG-1000/MSX. That would be a major reworking, and probably require removing ira altogether, or writing the Z80 equivalent. However, a large portion of the existing functionality is 68K-related, so it might not be too much work. I'd have to check to what extent the underlying toolchain of ira and vasm support the Atari formats. Then all the Amiga stuff would have to be worked around. It's certainly possible, but not something I can see myself having time to investigate any time soon. When I release the code feel free to have a look. |
|
![]() |
![]() |
#17 |
Ex nihilo nihil
Join Date: Oct 2017
Location: CH
Posts: 5,143
|
|
![]() |
![]() |
#18 |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 56
Posts: 2,119
|
|
![]() |
![]() |
#19 |
Registered User
Join Date: Feb 2017
Location: Denmark
Posts: 1,299
|
Great job getting this far! I've started it and tried some basic stuff, and that seems to work well, but I'll have to give it a proper spin to really judge
![]() |
![]() |
![]() |
#20 | |
Natteravn
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,574
|
Quote:
Also IRA was already prepared for multiple 68k platforms by Nicolas Bastien, like Atari and Megadrive. A few weekends ago I nearly started to implement Atari support in IRA, which is not too difficult, but then got distracted again. ![]() |
|
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Interactive symbolic bitop calculator | paraj | Coders. Asm / Hardware | 2 | 07 May 2017 22:13 |
What was that interactive interview with the Sensible Software team? | Mark_C | Nostalgia & memories | 1 | 10 June 2004 03:38 |
Amiga Interactive Guide gets a facelift... | Amiga1992 | Amiga websites reviews | 5 | 22 March 2003 18:50 |
Amiga Interactive Guide | Twistin'Ghost | Amiga websites reviews | 0 | 13 July 2002 13:05 |
Nightbreed Interactive Movie | Steve | support.Games | 19 | 04 October 2001 18:43 |
|
|