Aira Force 0.7.6 now available
Full changelog:
- Add: Recent Files list
- Add: Export Disassembly option
- Add: Status window with disassembly, reassembly and diff status
- Add: Relocated Binary Window
- Add: Basic binary patching: edit hex, replace instruction with NOP/RTS
- Improve: Saved options
- Improve: Option to hide ira -A posterior address/code comment
- Improve: Rename label referenced by selected line
- Improve: Goto dialogue tab-completion and history
- Improve: CPU Window: edit registers, flags, display formats
- Improve: Hunks Window displays RELOC32 data
- Fix: Crash when parsing long lines of disassembly
- Fix: Adding manual EQU with disassembly context menu
- Fix: Support paths containing spaces
A couple of features require some explaination.
Status Window
It's easy to miss error messages from the disassembler (ira), assembler (vasm) or diff tool in the output. The status window makes it easy to see at a glance the health of the pipeline.
This is what you want to see:
If you see something like this, then there is work do:
For hunk executables it is common for the reassembled executable to be equivalent, but not binary identical to the original source file. The hunk file diff tool is on my todo list. In the meantime, it is common to see this:
And in the output something like this
Reassembled binary to: C:\asm\Sprite.reassembled Comparing source module C:\asm\Sprite with reassembled module C:\asm\Sprite.reassembled Note: Module compare not fully implemented Module file sizes differ, but contents could be equivalent. Module A: 1388 (0x56C) bytes C:\asm\Sprite Module B: 1252 (0x4E4) bytes C:\asm\Sprite.reassembled ERROR: Hunk comparison not implemented ERROR: Comparison failed
This is often because the source file contans debug info or symbols. It can also be due to empty bytes in DATA vs BSS sections.
It's worth making sure that the Status Window is always visible while you are actively disassembling.
Export Disassembly
Main menu > File > Export Disassembly...
This allows the disassembly to be exported without the ira -A address and machine code comments. These are useful while analysing, but often not wanted when the disassembly is loaded into an external editor for modifications.
CPU Window improvements
Previously the CPU Window was read-only. A context menu has been added, so now you can:
- Copy register values to clipboard (long, word, byte as hex)
- Paste values into registers
- Edit status register flags
- Configure the display format for general registers: long/word/byte, unsigned/signed, hex/decimal/binary
- Edit register values
- Copy/paste/edit exception vectors
- Offset/scroll the memory pointed at by address registers
The last feature is handy when debugging code with pre-increment or post-increment. It's nice to be able to peek forwards and backwards to see the values in neighboring elements.
Drag Slider widgets are used to scroll - hold the LMB and move the mouse; CTRL-Click to use as a text input box.
This feature takes up quite a bit of valuable UI space so is disabled by default. Enable it in Options > Options > CpuWindow > Address register deltas
Binary Patching
This feature allows basic patching. It is disabled by default, but can be enabled in Options > Options > Edit > Source file patching
Use the disassembly context menu to Patch > NOP/RTS or edit hex directly in the Soure Window.
Edits in the Source window must be saved with File > Save Source File to be applied.
Files
Get Aira Force
Aira Force
Advanced/Amiga Interactive ReAssembler.
Status | In development |
Category | Tool |
Author | howprice |
Tags | Amiga, assembler, assembly-language, disassembler, Graphical User Interface (GUI), imgui, reverse-engineering, Text based, User Interface (UI), Visualization |
Languages | English |
More posts
- Updated Windows 0.7.5 packages46 days ago
- Aira Force 0.7.5 now available48 days ago
- V0.7.4 released with local label support56 days ago
- Patch 0.7.3 released63 days ago
- Version 0.7 available now64 days ago
- Patch v0.6.3 released79 days ago
Leave a comment
Log in with itch.io to leave a comment.