输出普通源代码

时间:2012-04-24 07:43:27

标签: delphi reverse-engineering decompiling disassembly

我有一个应用程序,每次我执行特定的操作时都会发出相同的错误:

Exception EListError in module foo.exe at 000277CF.

List index out of bounds(0)
(Physical address: XXXXXXX)

作为一名程序员,如果我有办法打开它并向开发人员指出错误的原因,我会很喜欢它。

这可能吗?我知道这种语言,它是.NET和一些旧的Delphi代码的混合。

有人想指出我正确的方向吗?教程?要使用的程序?

1 个答案:

答案 0 :(得分:2)

EListError异常似乎表明可执行文件是delphi应用程序,现在无法从Delphi Win32应用程序中检索原始源代码,因为变量名称,方法,参数和附加元素都转换为内存创建可执行文件时地址和丢失。因此无法重新创建原始代码。

你最好的选择是使用像IDA这样的反编译器来反汇编和调试exe并确定问题的位置,然后你可以创建一个补丁来解决这个问题,但是这个任务并不容易,而且要求很多关于pe structures,内存地址位置和汇编的知识。

另外在你的问题中你提到了应用程序混合了.net代码和delphi代码的可能性,如果是这种情况你可以使用reflectorTelerik JustDecompile来检索原始源代码