CVE-2015-1805 iovyroot 查找内核地址

1. 提取zImage

1.1 下载rom,找到boot.img

1.2. 使用unpackbootimg或者其他工具解压boot.img

1.3. out目录下文件如下:

CVE-2015-1805 iovyroot 查找内核地址_第1张图片

1.4 binwalk boot.img-zImage -e提取被gzip压缩的zImage

2. 32位rom获取符号的内核地址

CVE-2015-1805 iovyroot 查找内核地址_第2张图片

2.1 使用kallsymsprint可以获取以上5个符号的地址

CVE-2015-1805 iovyroot 查找内核地址_第3张图片

2.2 添加offset

2.3 使用kallsymsprint无法获取到5个符号的地址

2.4 IDA加载32位的zImage

CVE-2015-1805 iovyroot 查找内核地址_第4张图片

使用32位的IDA加载zImage时,Processer Type选择ARM,勾选Manual load, 点击Ok

CVE-2015-1805 iovyroot 查找内核地址_第5张图片

在ROM start address和Loading address填写0xc0008000,这个是内核.text段的起始地址,通常都为0xc0008000,点击OK等待IDA加载完成。

如果你不确定是不是这个地址, 你可以使用如下命令直接从手机中获取

往上查看dmesg的输出信息可以找到

CVE-2015-1805 iovyroot 查找内核地址_第6张图片

2.5 寻找 ptmx_fops 地址

在小米内核源码中搜索,直接在github中搜索的ptmx_fops

CVE-2015-1805 iovyroot 查找内核地址_第7张图片

由上图可以看到ptmx_fops仅在pty.c文件中被引用了两次,随便选一处引用

再次搜索tty_default_fops发现就只有一处调用该函数,那就用这个tty_default_fops函数去找到ptmx_fops吧

CVE-2015-1805 iovyroot 查找内核地址_第8张图片

IDA跳转到地址c03fb21c(按g,输入地址,即可跳转到指定地址),把c03fb21c重命名为tty_default_fops(按n, 输入名称,即可修改别名)

IDA查找tty_default_fops的引用(按x,可以找到所有引用该函数的地址),由于从源码知道只有一次引用该函数,就直接跳转到应用tty_default_fops的地方

CVE-2015-1805 iovyroot 查找内核地址_第9张图片

那么就找到了ptmx_fops的地址为0xC12D5298

2.6 寻找 sidtab 地址

源码中搜索sidtab,找到很多处引用,发现在services.c 中有个静态的结构体变量,

CVE-2015-1805 iovyroot 查找内核地址_第10张图片

进入services.c中,找引用sidtab的地方,找啊找啊找朋友~~~,找到一个好朋友

什么是好朋友呢,就是参数越少的函数,引用越少的函数,这种函数方便分析,

CVE-2015-1805 iovyroot 查找内核地址_第11张图片
CVE-2015-1805 iovyroot 查找内核地址_第12张图片

sidtab的地址为0xC12BC530

2.7 寻找 policydb 地址

CVE-2015-1805 iovyroot 查找内核地址_第13张图片
CVE-2015-1805 iovyroot 查找内核地址_第14张图片
CVE-2015-1805 iovyroot 查找内核地址_第15张图片

policydb地址0xC12BC420

2.8 寻找 selinux_enabled 地址

CVE-2015-1805 iovyroot 查找内核地址_第16张图片
CVE-2015-1805 iovyroot 查找内核地址_第17张图片

selinux_enabled地址0xC0F5332C

2.9 寻找 selinux_enforcing 地址

CVE-2015-1805 iovyroot 查找内核地址_第18张图片
CVE-2015-1805 iovyroot 查找内核地址_第19张图片
CVE-2015-1805 iovyroot 查找内核地址_第20张图片

selinux_enforcing地址0xC12BA9D0

2.10 offset

2.11 演示结果

CVE-2015-1805 iovyroot 查找内核地址_第21张图片

A.附录:

B.参考链接



本文作者:Imyang(看雪ID)

原文链接: [原创]CVE-2015-1805 iovyroot 查找内核地址-『Android安全』-看雪安全论坛

转载请注明:转自看雪论坛



看雪推荐阅读:

1、[原创]剖析2018腾讯游戏安全竞赛题目(上)-『CrackMe』-看雪安全论坛

2、[原创]GSLab2018-第一题标准版分析-『软件逆向』-看雪安全论坛

3、[原创]网鼎杯第一场预选 babyheap

4、[原创]Android通用脱壳机FUPK3-『Android安全』-看雪安全论坛

5、[原创] 分析了个简单的病毒, 熟悉一下16位汇编

你可能感兴趣的:(CVE-2015-1805 iovyroot 查找内核地址)