首页
社区
课程
招聘
[原创]CVE-2015-1805 iovyroot 查找内核地址
发表于: 2018-8-24 10:56 7756

[原创]CVE-2015-1805 iovyroot 查找内核地址

2018-8-24 10:56
7756

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

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

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

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

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

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

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

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

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

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

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


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

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

sidtab的地址为0xC12BC530

policydb地址0xC12BC420

selinux_enabled地址0xC0F5332C

selinux_enforcing地址0xC12BA9D0

 
 
 
 
 
 
 

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-2-2 11:38 被kanxue编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (6)
雪    币: 16506
活跃值: (6392)
能力值: ( LV13,RANK:923 )
在线值:
发帖
回帖
粉丝
2
原文地址:https://www.jianshu.com/p/cb36cb7ec814
其实找内核的那些函数名,不需要源码吧!
直接导出来不就行了/proc/kallsyms,前提是/proc/sys/kernel/kptr_restrict等于0
不过你都有boot.img想怎么root 就怎么root吧!
2018-8-25 11:36
0
雪    币: 6003
活跃值: (3490)
能力值: ( LV6,RANK:96 )
在线值:
发帖
回帖
粉丝
3
原文也是我写的 @大帅锅
2018-8-25 19:08
0
雪    币: 324
活跃值: (384)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
我看了你这个然后搞了一下64位的,后来发现直接imgtool提取kernelimage 看导出就行了
2018-8-26 14:56
0
雪    币: 6818
活跃值: (153)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
2018-8-26 23:35
0
雪    币: 1535
活跃值: (695)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
Imyang 原文也是我写的 @大帅锅
哈哈,厉害了
2018-8-27 14:16
0
游客
登录 | 注册 方可回帖
返回
//