簡素なアイコンモジュールNo.16591
agf さん 04/02/09 15:43
 
こちらに書き込むのは適当ではないかもしれませんが、
何方か原因がわかる方がいましたら教えてください。

簡素なアイコンモジュールを使用すると
「アプリケーションまたはDLLは正しいWindowsイメージではありません。
これをインストールディスクのファイルと照合してください。」
と警告ダイアログが表示され使用することができません。
他の方は問題なく使用できているのでしょうか?

OS Windows XP
鶴亀メール Ver3.18

[ ]
RE:16591 簡素なアイコンモジュールNo.16594
秀まるお2 さん 04/02/09 17:25
 
 アイコンモジュールは、実は内部的には、いわゆる「DLL」となってまして、
プログラムの一部としてLoadLibrary関数にてメモリ上にロードしています。そ
れでエラーが出ているようです。

 LoadLibraryに失敗しても、ExtractIconEx関数にてアイコンだけは取り出せて
いるようです。でもツールバーは出ません。

 SetErrorMode()を使ってもエラーメッセージは回避できませんでした。

-----それで仕方なく---------

 作者さんがライブラリに登録された時にメールアドレスを入力してもらってい
たようなので、先ほどメールを出してみました。ただ、本当のメールアドレスを
入力してもらってるかどうか不明なので、お返事が届くかどうかは今のところ分
かりません。

----------------------------

 で、今回の話で思ったのは、もしかして悪意のあるユーザーさんが、自分で作
ったプログラムを「鶴亀メールのアイコンモジュールですよ!」と偽って、ある
いは実際にアイコンモジュールとしても動作するようにしつつ、悪意のあるプロ
グラムを埋め込んで、それを実行させてしまうことが可能であることが分かりま
した。具体的には、鶴亀メールがLoadLibraryすると、DLL側のDllMain()関数が
呼び出されて実行されまして、そこで何でも出来てしまいます。

 ということで、これはこれでよくないんじゃないかと思うようになりました。
特に、アイコンモジュールがプログラム的にロードされてることは、一般ユー
ザーさんは知らないということも問題だと思いました。

 ってことで、いろいろ調べたら、LoadLibraryExという関数があって、これの
パラメータに「LOAD_LIBRARY_AS_DATAFILE」を指定する手があることが分かりま
した。こうすると、DLL内のプログラムは実行されません。

 今回のこの「簡素なアイコンモジュール」も、LoadLibraryExでロードすれば
エラーが出ないようです。

---------------
 ということで話が長くなってしまいましたが、セキュリティ的なことも考えて、
LoadLibraryExにてロードするように直します。結果、簡素なアイコンモジュー
ルも問題なく使えるようになります。

 今日アップロード予定のV3.19にて対応させていただきます。

[ ]
RE:16594 簡素なアイコンモジュールNo.16597
秀まるお2 さん 04/02/09 17:47
 
 Windows98だと元々エラーにならないようです。

 逆に、LoadLibraryExにした方が、Windows98ではうまく動作しないようです。

 ってことで、今日中にバージョンアップできないかもしれません。少々お待ち
を。

[ ]
RE:16597 簡素なアイコンモジュールNo.16602
agf さん 04/02/09 21:01
 
Ver3.19で使えることを確認しました。
ありがとうございました。

[ ]
RE:16602 簡素なアイコンモジュールNo.16605
it_den8 さん 04/02/10 01:31
 
ご迷惑をおかけして申し訳ありませんでした。

秀まるお2 様
 対応ありがとうございました。

[ ]