2012-04-23 4 views
0

.for(fortran)と.cソースファイルの組み合わせからコンパイルされた.exeがあります。.libファイルと逆コンパイル

それが原因グラフィックスサーバーとの誤差に、後でWin98のよりも何にも実行されません:

「Ox7e4467a9でユーザー32.DLLでアクセス違反エラー」

周りに他の方法がない限り上記のエラー(?)、私は元のグラフィックスサーバーを使用してソースから.exeを再コンパイルする必要があると仮定します。私はこのバー1つの.libファイルを行うためにすべてのファイルを持っています!

不足しているlibファイルの情報を現在の.exeから取り出すことはできますか?

.exeを解体することは可能ですが、これで多くは得られないと思いますか?

答えて

1

おそらく、実行可能ファイルからlibファイルを「切り取る」ことはできません。何らかの形でコードを取得できたとしても、標準のコンパイラとリンカーは、リンク情報が必要ない(結果バイナリには含まれていない)ため、リンクする方法を知らないでしょう。

しかし、あなたのプログラムがWin98で動作するが、NTベースのシステム(XP、Vista、Win7)では動作しないという問題があるなら、私はそれを見つけるのが簡単だろうと思います。プログラムをクラッシュさせます。あなたは、のアクセス違反がuser32.dllで発生すると述べました。デバッガ内でプログラムを起動し、クラッシュが発生した関数を見てください。あなたのPDBシンボルがロードされていることを確認してください(内部の非公開関数の名前を見ることができます)。どのWin32 APIが呼び出され、そのパラメータは何かを追跡します。何がアクセスできないメモリにあるべきかを理解しようとする。

また、他の情報もなく、それを手助けすることは不可能です。

0

イメージファイル(exe)に統合されると、アプリケーションに静的にバインドされたライブラリ(.lib)は、自分のコードと区別されずに分離することができず、 exeを逆コンパイルしてlibからコードを取り出すことはできません。

関連する問題