ASLR技术会使PE文件每次加载到内存的起始地址随机变化,并且进程的栈和堆的起始地址也会随机改变。微软从windows vista/windows server 2008(kernel version 6.0)开始采用ASLR技术,主要目的是为了防止缓冲区溢出。
该技术需要操作系统和编译工具的双重支持(主要是操作系统的支持,编译工具主要作用是生成支持ASLR的PE格式)。
我们这里要动手关闭aslr,可以修改IMAGE_OPTIONAL_HEADER的DLL Characteristics字段,下面是DLL Characteristics的属性值,相或代表属性叠加。

#define IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE 0x0040 // DLL can move. ASLR
#define IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY 0x0080 // Code Integrity Image
#define IMAGE_DLLCHARACTERISTICS_NX_COMPAT 0x0100 // Image is NX compatible  DEP
#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION 0x0200 // Image understands isolation and doesn't want it
#define IMAGE_DLLCHARACTERISTICS_NO_SEH 0x0400 // Image does not use SEH. No SE handler may reside in this image
#define IMAGE_DLLCHARACTERISTICS_NO_BIND 0x0800 // Do not bind this image. // 0x1000 // Reserved.
#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER 0x2000 // Driver uses WDM model // 0x4000 // Reserved.
#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000

将8140改为8100,也就是让DLL不能move,ASLR就被关掉了。

也可以通过修改注册表的方式取消系统的ASLR功能。该功能是一个安全选项,无特殊需要不建议关闭。

win+r,输入regedit,打开注册表,新建注册表项
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\Memory Management] “MoveImages”=dword:00000000
就可关闭ASLR。

删除该键值项,就可以开启ASLR功能。

通过注册表修改ASLR需要重启机器。

参考:
https://blog.csdn.net/weixin_43742894/article/details/105702886
https://blog.csdn.net/m0_37809075/article/details/83041090

ASLR技术及关闭与开启相关推荐

  1. Linux下关闭和开启IPv6的方法

    确认IPV6是否开启 在Linux下确认IPv6是否已经被启用,可以从三个方面确定. 1.使用ifconfig查看自己的IP地址是否含有IPv6地址. eth0 Link encap:Ethernet ...

  2. linux启动报错+centos关闭和开启ipv6

    LINUX启动报错,dmesg | grep -i erro 当前位置:洪哥笔记 >Linux >centos 6关闭或开启ipv6 centos 6关闭或开启ipv6 关键词 ipv6  ...

  3. solaris系统关闭服务器,solaris系统中关闭和开启系统服务ftp,telnet,ssh,sendmail...

    solaris系统中关闭和开启系统服务ftp,telnet,ssh,sendmail (2010-12-19 14:37:14) 标签: solaris ftp telnet sendmail ssh ...

  4. 鸿蒙系统桌面小艺建议怎么删除?鸿蒙系统小艺建议怎么设置关闭及开启

    鸿蒙系统2.0已经正式发布了,目前不少的手机已经升级了,这次全新的桌面设计还在不错的,增加了小组件的风格,整体看起来更加的简洁,不过很多小伙伴在调整桌面的时候,其中的小艺建议不知道怎么删除,删除了不知 ...

  5. win10计算机管理没有蓝牙,Win10蓝牙在哪里?Win10蓝牙设置关闭或开启方法图解

    目前,windows 10系统也支持笔记本中自带的蓝牙功能,那么,Win10蓝牙设置在哪里?如何设置win10蓝牙功能关闭或开启?针对此问题,本文就为大家进行解答.有兴趣的朋友们可以了解下哦. 很多笔 ...

  6. 抖音关闭单身开启恋爱模式设置教程分享

    1.首先我们需要下载一款叫做"快剪辑"的手机软件. 2.点击打开快剪辑,在模板中进行查找.选中并且下载该模板,这样就可以进入编辑界面,从手机本地导入素材文件,再来进行下一步编辑. ...

  7. 戴尔 DELL 游戏笔记本电脑 - Windows 10 关闭或开启功能键 (Fn key)

    戴尔 DELL 游戏笔记本电脑 - Windows 10 关闭或开启功能键 (Fn key) 1. 关闭或开启功能键 Fn + Esc 关闭或开启功能键 The Fn key, short form ...

  8. 【技术简史】1995-1996 开启的互联网时代范式:信息无处不在

    [技术简史]1995-1996 开启的互联网时代范式:信息无处不在 目录 ​编辑

  9. android关闭或开启移动网络数据(关闭后,设备不可以上网,但可以打电话和发短信)...

    //android关闭或开启移动网络数据(关闭后,设备不可以上网,但可以打电话和发短信) public void setMobileDataEnabled(boolean enabled) { Con ...

最新文章

  1. 读取 classpath 资源
  2. react实现汉堡_利用 React 高阶组件实现一个面包屑导航
  3. Red Hat Enterprise MRG 2.0 Installation And Configuration Guide
  4. ARM的编程模式和7种模式
  5. 如何使用Picterra的地理空间平台分析卫星图像
  6. Hello Qt(在Linux下编写运行Qt程序)
  7. LeetCode 241. 为运算表达式设计优先级(动态规划)
  8. 网络世界在某种程度上助长了人格的分裂
  9. java中数组的返回值是什么类型_java基础学习:数组的常用操作与基础二维数组用法、及基本数据类型和引用数据类型赋值的区别...
  10. 软件测试第五周 - 编码的 UI 测试
  11. inster into java_SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
  12. java 接口类型_Java-从接口类型而不是类声明
  13. js获取汉字拼音首字母
  14. 提高工作效率的软件推荐
  15. Nginx(1)基础部分
  16. 每日一佳——Trading Convexity for Scalability(Ronan Collobert et al. ,ICML,2006)
  17. Excel按照固定行数拆分为多个文件
  18. 使用python画出彩虹效果
  19. 有关计算机英语作文素材,英语作文素材范文
  20. 测试技术与信号处理实验报告

热门文章

  1. 分享一套Android快速开发通用模板,包含常用主流框架,持续更新中……
  2. 【干货】图像处理与计算机视觉基础,经典以及最近发展
  3. Linux typeset用法
  4. 初级前端如何突破瓶颈(瓶颈期怎么办)
  5. Android之QQ授权登录获取用户信息
  6. Apollo control模块横向控制原理及核心代码逐行解析
  7. 实验:构建第一个Docker镜像
  8. CNCC2018中国计算机大会:人工智能与信息安全分论坛
  9. uniapp背景图片android不显示,uniapp设置的背景图无法显示怎么办
  10. JAVA程序设计实战(10-13章)