On the videos you’ve maybe seen that my tool shows the bursts in some plot window. I used GDI for drawing the lines… damn this is soooo slooow…
Today i decided to switch to DirectX drawing for speedup. Ater some hours of playing around, I found out how to draw a plot easily. (using DrawUserPrimitives with LineStrip vertices)
The graph is reeeeaally fast now (displaying bursts in realtime) with just about 5% of CPU load. kewl :)
But the DirectX assemblies Microsoft provides seem to work only with x86.. oouch. So I looked for some solution and found SlimDX which is a managed DirectX library. Using this library I can now run my tools in x64 mode again.
How much faster my tool is in x64 mode?
Hm I think about 0.001% up to 0.002%… But hey, running 64 bit code is much cooler :)
I uploaded two dumps generated with my GSM Analyzer:
- Dump 1 contains ~15 min dump without “SYSTEM INFORMATION” or “PAGING REQUEST” messages except those with an IMSI
- Dump 2 contains just a few seconds with everything and is really ugly to read for this reason
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:
.imp some_call 0xDEAD0100
MOVCSS R0, 0xDE000000
ADDCS R0, R0, 0x00AD0000
TST R0, R0 LSR 2
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