NanDoKu:難読化後、特定の場合に動作せず |
- 日時: 2008/12/02 02:13
- 名前: seaside stars
- こんにちは。seaside starsと申します。
「NanDoKu」を愛用させていただいております。
NanDoKu 3.1.2に更新して、難読化させたところ 難読化したプログラムが動作しなくなってしまったので ご報告させていただきます。
ごく特定の場合に限り、発生するようですので、 再現手順を書かせていただきます。
=========== 1. Visual Studio 2005または2008で、「新しいプロジェクト」で 「Windows アプリケーション」を作成する
2. 既成のフォーム(Form1.cs)を次のプログラムに置き換える
----------- using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;
namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); this.Load += new EventHandler(Form1_Load); }
private void Form1_Load(object sender, EventArgs e) { int[,] myArray = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; } } } -----------
3. コンパイル後、NanDokuで難読化を実行します。 この時点では、難読化に成功します。
4. 難読化したアセンブリを起動すると、 「フィールドが見つかりません: '0.0'」 といったメッセージで、例外が発生します。
===========
以上の手順で症状が確認できます。
3.1.1以降で確認できました。 3.1.0以前では、問題ありませんでした。
こちらで分かった範囲では、C#のコンパイラがアセンブリを生成する際に 名前空間が無いところに 「<PrivateImplementationDetails>〜」というクラスを吐き出すことがあるのが 一因のようです。 難読化時に、このクラスを除外したところ、問題なく動作するようになりました。
こちらの環境は、次のようになります。
NanDoKu: 3.1.1 または 3.1.2 OS: Windows XP Pro SP3 開発環境: Visual Studio 2005 Professional Edition および Visual Studio 2008 Professional Edition
お忙しいところ申し訳ありませんが よろしくお願いいたします。
|
|