[ARMada] Big fat update!

yay…
i had some free minutes and wanted to catch up some changes i always wanted to make.
and since a friend was hacking around with 32bit ARM opcodes using stupid
“.dd E1234567”-opcodes, i knew its time to fix this. :)

it took some hmm 10 hours to implement nearly(!) the whole ARM32 instruction set.
now you can code like this:

.sub useless
.org 0xDEAD1000
.inj 0x00001000
.imp some_call 0xDEAD0100
.code 32

MOVCSS R0, 0xDE000000
@loop:
ADDCS R0, R0, 0x00AD0000
TST R0, R0 LSR 2
BEQ @loop
BL @some_call

.end

this example would inject the generated ARM32-code at offset 0x1000 into the loaded file,
doing some nonsense-operations and after that it will call the function ‘some_call’ at address 0xDEAD0100.
since the code is told to be at 0xDEAD1000 (the ‘.org 0xDEAD1000’), the BL will automatically
get calculated to jump about 0x0E00 bytes backwards, where the function ‘some_call’ is said to be.

now its not just useful for hacking firmwares, but also very good for crack..erh customizing e.g. symbian apps.

just one note…
ARMada sometimes crashes when typing too long. i dont know why – that happens during the GUI update,
but i really cannot figure out why. but simply use a notepad to code in a clean style, then copy paste it into ARMada ;)
i will try to fix in an upcoming release in which i will also include the last two missing opcodes (coprocessor data and register transfers)

to download, click Projects->ARMada

Leave a Reply