The project of U-WA-
http://uwa.potetihouse.com/
トップページ > 過去ログ > 記事閲覧
アイコン 【NanDoKu】アセンブリ設定後にエラーが発生
日時: 2010/08/03 18:37
名前: Josyo

「NanDoKu」を使用させていただいております。

アセンブリ設定の画面で、難読化を行うプログラムにアセンブリを設定し、
「OK」ボタンを押すと即エラーが発生しましたので報告いたします。


以下の手順で作成した「クラスライブラリ」を難読化しようとすると発生しました。

手順1.[ファイル]-[新規作成]-[プロジェクト]で「クラス ライブラリ」を選択し[OK]

手順2.プロジェクトのプロパティで以下のように設定
     構成:Release
     プラットフォームターゲット:x86

手順3.ソリューションのビルドを実行

上記の手順で作成したクラスライブラリの読み込みでエラーが発生します。

尚、
「プラットフォームターゲット:Any CPU」でビルドしたクラスライブラリではエラーが発生しませんので、
「プラットフォームターゲット:x86」が影響していると思います。

この現象は「Visual Studio 2005 Professional」「Visual Studio 2010 Professional」の
どちらで作成したクラスライブラリでも発生しました。

発生するエラー内容は以下の内容です。
=========================================================================
アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。
[続行]をクリックすると、アプリケーションはこのエラーを無視し、続行しようとします。
[終了]をクリックすると、アプリケーションは直ちに終了します。

は有効な Win32 アプリケーションではありません。(HRESULTからの例外:0x800700C1)

************** 例外テキスト **************
System.BadImageFormatException: は有効な Win32 アプリケーションではありません。 (HRESULT からの例外: 0x800700C1)
場所 System.Reflection.Assembly.nLoadFile(String path, Evidence evidence)
場所 System.Reflection.Assembly.LoadFile(String path)
場所 ).). ({ )
場所 -.=.)()
場所 ((.(.=(Object , EventArgs ()
場所 ().}.((EventArgs )
場所 ().}.((Object , EventArgs ()
場所 System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
場所 System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
場所 )(. . (Object , EventArgs ()
場所 System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
場所 System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
場所 System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
場所 System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
場所 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
場所 System.Windows.Forms.Control.WndProc(Message& m)
場所 System.Windows.Forms.ToolStrip.WndProc(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
=========================================================================

開発環境は、
・NanDoKu 3.2.6
・Windows 7 Ultimate(x64bit)
・Visual Studio 2005 Professional
・Visual Studio 2010 Professional

64bit環境の影響なのかもしれませんので、デバッグ用のEXEをいただければ
当方で動作確認のお手伝いをさせていただくことも可能です。

Page: 1 |

ファイル Re: 【NanDoKu】アセンブリ設定後にエラーが発生 ( No.1 )
日時: 2010/08/06 19:54
名前: josyo

再度、確認した結果を連絡します

(1)VisualStudioで[ファイル]-[新規作成]->[プロジェクト]で「クラス ライブラリ」
でプラットフォームターゲットを「x86」でdllを作成

dllはXP+VS2005 でも Win7+VS2010で作成したものでも(2)の結果は同じです

(2)これを Nandoku3.2.6で[新規作成]->[dll指定]->[OKをクリック]
XP(x86) + VS2005 + Nandoku3.2.6 では正常動作
Win7(x86) + VS2010 + Nandoku3.2.6 では正常動作
Win7(x64) + VS2010 + Nandoku3.2.6 では即エラー発生

やはりx64のOSで x86 dll が関係するようです

宜しくお願いします
ファイル Re: 【NanDoKu】アセンブリ設定後にエラーが発生 ( No.2 )
日時: 2010/08/12 18:30
名前: Toki◆pRU.c9X.EOI

Nandokuはアセンブリの構造を解析するために
アセンブリをロードしています。
このため、プラットフォームが違うdll(exe)を指定すると、
ロードに失敗して即エラーになると思われます。

アセンブリを逆コンパイルしたソースから
構造解析が出来ればいいのですが、
それは難易度が非常に高いため行っていません。

構造解析を元にして
逆コンパイルしたソースファイルに手を加えているだけです。

この問題は、今の手順で行っている限り解決は出来ないと思います。
申し訳有りません

ファイル Re: 【NanDoKu】アセンブリ設定後にエラーが発生 ( No.3 )
日時: 2010/08/17 18:29
名前: josyo

回答ありがとうございます
VMWareで32bit環境を動かして利用することにします
本ソフトは大変に気にいっています
さらなる発展を期待しています

Page: 1 |