0

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

Exception EListError in module foo.exe at 000277CF.

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

作为一名程序员,如果有一种方法可以打开它并向开发人员查明错误的来源,我会喜欢它。

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

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

4

1 回答 1

2

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

你最好的选择是使用像IDA这样的反编译器来反汇编和调试 exe 并确定问题的位置,然后你可以创建一个补丁来修复它,但是这个任务并不容易,需要大量关于pe 结构的知识,内存地址位置和汇编。

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

于 2012-04-25T02:37:13.330 回答