首页
社区
课程
招聘
[求助]问:什么情况下TLS和Libc偏移不固定
发表于: 10小时前 48

[求助]问:什么情况下TLS和Libc偏移不固定

10小时前
48

在做ret2gets的时候,泄露出来TLS,但是发现glibc的基址和tls的偏移不是固定的。然而,同学说他的环境是固定的,而且打通了,这是为什么


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 11543
活跃值: (3795)
能力值: ( LV9,RANK:460 )
在线值:
发帖
回帖
粉丝
2

首先ASLR是什么呢?


ASLR带来的影响是什么呢?

ASLR,程序加载到内核时,ASLR分成两个部分,一是程序自身及LD链接器加载的时候会通过load_elf_binary处理虚拟内存空间的细节,当程序自身的ELF和LD都完成加载后,才会加载程序依赖的动态链接库

在load_elf_binary,内核会根据一个特定的地址设置基地址,当ASLR开启后,内核会通过随机函数获得一个随机值,并让基地址减去或加上随即值完成虚拟内存空间的随机化

动态链接库的加载实际是通过mmap映射出来的,内核的mmap有个名为get_unmmap_area的函数通过算法快速查找虚拟空间中的可用内存,然后再获取随机值并根据随机值完成随机化


ASLR有没有什么用户态空间可以控制的方法?


有没有什么途径可以观察程序加载过程ASLR呢?提供了非常丰富的追踪工具,那么程序的加载流程可不可以通过这些追踪工具大致的分析出来?


现在ebpf非常的火,可以在用户态空间编写程序观察内核的动向,那么ebpf有没有可能分析出mmap的随机化过程呢?

除了ebpf外还有什么可以调试内核的方法呢?


在之后,程序的虚拟内存空间可以分成多个类型,每个类型的内存ASLR的方法都是一样的吗,内核是如何加载ELF文件的,mmap具体又是如何工作的,等等等。。。。

最后于 6小时前 被福建炒饭乡会编辑 ,原因: 没写完
6小时前
0
雪    币: 11543
活跃值: (3795)
能力值: ( LV9,RANK:460 )
在线值:
发帖
回帖
粉丝
3
福建炒饭乡会 首先ASLR是什么呢?ASLR带来的影响是什么呢?ASLR,程序加载到内核时,ASLR分成两个部分,一是程序自身及LD链接器加载的时候会通过load_elf_binary处理虚拟内存空间的细节,当程序 ...
补充一点,最开始的疑问是动态链接库等等的虚拟内存基地址工具不固定,以动态链接库为例,程序是如何在动态链接库的,内核分析困难的话,有没有什么用户态的追踪工具可以分析出来,从哪里获得地址后,地址有为什么会每次都不固定,但同时你也会发现,即使内存地址变化,它们开头的前几位地址会有比较明显的特征,那么这些特征都是怎么来的,这个时候才会知道有ASLR这个机制,如果ASLR机制不方便分析的话,那么能不能找到一个快速的途径控制ASLR
6小时前
0
游客
登录 | 注册 方可回帖
返回