1

公開している .NET および COM クラスを検出するためにリバース エンジニアリングを試みている API を使用するアプリケーションがあります。PowerShell ですべての .NET アセンブリを読み込むことができます。

ls 'C:\Program Files\MyApp\Bin\*.dll'| %{Add-Type -Path $_.FullName}

次に、リフレクションを使用してすべての型を見つけ、New-Object 経由でインスタンス化します。しかし、VB6 ActiveX dll など、COM オブジェクトを公開する DLL がある場合はどうでしょうか。これらの DLL で COM オブジェクトを公開しますAdd-Type -Pathか、またはそれらをRegsvr32に登録する必要がありますか?

4

1 に答える 1

2

COM をやったのは久しぶりですが ... COM コンポーネントは通常、メタデータを typelib に入れます。そのため、COM dll を PowerShell にロードしても、検出に関してはおそらくあまり役​​に立ちません (PowerShell が .NET ラッパー アセンブリを自動生成しない限り)。.NET ツールtlbimp.exeを使用して、COM コンポーネントの周りに .NET ラッパーを作成します。その後、 Add-Typeを使用して、生成されたラッパーをロードし、検査することができます。

于 2012-08-09T16:37:56.440 に答える