1

私はCecilを初めて使用し、簡単なテストを作成しました。すべての名前空間/タイプの名前をランダムな文字列に変更します。

var assembly = AssemblyDefinition.ReadAssembly(@"C:\somexe.exe");
foreach (var t in assembly.MainModule.Types) {
    t.Namespace = Guid.NewGuid().ToString();
    t.Name = Guid.NewGuid().ToString();               
}

実行可能ファイルの実行を開始した後、空のフォーム(winforms)を使用します。

CLRは名前を気にしないと思いましたか?名前を変更してはいけないものは何ですか?それとも私は何か間違ったことをしていますか?

4

1 に答える 1

2

多くのことは、特にWinFormで、リフレクションに依存しています。そして、リフレクションは名前を非常に気にします。これは、リソース、およびリソースファイルが一致していないことにも関連している可能性があります。また、多くの属性には、タイプ情報が文字列として含まれている場合があり、これは物事に影響を与える可能性があります。シリアル化も可能です(特にBinaryFormatter)。

ただし、コンテキスト(主にコード)がなければ、推測することしかできません。

于 2012-07-21T16:49:41.317 に答える