首页
社区
课程
招聘
[求助]从im4p文件中解出的iBoot如何反编译?
发表于: 2017-10-19 12:50 7509

[求助]从im4p文件中解出的iBoot如何反编译?

2017-10-19 12:50
7509
对于iphone4的iBSS,可以使用IDA6.8,选择ARM后,可以反编译。但是iphone6的iBoot,为什么不能同样的反编译呢?

上面是iphone4的iBSS,可以用IDA6.8,没有问题。

但是,对于iphone6的iBoot,却不能反汇编出有意义的代码。
不知道是不是因为iphone4是32位的arm,而iphone6是64位的arm。如果这个原因的话,该如何解决呢?我在IDA上,只有ARM,没有ARM64的选项啊





[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
2
Processor  option里选armv8
2017-10-19 14:02
0
雪    币: 26
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
malokch Processor option里选armv8
谢谢,可是我没有找到armv8的选项呢?是我使用的工具不对,还是什么具体原因呢
2017-10-19 15:13
0
雪    币: 357
活跃值: (3393)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
4
ROM:0000000000000000  ;  File  Name      :  G:\ios\固件\iOS  11\15A5354b\iBoot.d11.RELEASE.im4p.out
ROM:0000000000000000  ;  Format            :  Binary  file
ROM:0000000000000000  ;  Base  Address:  0000h  Range:  0000h  -  65A00h  Loaded  length:  65A00h
ROM:0000000000000000
ROM:0000000000000000  ;  Processor              :  ARM
ROM:0000000000000000  ;  ARM  architecture:  metaarm
ROM:0000000000000000  ;  Target  assembler:  Generic  assembler  for  ARM
ROM:0000000000000000  ;  Byte  sex                :  Little  endian
2017-10-19 20:27
0
雪    币: 26
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼上高人,为何不多贴出一些呢
2017-10-19 21:01
0
雪    币: 357
活跃值: (3393)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
6
解决问题就行了,贴那么多干嘛

64位ida,  arm  Little    endian
2017-10-19 21:37
0
雪    币: 26
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
是因为我感觉反汇编出来的不像正确的格式。32位ARM反编译后,第一个指令是跳转指令,后面是中断入口。可是这个反汇编出来的,没有任何规律,因此我觉得反得有问题。任何数据都可以反汇编,关键是能正确反汇编
2017-10-19 21:56
0
雪    币: 26
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
通过使用python  capstone进行验证,发现CS_ARCH_ARM64模式下,发编译出来的比较有意义。2楼提供的方法是正确的,但是IDA6.8的不支持ARM64,需要6.9以上的版本。哪位高人有6.9以上的下载地址,先谢谢了
2017-10-19 23:24
0
雪    币: 357
活跃值: (3393)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
9
IDA:  What's  new  in  6.5

ARM64  (aka  AArch64)  support

In  September  2013  Apple  released  iPhone  5s  with  the  A7  processor  which  supports  the  newest,  64-bit  variant  of  the  ARM  instruction  set.  We  are  happy  to  announce  that  IDA  6.5  fully  supports  disassembly  of  ARM64  code  and  can  load  iOS  7  Mach-O  binaries  out  of  the  box.  The  Objective-C  metadata,  if  present,  is  also  parsed  and  applied.
2017-10-19 23:50
0
雪    币: 357
活跃值: (3393)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
10
IDA:  What's  new  in  6.5

ARM64  (aka  AArch64)  support

In  September  2013  Apple  released  iPhone  5s  with  the  A7  processor  which  supports  the  newest,  64-bit  variant  of  the  ARM  instruction  set.  We  are  happy  to  announce  that  IDA  6.5  fully  supports  disassembly  of  ARM64  code  and  can  load  iOS  7  Mach-O  binaries  out  of  the  box.  The  Objective-C  metadata,  if  present,  is  also  parsed  and  applied.
2017-10-19 23:51
0
雪    币: 26
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11


上找到的,对ARM64支持,需要IDA6.9


我用的是从看雪下载的IDA6.8,确实找不到ARMV8选项
2017-10-20 07:26
0
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
12
我的是ida7,是有armv8的
2017-10-20 14:07
0
雪    币: 26
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
在逆向方面,我是个业余开发者,没有公司会给我美刀去买啊,我用的是从这里下载的免费版
2017-10-20 14:40
0
雪    币: 353
活跃值: (519)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
14

更正:iphone6,这里的 6 是代号,你实际上分析的是 iPhone5s 中的 iBoot。


环境:

macOS:v10.13.1

IDA:v7.0

Firmware:iOS-v11.0-15A372-iPhone6,1

iBoot:iBoot.iphone6.RELEASE.bin


步骤:
1. 将 iBoot.iphone6.RELEASE.bin 拖到 IDA64(就是图标上有 64 的那个) 中。
2. 将 “Processor type”改成“ARM Little-endian [ARM]”,点击“OK”。
3. IDA 会询问“Do you want to change the processor type to ARM?”,点击 “YES”。
4. 接着,IDA 会弹出“Disassembly memory organization”,不需要修改,点击“OK”。
5. 接着,IDA 会弹出“Do you want to disassemble it as 64-bit code?”,点击“YES”。
6. 这样,iBoot 以 Data 的形式被加载到 0 地址,现在我们需要做 Rebase。
7. 在 “ROM:0000000000000000” 处,按 “c” 键,将代码数据转换为代码。
8. 可以看到:“ROM:0000000000000008                 LDR             X1, =0x830000000”,这样确定基址为 0x830000000。
9. 改基址,Edit -> Segments -> Rebase program...,在弹出的对话框中将基址改为:0x830000000。
10. 接下来要让 IDA 重新分析 iBoot。
11. 全选:Edit -> Select all。
12. 按 “c”,将数据转换成代码。
13. 接着,IDA 会弹出一个对话框,选择“Analyze”。
14. IDA 又会弹出一个对话框让你确认,选择 “YES”。
15. Done,最终的效果如下图:

2017-11-4 09:44
0
雪    币: 26
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
proteas 更正:iphone6,这里的 6 是代号,你实际上分析的是 iPhone5s 中的 iBoot。环境:macOS:v10.13.1IDA:v7.0Firmware:iOS-v11.0-15A372-i ...
楼上高手带带我
2017-11-8 15:45
0
游客
登录 | 注册 方可回帖
返回
//