linux / container 中禁用ASLR (address space layout randomization)

问题概述

最近想基于docker搭建一个全平台的code环境.在使用clang+lldb调试的时候遇到了这个问题.
Could not disable address space layout randomization (ASLR).
(Possibly due to running in a restricted container. Add “initCommands”:[“settings set target.disable-aslr false”] to the launch configuration to suppress this warning.)
这玩意确实是可能影响调试的.

解决方案

有root权限,或者容器有privilege (暂时改变)

cat /proc/sys/kernel/randomize_va_space #查看ASLR情况

值对应的情况

0 – 没有随机
1 – 部分随机. Shared libraries, stack, mmap(), VDSO and heap are randomized.
2 – 全随机

这个时候我们执行:

echo 0 | sudo tee /proc/sys/kernel/randomize_va_space 

或者

sudo echo 0  > /proc/sys/kernel/randomize_va_space 

直接改变数值就是改变随机化情况.
但是这只会持续到下一次reboot之前

有root权限,或者容器有privilege (永久改变)

/etc/sysctl.d/文件夹底下,自己创建一个*.conf文件,里面的东西会在sysctl(8)在boot的时候执行,比如我们可以

vim /etc/sysctl.d/01-disable-aslr.conf

然后输入kernel.randomize_va_space = 0保存即可

无root权限,或者容器无privilege

挂载容器的/proc/sys或者/etc/sysctl.d到本地的文件夹底下,
挂载完之后想怎么修改参照上面的两条,用container上一层的权限修改被挂载位置里面的文件即可.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值