The project of U-WA-
http://uwa.potetihouse.com/
トップページ > 過去ログ > 記事閲覧
アイコン 【NanDoKu】難読化しないオブジェクトの指定
日時: 2009/06/24 16:55
名前: おさ

こんにちは。
難読化ツールを探していたところ、NanDoKuを見つけましていろいろと試しております。

難読化は成功して、一通りの処理は動いていたのですが、クラスをシリアライズして
ファイルに保存するところで、例外が発生してしまいました。
> Dim tp As System.Type = GetType(SaveData)
> Dim serializer As New System.Xml.Serialization.XmlSerializer(tp) ' ←ここで以下のエラー

>System.InvalidOperationException: 一時クラスを生成できません (result=1)。
>error CS0572: 'iiii': 式から型を参照することはできません。'iiii.jiji.iiii' を使用してください。
>error CS0572: 'iiii': 式から型を参照することはできません。'iiii.jiji.iiii' を使用してください。
>
> 場所 System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
> 場所 System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
> 場所 System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
> 場所 System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping, Type type, String defaultNamespace)
> 場所 System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)
> 場所 iiii.ijjj.iiijiiji()
と、このようなのが続きます。

そこで、このクラスは難読化対象外にしようと思い、
<AttributeUsage(AttributeTargets.All)> Public Class NoNanDoKuAttribute
Inherits Attribute
End Class

<NoNanDoKuAttribute(), System.Xml.Serialization.XmlRoot("SaveData")> _
Public Class SaveData

<NoNanDoKuAttribute(), System.Xml.Serialization.XmlRoot("UserInfo")> _
Public Class UserInfo
<NoNanDoKuAttribute(), System.Xml.Serialization.XmlElement("UserId")> _
Public UserId As String = ""
<NoNanDoKuAttribute(), System.Xml.Serialization.XmlElement("AllowFlag")> _
Public AllowFlag As Boolean = False
End Class

<NoNanDoKuAttribute(), System.Xml.Serialization.XmlElement("UserInfo")> _
Public ui As New UserInfo

End Class
として、「次の属性を持つオブジェクトは難読化しない」に「NoNanDoKuAttribute」を追加して
試してみたのですが、状態は変わらず、Reflectorで見ても難読化対象外になっていないようです。

他にチェックするところ、難読化対象外の指定方法でまずい所などがありましたら、
ご指摘をいただけないでしょうか。

よろしくお願いします。

Page: 1 |

ファイル Re: 【NanDoKu】難読化しないオブジェクトの指定 ( No.1 )
日時: 2009/06/24 22:42
名前: Toki◆pRU.c9X.EOI
参照: http://uwa.potetihouse.com/soft/nandoku.html

ご報告ありがとうございます

プログラムを確認したところ、属性による除外設定をした直後の難読化で、
設定を無視しているようでした。(詳しくは調査中です)

設定を一旦保存したあと、読み出し後の難読化では正常に除外設定が働くようです。
問題箇所が解り次第修正いたします。

あと、除外の属性設定については.Net 2.0以降でしたら、
標準の難読化指定属性が使用できますので、そちらをお勧めします。
標準の難読化指定属性では難読化後の属性の除去も行えます。




ファイル Re: 【NanDoKu】難読化しないオブジェクトの指定 ( No.2 )
日時: 2009/06/25 11:15
名前: おさ

確認ありがとうございます。

標準の難読化属性で認識してくれました。
しばらくはこちらを使っていこうと思います。

Page: 1 |