2 stezqy stezqy 于 2016.02.02 15:50 提问

小白求助!动态库基址加载问题

想请问一下,如果不使用aslr技术,linux中加载动态库时,是否每次的基址都是不变的?那么栈的基址会变吗?谢谢!

2个回答

oyljerry
oyljerry   Ds   Rxr 2016.02.02 16:07

如果没有进行动态地址切换,那么基地址不会变,栈的基址不是固定的,它是挨着堆空间,所以基址不是固定的。

stezqy
stezqy 好的谢谢!
2 年多之前 回复
zuishikonghuan
zuishikonghuan   2016.02.07 22:17

应该是会变的,因为如果一个库要载入的地址已经被其他载入的库占用了,就只能改变载入的基地址,,

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
动态基址的定位获取
自win7之后,基址已成动态 然而当时我查找资料的时候 却发觉相关资料非常的少 或者说我不是很懂那些大牛的意思吧 今天看了有关教程有所明悟 自己大概构想出了实现获取的方案 下面来讲讲方法与思路 方法:   特征码锁定获取 思路: 程序添加初始化按钮,当目标程序载入完成之后点击按钮,读取出此次的常量动态基址。 基址+偏移,就能实现以往设想的功能了。 这个方
关于程序基址改变问题
windows vista开始有动态基地址的功能,只要pe头Dll Characteristics有0x40每次加载时基地址都不一样 自己的程序: 要想基址固定,在链接器中去掉/DYNAMICBASE加上/FIXED #pragma comment(linker,"/BAS
exe重定位清除,主要让WIN7的动态基址不起作用
若EXE有重定位表,在属性里将重定位已分离勾上,同时将重定位表的数值清零,OK,WIN7再也不用将EXE动态基址了。爽.原文在看雪: 标 题: 【原创】【脱壳修复】win7下简单处理重定位表 作 者: xhbuming 时 间: 2015-04-23,15:14:40 链 接: http://bbs.pediy.com/showthread.php?t=199895 操作
Linux动态共享对象(动态链接库)装载过程
之前开发项目时,曾遇到一个问题:模块中用到的某so文件与模块某源码文件中存在同名函数(在链接器linker来看,是同名符号)时,so文件中同名函数被“覆盖”,从而导致模块启动时崩溃。当时曾专门做过实验,得到了避免出问题的一些小技巧(参见之前的某篇笔记 ),但其实对引发问题的底层原因并特别不清楚(当时由于这类问题对应的术语及其英文关键词一无所知,导致google不出干货)。最近,阅读《 程序员的自我
Windows模块加载基址与地址计算
<!-- @font-face {font-family:宋体} @font-face {font-family:"@宋体"} p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideog
Python小白初次配置兼学习方法指引
好早就想做这个,因为个人在Python群中还是比较活跃的,总是解答些同样小白的问题还是很累的。 以后发个链接让他们自己看好了。也能增加他们的自学能力(强行解释一波) 废话结束,开始正文: 首先说明下学习Python的路径: 基础->进阶->第三方模块的学习->源码->写自己的模块 再强行解释一波,基础是关键,我觉得,就算你已经熟练掌握了基础,你再看三遍四遍也不算多;基础熟练了以后
linux/android进程的模块信息获取
本文参考自腾讯游戏安全实验室,感谢腾讯游戏安全实验室的技术分享,如有侵权,请联系我@@linux进程空间中有较多的模块信息,模块信息一般包括:动态加载的链接库和可执行文件的信息。通过遍历模块可获取的进程信息包括:模块基地址和模块路径等。 下面我们以HelloWord 程序来讲讲解linux上进程模块信息的获取。该程序用C语言完成,调用了C语言标准库中的printf函数,源码如下:#include
c++动态库加载顺序和同名动态库同时加载问题
本文仅 供学习参考,欢迎提出 宝贵意见 一,同名称动态库加载顺序。   现有同名称动态库Dllpath.dll 3个,内容非常简单,分别为 extern "C" __declspec(dllexport) void myPrint() { OutputDebugStringA("exe path\n"); } extern "C" __declspec(dllexport
【linux 开发】多个动态库加载使用注意事项
本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途。 作者:gfree.wind@gmail.com 博客:blog.focus-linux.net 这两天做的工作当中,遇到了这样一个需求。在Linux环境下,要为一个daemon程序的一个动态库进行升级,不不打断这个da
如何使用Rebase以及bind来重定位和绑定dll
dll的重定位和绑定技术可以优化应用程序的性能。我们知道,程序性能最本质的提升是算法(这里的算法绝不仅是1+1=2的问题)的改进,其他的改进只是一些配置的优化而已。      那么重定位和绑定属于哪一种呢?从原理上来说,应该说是属于后者。我们知道dll的默认基地址(imag