-
-
[原创]CVE-2015-1805 iovyroot 查找内核地址
-
发表于:
2018-8-24 10:56
7757
-
[原创]CVE-2015-1805 iovyroot 查找内核地址
使用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
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2019-2-2 11:38
被kanxue编辑
,原因: