2012-01-06 9 views
4

アセンブリを修正する必要があり、現時点でソースコードから再構築することはできません。私はildasm mydll.dll/all /out=mydll.ilを使ってILをダンプすることができますし、ilasm/dll mydll.ilで再構築することができます。ファイルバージョン、公開鍵などがすべて抜けている新しいバイナリこれらを追加するにはどうすればilasmに伝えることができますか?私は運がない/ mdvスイッチを試しました。ildasm、次に同じメタデータを持つilasm

+0

hehe、あなたが強烈な名前の存在の主な理由の1つを破壊しようとしていることをあなたに打つことはありませんでしたか?私はなぜこれがコマンドラインスイッチと同じくらい簡単だろうと思っているのか分かりません:)ああ、戦争の霧! – x0n

答えて

7

鍵はトリップしません。そうしないと、誰かのアセンブリをハックしてオリジナルとして引き渡すことができます。

あなたの状況でアセンブリに署名するには、キーが必要です。あなたのアセンブリを逆コンパイルしたら、それをパッチを適用 - その最も簡単なあなたが先に行くと、他のAssmbly属性があるエリアに以下の行を追加する場合:

.custom instance void [mscorlib]System.Reflection.AssemblyDelaySignAttribute::.ctor(bool) = (01 00 00 00 00) 

その属性がキーのための余地を残すためにILASMを伝えます。その属性を追加し、ilasmを使用してコードを再構築したら、snユーティリティを使用して署名を遅延させる必要があります。構文は次のようになります。

sn /R myreassembled.dll originalassemblykey.snk 

アセンブリを終了する必要があります。

あなたが参照しているファイルのバージョンを教えてください。これはILのアセンブリ属性でなければなりませんが、もしそうでなければ、al.exeユーティリティが必要です。

関連する問題