1 ASLR机制

Address Space Layout Randomization=地址空间布局随机化;
    是一种针对缓冲区溢出的安全保护技术;
    没有ASLR时,每次进程执行,加载到内容中,代码所处堆栈stack的位置都是相同的,容易被破解;
    如果开启了ASLR,操作系统加载器会针对基地址再去加上一个随机生成的偏移地址,然后再去加载程序模块,通过对堆、栈、共享库映射等线性区布局的随机化,增加攻击者预测目的地址的难度。

地址随机化需要程序自身和操作系统的双重支持,会在PE头中设置IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE标识来说明支持ASLR。

此字段位于PE结构的可选头结构体中;可选头的概念可参阅此,

https://blog.csdn.net/bcbobo21cn/article/details/115032841

2 PE操作

下面来用010Editer操作看一下,打开010Editor,打开notepad.exe;
    根据资料,在 NtHeader 数据块内找到4081,然后修改为0081即可;或者找到WORD IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE这个字段 ,把值1改为0即可;

看下图NT头的区域;里面没有4081;也许版本发生了变化;

我截一个网友操作的图,大家了解一下此概念;

此图是用CFF Explorer进行操作,CFF Explorer可在此下载;
http://windows.dailydownloaded.com/zh/developer-tools/specialized-tools/14498-cff-explorer-download-install
这工具看上去是微软提供的;

然后找 IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE 字段;如下图,值为1,就是支持地址随机化;如果改为0,则不支持地址随机化;

根据PE结构资料;可选头的DllCharacteristics是一个WORD;

WORD    DllCharacteristics;

例如此文;https://cloud.tencent.com/developer/article/1015243

但是010Editor显示的,DllCharacteristics是一个结构体,里面又包含多个WORD;这可能是一个多个WORD或起来的值,最终是一个WORD;

3 VS相关选项

在VS开发环境设置中,对此有一个选项支持;如下图;链接器-高级-随机基址;默认生成的应用程序支持地址随机化;

Windows下ASLR机制(地址随机化)- 概念、PE操作、VS相关选项相关推荐

  1. windows下vs2015编译POCO及使用poco操作sqlite

    1.下载POCO https://pocoproject.org/releases/ 我们选择windows下的zip包下载,注意有两个版本 poco-1.9.4-all.zip poco-1.9.4 ...

  2. Windows下win32api下载地址

    http://sourceforge.net/projects/pywin32/files/ 虚拟环境Virtualenv下使用pywin32 首先要在第一步安装完后的基础上,找到pywin32.pt ...

  3. MSYS2:windows下获取ip地址对应的网卡名

    基本的原理就是用netsh interface ipv4 show address命令列出所有网卡的地址信息,然后用sed过滤掉无用的内容,具体实现如下: $ netsh interface ipv4 ...

  4. Windows 下的批处理脚本基础——批处理运算操作(代码可拿)

      自从优盘中毒,就开始发现学习批处理脚本的重要性.一起加油冲冲冲!!! https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩 ...

  5. 本人64位windows下安装最新版XGBoost,附操作步骤图

    (这是16年的安装方式,现在早就直接pip install xgboost就可以) 最新更新的XGBoost与老版安装方式不再一样,具体安装步骤如下: 1. 材料 系统:win7 64位 sp5 (w ...

  6. ctf从零开始学 0x1:Windows下的二进制安全学习路线

    本文作者:rkvir(二进制小组组长) 转自某推文,链接找不到了. 一. 什么是二进制安全 在很久以前安全圈并没有把安全技术做出一个特别清晰的分类.在大部分人眼里,所谓的黑客,安全研究者指的就是研究渗 ...

  7. Windows下的工作组与域环境以及域的搭建管理流程

    Windows下工作组与域的概念 企业生产中工作组与域之间的优劣 域实现的核心思想:域控制器(DC)和活动目录(AD) 搭建活动目录并将计算机加入域中 通过域控实现用户的统一身份验证 通过组策略实现域 ...

  8. Linux与win2003下修改mac地址方法

    一.在Linux下修改MAC地址方法如下: 方法1:在文件"/etc/rc.local"中加入    ifconfig eth0 hw ether 00:D0:59:0D:9B:4 ...

  9. windows下安装sentinel

    windows下安装sentinel 地址: sentinel 启动jar包: java -jar sentinel-dashboard-1.8.5.jar 访问 localhost:8080 默认账 ...

最新文章

  1. AWS攻略——使用CodeCommit托管代码
  2. John的农场(最小生成树)
  3. Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(二:mybatis整合spring)
  4. Matplotlib实例教程(三)折线图 plt.plot()
  5. junit单元测试报错InvalidTestClassError: Invalid test class
  6. 收藏!5V转3.3V电平的19种方法技巧
  7. 单元测试线程代码的5个技巧
  8. ffmpeg在android上输出滑屏问题处理
  9. 《Scikit-Learn与TensorFlow机器学习实用指南》第4章 训练模型
  10. 每天一道算法题(27)——找出元音字母并排序
  11. 华为nova7se乐活版支持鸿蒙,华为nova7se乐活版和畅享20se哪个好 参数区别对比评测...
  12. 舒尔补理论Schur Compliment
  13. RTI_DDS自定义插件开发 8 信息
  14. 数据库性能优化的五种方案
  15. redis-(error) CLUSTERDOWN Hash slot not served
  16. 树莓派pico--PIO入门
  17. stc12c5a单片机c语言adc,stc12c5a60s2单片机用自带ADC采集电压源程序
  18. 前端 H5 页面地图展示,只需要传入经纬度就可展示地图及周边生活娱乐
  19. 破解Android app的过程记录
  20. 大一期末程序课程设计 C/C++实现简单学生学籍管理系统

热门文章

  1. 数据仓库-物理模型设计
  2. python3 bytes转numpy array
  3. Xposed hook微信二维码收款信息
  4. RS485总线连接器、三通接头、航空插头如何选择
  5. html制作led,一种简易LED屏的制作方法
  6. SQL Server 卸载和安装
  7. ofd发票如何转换成pdf格式
  8. C语言有以下几种取整方法
  9. 小程序扫二维码功能及测试实现过程
  10. General Command