当前位置:  开发笔记 > 运维 > 正文

madExcept + UPX

如何解决《madExcept+UPX》经验,为你挑选了2个好方法。

我在Delphi 2007上使用madExcept + UPX时遇到问题.每当我打开压缩的应用程序时,都会出现一个Windows异常对话框,代码为0xc0000005.有人有解决方案吗?

谢谢!



1> Barry Kelly..:

对异常等进行堆栈跟踪需要将内存中的代码地址映射到存储在可执行文件中的虚拟地址,以便它们可以与.map文件或指示函数或源文件和行的调试信息相关联.通常,映射是直接的并且是相对线性的.

可执行压缩可以解决这个问题,因为它没有直接的映射,特别是没有符合PE规范的映射.这是因为可执行压缩将可执行文件中的初始化例程替换为将数据从磁盘提取到内存中的初始化例程(这也意味着压缩的可执行文件不与其他实例共享页面,并且使用比未压缩的可执行文件更多的内存,因为它们需要在转发到新扩展的原始初始化例程之前,所有内容中的所有页面都是一次性的.

因此,如果堆栈跟踪中的代码位置没有非常聪明的相对地址存储,则这两种技术不太可能一起工作.

FWIW,我个人不建议使用可执行的打包程序.



2> Fabricio Ara..:

MadShi自己的论坛已经介绍过:

论坛文章#1
论坛文章#2

还有十几个其他主题,但总结一个长故事,MadExcept 3.*和之后已知可以与UPX一起使用,下面没有.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有