1

Classic ASP で作成され、社内の COM+ サービスを利用する古いイントラネット アプリケーションの 1 つを更新する必要があります。このオブジェクトのソース コードがどこにも見つからず、開発者によって文書化されていませんでした。

サービスで利用可能なメソッドを表示することはできますが、メソッドのStart -> Administrative Tools -> Component Services内部を見て、メソッドが何をしているのかを確認する方法を理解することはできません。

これらの COM+ サービスを逆コンパイルするか、メソッドの動作を確認する方法はありますか? それとも、古いアプリケーションを純粋に観察して、動作とデータを模倣するために最善を尽くす運命にあるのでしょうか?

注: 古いサーバーからサービスをエクスポートし、開発ボックスにインストールして、VS2010 プロジェクトへの参照を追加し、オブジェクト エクスプローラーを使用してこれらのメソッドを識別しようとしました。何もない...

4

1 に答える 1

3

COMサービスには、自動化コントローラーがパラメーターをCOMメソッドに渡す方法を理解できるように、COMクラスに存在するメソッドとそのパラメーターのタイプ記述が含まれています。

ただし、それ以外に、ネイティブx86マシンコード自体以外に、COMクラスが内部で何を行うかを示すものはありません。DLLでx86逆アセンブラを使用してみることができますが、x86マシンコードの説明に精通していない限り、これはあまり役に立ちません。

ソースコードをネイティブマシンコードにコンパイルすると、膨大な量の情報が失われます。変数名、内部関数名、CPUが命令を実行し、元のソースコードで示された操作を実行するために必要なものはありません。逆アセンブラがこれらの名前を再構成することは事実上不可能であり、コードが何を意図しているのかについての手がかりになります。逆アセンブラはコアロジックを理解するのに役立つ場合がありますが、表面を傷つけるためにも、人による多くの注意深い分析と努力が必要になります。それは、個々の草の葉を見て森を理解しようとするようなものです。

于 2013-02-20T01:11:39.310 に答える