layout | title | tagline |
---|---|---|
page |
Indis |
Re-creating the world one bit at a time |
{% include JB/setup %}
Indis is an intelligent disassembly framework. The primary goal for indis is to provide facilities for analysis of binary files. The plan is to provide a highly extensible object model for binary contents with support of reversing back up to C-like code.
Indis consists of a core gem, that unifies all the different target formats and architectures (which is a pretty hard task for now, when I'm focused on Mach-O ARM targets only); format processing gems (like Mach-O), that provide support of loading the specific binary format and collecting generic info about it (stuff like virtual map of sections, symbol references, etc.); and cpu processing gems (ARM for now).
You can find the gems source at GitHub.
See the archive for updates on the project.
Why, here you go ;)
% bin/indis-dis app-arm-release.o _main
000021b4 e92d40f0 PUSH {r4, r5, r6, r7, lr}
000021b8 e28d700c ADD r7, sp, #12
000021bc e1a05001 MOV r5, r1
000021c0 e1a06000 MOV r6, r0
000021c4 eb000388 BL 0x2fec ; branch_to_sym: _objc_autoreleasePoolPush
000021c8 e3011324 MOVW r1, #4900
000021cc e3401000 MOVT r1, #0
000021d0 e1a04000 MOV r4, r0
000021d4 e79f1001 LDR r1, [pc, r1]
000021d8 e3010360 MOVW r0, #4960
000021dc e3400000 MOVT r0, #0
000021e0 e79f0000 LDR r0, [pc, r0]
000021e4 eb000381 BL 0x2ff0 ; branch_to_sym: _objc_msgSend
000021e8 eb00037c BL 0x2fe0 ; branch_to_sym: _NSStringFromClass
000021ec e1a01005 MOV r1, r5
000021f0 e3a02000 MOV r2, #0
000021f4 e1a03000 MOV r3, r0
000021f8 e1a00006 MOV r0, r6
000021fc eb000375 BL 0x2fd8 ; branch_to_sym: _UIApplicationMain
00002200 e1a05000 MOV r5, r0
00002204 e1a00004 MOV r0, r4
00002208 eb000376 BL 0x2fe8 ; branch_to_sym: _objc_autoreleasePoolPop
0000220c e1a00005 MOV r0, r5
00002210 e8bd80f0 POP {r4, r5, r6, r7, pc}
This project is distributed under the terms of GPL-3 license.