The project of U-WA-
http://uwa.potetihouse.com/
トップページ > 過去ログ > 記事閲覧
アイコン NanDoKuの不具合と要望
日時: 2007/06/23 16:35
名前: seasidestars

こんにちは、seasidestarsと申します。

C#2005にて、コントロールライブラリを作っていたときに
不具合を見つけましたので直していただけないでしょうか?


1.カスタム属性の引数に、typeofを指定すると難読化が反映されない

カスタム属性の引数に、難読化の対象になっているクラス名を
typeofで指定すると、その部分だけ難読化される前のクラス名のままになってしまいます。

以下のようなプログラムの場合です。

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace WindowsApplication1
{
class Class1
{
[STAThread]
static void Main()
{
Class1 c = new Class1();
c.MyMethod();
}

[MyAttribute(typeof(FlagClass))]
public void MyMethod()
{
MyAttribute attr = (MyAttribute)this.GetType().GetMethod("MyMethod").GetCustomAttributes(false)[0];
MessageBox.Show(attr.type.Name);
}
}

public class MyAttribute : Attribute
{
public Type type;
public MyAttribute(Type type)
{
this.type = type;
}
}
public class FlagClass
{
}
}

[MyAttribute(typeof(FlagClass))]  の部分が難読化された後も

[1(typeof(FlagClass))]  となってしまいます。


2.コピーしたライブラリがNanDoKuの終了時に削除されない

ライブラリ(自作のアセンブリ)を参照しているアプリケーションを
NanDoKuで開くと、NanDoKu.exeがあるディレクトリに、
参照しているライブラリをコピーしているようですが、
NanDoKuの終了時に削除してもらえないでしょうか?

というのも、ライブラリのプログラムを修正した後に
このライブラリを利用したアプリケーションをNanDoKuで開こうとすると、
修正された方ではなく、前回コピーされた方のライブラリを
ロードしてしまい、開いたときに例外をはいてしまいます。

開く度に削除して使っていますが、少々面倒なので・・・


3.終了時にtempフォルダのNanDoKuフォルダが削除されない
実害はないのですが、気になったのでお願いします。


4.[要望]NanDoKuでドラッグ&ドロップに対応して欲しい

自分は、ファイルをドラッグ&ドロップで開くことが多いので
ドラッグ&ドロップに対応してもらえると便利で助かります。


5.[要望]特定のメンバーだけ難読化できるように設定したい
これは、可能であれば対応して欲しいのですが、
難読化の設定を細かく指定できるようにはできないでしょうか?

.NET Framework2.0で、隠ぺいツールに指示するための属性が
追加されているようですので、これで設定できるようになると
かなり使いやすいものになると思うのですが・・・

System.Reflection.ObfuscationAttribute
System.Reflection.ObfuscateAssemblyAttribute


お忙しいときに申し訳ありませんが、
全く急ぎませんので(特に要望は)
お暇なときに、ぜひお願いします。

失礼します。

Page: 1 |

ファイル 掲示板で修正できない ( No.1 )
日時: 2007/06/23 16:41
名前: seasidestars

すみません、もう一つお願いします。

プログラムのインデントを直そうと
掲示板の発言を、修正しようとしましたら

ERROR !
コメントの内容がありません

となってしまいます。

何度もすみませんがお願いします。
ファイル Re: NanDoKuの不具合と要望 ( No.2 )
日時: 2007/06/24 00:13
名前: Toki◆pRU.c9X.EOI

不具合報告及び、ご提案ありがとうございます。


とりあえず、返事を書かせていただきます。

>1.カスタム属性の引数に、typeofを指定すると難読化が反映されない
ILソースでは属性は全て文字列として扱われるため難読化の変換対象とされません。
これは中間言語で、クラス名などが完全修飾されないため、特定が困難なためです。
属性の中で出てくるクラスについては難読化の対象から除外するようにしてください

>2.コピーしたライブラリがNanDoKuの終了時に削除されない
リフレクションにより難読化対象のアセンブリを解析するため、
使用するDLLはNanDoKu自身がロックするので、終了時には削除することが出来ません。
このため、次回実行時に自身がコピーしてきたファイルを削除するようにしていますが、
どうもうまくいっていないようなので、確認してみます。

>3.終了時にtempフォルダのNanDoKuフォルダが削除されない
tempフォルダについては特に処理していません

>4.[要望]NanDoKuでドラッグ&ドロップに対応して欲しい
検討してみます。

>5.[要望]特定のメンバーだけ難読化できるように設定したい
オブジェクトツリーのチェックボックスを外すことで、
特定のオブジェクトの難読化を禁止できます。
機能として代用できないか検討してみてください。

>System.Reflection.ObfuscationAttribute
>System.Reflection.ObfuscateAssemblyAttribute

Framework 1.1 からのリメイクなので全く気付いていませんでした。
標準の属性なので、対応できるように検討してみます。

掲示板については修正させていただきました。
掲示板スパムの対策で、いろいろ修正した部分でのチェック漏れでした。
ファイル Re: NanDoKuの不具合と要望 ( No.3 )
日時: 2007/06/24 13:03
名前: seasidestars

こんにちは、seasidestarsです。
素早いお返事ありがとうございます。

>1.カスタム属性の引数に、typeofを指定すると難読化が反映されない
>2.コピーしたライブラリがNanDoKuの終了時に削除されない

属性がILでは文字列で扱われてしまうとは思いませんでした。
丁寧なご説明ありがとうございます。納得しました。
難読化の対象から除外して対処したいと思います。

>5.[要望]特定のメンバーだけ難読化できるように設定したい
>>オブジェクトツリーのチェックボックスを外すことで、
>>特定のオブジェクトの難読化を禁止できます。
>>機能として代用できないか検討してみてください。

了解しました。NanDoKuの設定画面で対処したいと思います。

勝手な要望を聞いていただいてありがとうございます。
ご検討よろしくお願いします。

失礼します。
ファイル Re: NanDoKuの不具合と要望 ( No.4 )
日時: 2008/02/02 02:09
名前: KK

NanDoKu への要望です。
string("aiueo" などを "\uxxxx\uxxxx\uxxxx\uxxxx" という風に置き換えるようにはできませんか?
文字列がそのまま表示されてしまうので”難読化”したいです。

Page: 1 |