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 に答える