The project of U-WA-
http://uwa.potetihouse.com/
トップページ > 過去ログ > 記事閲覧
アイコン 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

お忙しいところ申し訳ありませんが
よろしくお願いいたします。

Page: 1 |

ファイル Re: NanDoKu:難読化後、特定の場合に動作せず ( No.1 )
日時: 2008/12/03 18:59
名前: Toki◆pRU.c9X.EOI

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

Version 3.1.1で行った名前空間の無いクラスへの対応が不完全でした。
修正版をULしましたので、確認をよろしくお願いいたします。

ファイル Re: NanDoKu:難読化後、特定の場合に動作せず ( No.2 )
日時: 2008/12/04 01:11
名前: seaside stars

こんにちは。seaside starsです。
早速のお返事、ご対応ありがとうございます。

NanDoKu 3.1.3にて、難読化を試しましたところ
問題なく、正常に動作するようになりました。


修正版ありがとうございます。
今後ともよろしくお願いいたします。

Page: 1 |