- - PR -
.NETやXMLはウイルス作者にとっても最適の環境
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2002-04-01 08:15
そういうことに近いですが実際は動的な呼び出しではありません。 Xの派生クラスを作成して、そのクラス内で il.Emit(OpCOdes.Call, typeof(X).GetMethod("foo", BindingFlags.NonPublic | ..); (fooはinternal)となるコードを生成すると、この呼び出しが、MemberAccessExceptionになるということです。fooをpublicにすれば問題はないわけですが、呼び出すべき規則がいろいろあるため、単純にpublicにするのは問題を感じるためランタイム中に隠しておきたいとかあって。 #えと、別にウィルス作者じゃないです。 http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/netruby.html で、インタープリターの部分がほぼ終わったので、実際にコードを生成するテストをいろいろしているところなんで。(サイトにコンパイルを行うソースはまだ置いてないです) | ||||||||||||
|
投稿日時: 2002-04-01 13:02
どはずしの可能性大ですが。。。
ILGeneratorをお使いということは、このコードはAppDomain.DefineDynamicAssemblyから始まっているのではないかと思うのですが、とするとこの時点で今のコードが含まれるアセンブリとこれから作ろうとしているコードが含まれるアセンブリは違うものになっちゃいますから、他の型のinternalメソッドは呼べなくなってしまいます。試しに次のコードならちゃんと実行できました。
うーん、やっぱはずしてますかね。ま、たとえおおはずしだったとしても、Reflection.Emitの例ということで。
もちろん存じ上げております。邪道編買いました [ メッセージ編集済み 編集者: NothingBut.NETFX 編集日時 2002-04-02 02:12 ] | ||||||||||||
