【发布时间】:2015-05-05 04:32:32
【问题描述】:
我想反编译一个.aobjective-c iOS 库。我搜索谷歌和网站并找到一些帖子。最有用的是下面的帖子:
https://stackoverflow.com/a/2336679/1939409
根据帖子,我在我的 mac os 终端中使用以下命令:
otool -tV mylibrary.a
它正在工作。实际上它会在我的终端中打印.o 文件的代码。部分印刷文字为:
Archive : mylibrary.a (architecture armv7)
mylibrary.a(LIConnection.o) (architecture armv7):
(__TEXT,__text) section
-[LIConnection initWithURL:]:
00000000 b580 push {r7, lr}
00000002 466f mov r7, sp
00000004 b094 sub sp, #0x50
00000006 ab11 add r3, sp, #0x44
00000008 f2400900 movw r9, "-[LIConnection initWithURL:]"
0000000c f2c00900 movt r9, "-[LIConnection initWithURL:]"
00000010 9013 str r0, [sp, #0x4c]
00000012 9112 str r1, [sp, #0x48]
00000014 f8cd9044 str.w r9, [sp, #0x44]
00000018 4618 mov r0, r3
0000001a 4611 mov r1, r2
0000001c f7fffff0 bl _objc_storeStrong
00000020 a813 add r0, sp, #0x4c
00000022 a90f add r1, sp, #0x3c
00000024 f6447238 movw r2, :lower16:((20328-44)-4)
00000028 f2c00200 movt r2, :upper16:((20328-44)-4)
0000002c 447a add r2, pc
0000002e 6812 ldr r2, [r2]
00000030 f6437368 movw r3, :lower16:((16292-56)-4)
00000034 f2c00300 movt r3, :upper16:((16292-56)-4)
00000038 447b add r3, pc
0000003a f6432982 movw r9, :lower16:((15048-66)-4)
0000003e f2c00900 movt r9, :upper16:((15048-66)-4)
00000042 44f9 add r9, pc
00000044 f2400c00 movw r12, "-[LIConnection initWithURL:]"
00000048 f2c00c00 movt r12, "-[LIConnection initWithURL:]"
0000004c f8dde04c ldr.w lr, [sp, #0x4c]
00000050 f8cdc04c str.w r12, [sp, #0x4c]
00000054 f8cde03c str.w lr, [sp, #0x3c]
00000058 f8d99000 ldr.w r9, [r9]
0000005c f8cd9040 str.w r9, [sp, #0x40]
00000060 681b ldr r3, [r3]
00000062 900d str r0, [sp, #0x34]
00000064 4608 mov r0, r1
00000066 4619 mov r1, r3
00000068 4790 blx r2
0000006a 4601 mov r1, r0
0000006c 9113 str r1, [sp, #0x4c]
0000006e 990d ldr r1, [sp, #0x34]
00000070 900c str r0, [sp, #0x30]
00000072 4608 mov r0, r1
00000074 990c ldr r1, [sp, #0x30]
00000076 f7ffffc3 bl _objc_storeStrong
0000007a 2000 movs r0, #0x0
0000007c f2c00000 movt r0, "-[LIConnection initWithURL:]"
00000080 9913 ldr r1, [sp, #0x4c]
00000082 4281 cmp r1, r0
00000084 d068 beq 0x158
00000086 f64460d2 movw r0, :lower16:((20324-142)-4)
0000008a f2c00000 movt r0, :upper16:((20324-142)-4)
0000008e 4478 add r0, pc
00000090 6800 ldr r0, [r0]
00000092 4601 mov r1, r0
00000094 f643720c movw r2, :lower16:((16300-156)-4)
00000098 f2c00200 movt r2, :upper16:((16300-156)-4)
现在的问题是,是否有任何工具可以将上述代码(我不知道,代码的语言是什么)转换为具有objective-c 语言的高级.m 文件?
【问题讨论】:
标签: ios objective-c xcode decompiling .a