The project of U-WA-
http://uwa.potetihouse.com/
トップページ > 過去ログ > 記事閲覧
アイコン NanDoKuでDLLを難読化する際の処理について
日時: 2009/02/19 18:34
名前: deckstick

C#で作成したDLLの難読化を行う際、「アセンブリ外に公開されるメンバーには難読化を行わない」のチェックを行っていても、「publicなクラス の protectedなメンバーの名称」も暗号化されてしまうようです。
継承した場合にはDLL外でも利用できる(利用していたため気付いた)のですが、これは意図された動作でしょうか?(外部で使用したいメンバーには属性を設定して対処すべき?)

Page: 1 |

ファイル Re: NanDoKuでDLLを難読化する際の処理について ( No.1 )
日時: 2009/02/20 23:59
名前: Toki◆pRU.c9X.EOI

.NET 2.0にて以下のようなコードを難読化して見ました。
namespace ClassLibrary1
{
public class Class1
{
protected void Test1()
{
}

private void Test2()
{
}

public void Test3()
{
}
}

}

「アセンブリ外に公開されるメンバーには難読化を行わない」にチェックを入れたところ
メソッドTest1 Test3は難読化されないことを確認しましたが、
私の認識が何か間違っているのでしょうか?



ファイル Re: NanDoKuでDLLを難読化する際の処理について ( No.2 )
日時: 2009/02/23 08:58
名前: deckstick

すみません、難読化されないものの調査が甘かったようです。

正確には「protected の プロパティ及びイベント」が難読化されてしまいます。
以下のものを難読化すると、「ProtectedTestは難読化されない」のですが、
「ProtectedEvent と ProtectedProperty は難読化される」ようです。

namespace testdll
{
public class Class1
{
private event System.EventHandler PrivateEvent;
protected event System.EventHandler ProtectedEvent;
public event System.EventHandler PublicEvent;

private void PrivateTest()
{
}
protected void ProtectedTest()
{
}
public void PublicTest()
{
}

private bool PrivateProperty
{
get
{
return true;
}
set
{
}
}
protected bool ProtectedProperty
{
get
{
return true;
}
set
{
}
}
public bool PublicProperty
{
get
{
return true;
}
set
{
}
}
}
}
ファイル Re: NanDoKuでDLLを難読化する際の処理について ( No.3 )
日時: 2009/02/24 00:21
名前: Toki◆pRU.c9X.EOI

詳細な調査及び、報告ありがとうございます。

NanDoKuプログラムの不具合であることがわかりました。

問題箇所も判明しましたので動作確認後、近日中に修正版を公開する予定です。
ファイル Re: NanDoKuでDLLを難読化する際の処理について ( No.4 )
日時: 2009/03/10 23:41
名前: deckstick

遅くなりましたが、protectedのものが難読化されずに難読化できたことを確認しました。

対応ありがとうございました。

Page: 1 |