分享

Windows7 下 每次载入exe基址都不一样的问题解决

 @IT小小鸟@ 2012-02-18

 问题:

        写了一个壳xp下运行正常,但在w7下运行没有任何提示程序就退出了,用od载入单步运行出错说是

然后看了一下原来是载入的地址不是程序的原地址0x400000,变为

但我确信在处理引导程序时我已经将重定位表擦除了,迷茫中。。。。。。。

用od重新载入发现基址又变了,好在由此可以肯定程序不能在w7下运行是因为在w7下每次载入程序时的基址是变化的。

 

解决:

     用od载入我的引导程序发现他在w7下地址也是不停的变化的,然后在google上搜索了一下找到了看雪上的这个文章:

http://bbs./showthread.php?t=117096原来是连接器的问题:
将这个值改为"否"编译后用od载入发现文件的基址不再变化了,但问题也随之而来-----重定位表没了,这个引导程序必须有重定位表,因为要引导不同的程序必须重定位自身。

          然后用lordpe对比了一下随机地址和固定基址的程序发现

这个值不同,用c32载入改40 81 为00  81发现程序有重定位表的时候基址也不会变化了。   

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多