上次XCTF-game说了之后要学习一波aslr的关闭方法,昨天看了看逆向工程核心原理,发现上面有讲解其关闭的方法,特此记录。

先从pe文件重定位说起。

创建好进程后,exe文件会被首先加载进imagebase指定的内存空间地址,因此不用考虑exe重定位。但是DLL和SYS文件可能因为加载几个,导致除了第一个之外其他文件加载到其他尚未占用的地址。

而开启了aslr之后exe可以不加载到imagebse的位置,另外在aslr之前,dll也总是加载到固定地址。

ASLR执行1

ASLR执行2

不仅指令的地址变了,而且见到这些红色的call的地址都是硬编码进入的程序,每次也会变。pe装载器进行重定位处理时,最关键的就是查找硬编码地址的位置。而重定位表就是记录硬编码地址偏移的列表。

基址重定位表

基址重定位表地址位于IMAGE_OPTION_HEADER的IMAGE_DATA_DIRECTORY[5]。

前面的DWORD是RVA后面的DWORD是大小

typedef struct _IMAGE_DATA_DIRECTORY {

DWORD VirtualAddress;

DWORD Size;

} IMAGE_DATA_DIRECTORY,*PIMAGE_DATA_DIRECTORY;

另外再看看pe头IMAGE_FILE_HEADER这里

Relocation stripped

在IMAGE_FILE_HEADER的Characteristics字段。可以见到这个Relocations stripped是没有勾上的。IMAGE_FILE_RELOCS_STRIPPED   0x0001

Relocation information was

stripped from the file. The file must be loaded at its preferred base

address. If the base address is not available, the loader reports an

error.

大意是,重定位信息从这个文件被剥离,这个文件必须被装在进preferred基址(指的应该就是ImageBase),如果ImageBase不可用,加载器会报错。

我们这里要动手关闭aslr,这个选项不用改。要改的是IMAGE_OPTIONAL_HEADER的DLL Characteristics字段

DLL Characteristics

下面是DLL Characteristics的属性值,相或代表属性叠加。#define IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE 0x0040 // DLL can move.

#define IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY 0x0080 // Code Integrity Image

#define IMAGE_DLLCHARACTERISTICS_NX_COMPAT 0x0100 // Image is NX compatible

#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

删除该属性

再次执行程序,发现是004...打头的,这个时候aslr就被关上了。

关闭aslr

关闭aslr oracle,ASLR的关闭方法相关推荐

  1. 关闭所有oracle服务,启动/关闭oracle服务有三种方式

    启动oracle服务有三种方式:1 从控制面板 2 使用MS-DOS命令 3 通过Oracle Administration Assistant for WindowsNT -通过控制面板启动orac ...

  2. 关闭aslr oracle,关闭地址随机化ASLR

    参考:https://www.cnblogs.com/dliv3/p/6411814.html ASLR技术 微软从windows vista/windows server 2008(kernel v ...

  3. LINUX ORACLE 启动与关闭

    1.环境变量 如果没有配置环境变量的要配置哟,已配置就不用配置了! export ORACLE_BASE=/home/oracle/app export ORACLE_HOME=$ORACLE_BAS ...

  4. oracle数据库实例关闭步骤,Oracle 数据库实例起动关闭过程

    当前位置:我的异常网» 数据库 » Oracle 数据库实例起动关闭过程 Oracle 数据库实例起动关闭过程 www.myexceptions.net  网友分享于:2015-08-26  浏览:7 ...

  5. oracle解析关闭,oracle起动和关闭详解(转)

    oracle起动和关闭详解(转)[@more@]实例 1.启动oracle server. startup[nomount|mount|open][force][pfile=filename] 参数说 ...

  6. 查看oracle关闭重启,oracle 数据库关闭重启

    Oracle 11G DataGuard重启详细过程 场景,重启数据库,不重启linux系统,所以不用考虑监听程序, #linux输入lsnrctl start 1 数据库关闭1.1 关闭主库 SHU ...

  7. oracle11g数据库已关闭,oracle数据库已关闭

    关于 oracle数据库已关闭的搜索结果 问题 linux操作系统 重启oracle数据库 1. 打开secureCRT,连接到数据库所在的linux机器.若用户为root,请输入命令"su ...

  8. Druid+Oracle连接超时关闭问题

    记录一下生产环境遇到的问题 生产上的一个程序跑了一段时间后,老是出现 Closed Connection异常,往上追溯错误,发现有关闭连接失败异常 ​ 该应用环境: Oracle + Druid + ...

  9. 禁用计算机系统错误汇报,技术员给你关于win10关闭自动发送错误报告的具体方法...

    现在电脑已成为我们工作生活的一部分,相信大家在操作电脑时一定会遇到这样那样的问题,关于win10关闭自动发送错误报告的具体方法这个问题就是我们经常会遇到的,这样的问题关于win10关闭自动发送错误报告 ...

最新文章

  1. 38. Leetcode 101. 对称二叉树 (二叉树-二叉树性质)
  2. 学习Kotlin(三)类和接口
  3. python3断言_Python3断言
  4. html audio播放本地语音文件,HTML5+ - audio音频播放及网络音频文件播放
  5. Sublime Text 3 快捷键汇总
  6. python爬虫豆瓣250_python爬虫二 爬取豆瓣Top250上
  7. 用php求矩形周长,PHP实现的简单三角形、矩形周长面积计算器分享
  8. oracle 邮件过程,oracle 发邮件 存储过程
  9. 无效库(可能不是php库),php连接mysql数据库
  10. Linux基金会发布开源Hypervisor项目ACRN支持物联网设备开发
  11. 计算机专业的描述,计算机专业描述怎么写
  12. 知了课堂项目初始化数据库 进行数据迁移
  13. uvm学习笔记----适合新手快速学习
  14. 风剑分享“站在上帝视角看数据”,点燃企业大数据梦想与思潮
  15. MATLAB(2)--MATLAB矩阵的表示
  16. oracle中制表符,oracle中去掉文本中的换行符、回车符、制表符
  17. GAN(生成对抗网络)和IQA(图像质量评价能擦出什么样的火花呢?)简单聊一些近来published的论文
  18. 乖离率背离公式_股票bias指标使用技巧-股票bias指标的使用五大技巧 股票bias指标计算公式...
  19. Android Studio NKD开发之 FFmpeg库的引入--简单播放器(主要验证是否正确引入ffmpeg库)
  20. 力扣 第314场周赛 Q3 使用机器人打印字典序最小的字符串【难度:中等,rating: 1953】(栈+贪心)

热门文章

  1. 程序性能分析工具perf
  2. 武汉理工大学计算机专业英语,给大家讲个笑话,武汉理工外语专业400分以上的28人...
  3. python路径单双斜杠、转义字符
  4. linux 关闭core,linux下core文件的控制
  5. trello_从Gmail侧边栏快速添加Trello卡
  6. 三星公布Note7燃损原因 不惜成本历经数月调查揪出电池“元凶”
  7. 干货|高速穿梭车如何完成定位?
  8. 对接金蝶云星空,奥威软件SaaS BI能做的不止这一点
  9. Double TAG
  10. 朴素匹配算法、KMP匹配算法及其改进【C Program】