当前位置: 首页 > article >正文

Linux KASLR 地址偏移

kaslr开启时地址

    cat /proc/cmdline
    BOOT_IMAGE=/boot/vmlinuz-5.4.0-193-generic root=UUID=0e46dee3-4557-434a-a2d2-a35c6ad3d327 ro find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_US quiet

    cat /boot/config-$(uname -r) | grep CONFIG_RANDOMIZE_BASE
    CONFIG_RANDOMIZE_BASE=y


    sudo cat /proc/kallsyms | grep map_vdso
        ffffffffb5005680 t map_vdso

    sudo cat /boot/System.map-$(uname -r) | grep map_vdso
        ffffffff81005680 t map_vdso

    因开启了 kaslr , 从 /proc/kallsyms 和 System.map-$(uname -r) 看到的 map_vdso 地址不一样。
    如果关闭 kaslr , 从 /proc/kallsyms 和 System.map-$(uname -r) 看到的 map_vdso 地址一样。

关闭 kaslr

    在 cmdline 中添加 nokaslr , 可以关闭 kaslr。

    vi /etc/default/grub

    GRUB_CMDLINE_LINUX_DEFAULT="quiet nokaslr"

    cat /proc/cmdline

    BOOT_IMAGE=/boot/vmlinuz-5.4.0-193-generic root=UUID=0e46dee3-4557-434a-a2d2-a35c6ad3d327 ro find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_US quiet nokaslr

计算内核符号表和堆栈空间地址的偏移方法

    1.利用 /proc/kallsyms 获取符号实际的加载地址
        
        sudo cat /proc/kallsyms | grep map_vdso
            ffffffffb5005680 t map_vdso

    2.利用 /boot/System.map-$(uname -r) 获取链接后的地址
    
        sudo cat /boot/System.map-$(uname -r) | grep map_vdso
            ffffffff81005680 t map_vdso

    3.计算偏移地址

        offset = ffffffffb5005680 - ffffffff81005680
        offset = 0x34000000

    开启了 kaslr 后, vmlinux中的各个段地址都需加上这个offset。


http://www.kler.cn/a/405895.html

相关文章:

  • 医工交叉入门书籍分享:Transformer模型在机器学习领域的应用|个人观点·24-11-22
  • 30. 并发编程
  • 基于RTEMS项目学习waf build system
  • 主要用于图像的颜色提取、替换以及区域修改
  • AbsPlus框架介绍2
  • JavaSrcipt 函数高级
  • C语言:数组转换指针的时机
  • Sparrow系列拓展篇:对信号量应用问题的深入讨论
  • Spring Cloud OpenFeign 声明式服务调用与负载均衡组件
  • React——useReducer
  • 3D模型平台行业全面深入分析
  • 【DQ Robotics】二次规划控制
  • 金融量化交易模型的探索与发展
  • 鸿蒙系统ubuntu开发环境搭建
  • Windows VScode+Latex环境
  • 华为IPD流程管理体系L1至L5最佳实践-解读
  • 《Shader 入门精要》学习笔记 茵蒂克丝
  • //动态内存分配
  • 深度学习笔记之BERT(二)BERT精简变体:ALBERT
  • 红帽(RHCE)工程师认证
  • 【STM32】BKP备份寄存器RTC实时时钟PWR电源控制
  • 革新车间照明,分布式IO模块引领智能制造新纪元
  • 【C++之STL】摸清 string 的模拟实现(中)
  • resnet50,clip,Faiss+Flask简易图文搜索服务
  • 信息收集系列(六):路径爬取与目录爆破
  • Flutter踩坑记录(三)-- 更改入口执行文件