プラグインメニュー
概要:改造コードからプラグインへの移行と経緯について
当ソフトウェアは機能を拡張するプラグイン(実体はDLLファイル)に対応しています。さらに、当ソフトウェアでは、特定プロセスへのプロセスメモリ書き換えについて、改造コードのみによるアプローチから、プラグインを用いたアプローチへの移行をお勧めしています。これは、以下の経緯によるものです。 日本においては、1990年代から多くのプログラム解析ツールが公開されてきました。その中には「改造コード」と呼ばれる独自形式のスクリプトを用いることで、プロセスメモリやファイルの書き換えを自動化できるものもあります。汎用プロセスメモリエディタ兼デバッガ『スペシャルねこまんま57号』および、その後継である当ソフトウェアも改造コードに対応しています。ただし、この各プログラム解析ツール用の改造コードに対しては、「高機能化に伴う書式の複雑化(学習コストの増加)」や「独自形式ゆえの汎用性の欠如」といった複数の問題点が古くから指摘されていました。 そこで、当ソフトウェアでは、上記の問題点の解決策として、「メジャーな開発言語であるC++言語で製作したプラグイン」へ対応しました。さらに、当ソフトウェアの新型32ビット版「UsaMimi32.exe」と64ビット版「UsaMimi64.exe」では、既存の「UsaMimi.exe」用改造コード書式のうち書式が複雑なものへの対応を見送りました。これは、複雑なプロセスメモリ操作ならば、改造コード使用ではなくプラグインを自作した方がより簡単で高度な操作が可能になること、そして現在では、プラグインの自作に使用可能な「Visual Studio Community」(当ソフトウェア作者Webサイトから入手先にリンク)など無償で高機能な統合開発環境が配布されているという理由によります。 なお、新型32ビット版「UsaMimi32.exe」と64ビット版「UsaMimi64.exe」で、既存の改造コード書式のうち、ごく基本的な書式の改造コードはそのまま使えるようにしたのは、改造コードの簡便さを考慮してのことです。 当ソフトウェアのプラグインについては、サンプルのソースコード集を配布していることから、統合開発環境「Visual Studio Community」に含まれる統合開発環境「Visual C++」を用いたプラグイン製作は決して難しいものではありません。「Visual C++」はメジャーな開発言語であり、プラグインのサンプルを改変して新規プラグインを自作するために必要な情報やソースコードは、ネット上での入手が比較的容易といえます。さらに、プラグインのサンプルのソースコードにも、改変して新しいプラグインを製作するための各種解説を挿入しています。メジャーな開発言語でのプログラミングという経験を通して、当ソフトウェアのプラグイン製作にとどまらず、独自のプログラム解析ツールも自作できるようになることが期待されます。「Visual C++」のインストールについては、当ソフトウェア同梱のPEエディタ「UMPE」に実装した、「仲介DLL(Proxy DLL)ソースコード出力機能」の解説内にある「コンパイルと仲介DLL適用」を参照願います。 当ソフトウェア用プラグインのサンプルのソースコードは、当ソフトウェア作者Webサイト「Digital Travesia」のTools欄で配布しています。このプラグインのサンプルは、当ソフトウェア同梱のプログラム解析練習用「UsaTest2.EXE」とその64ビット版「UsaTest2_x64.exe」のプロセスメモリを書き換えるものです。ダイアログを表示し、書き換える任意の数値を入力してからプロセスメモリを書き換えたり、リストで書き換え対象アドレスと値を選択して書き換え、さらに検索と書き換えの半自動化処理等に対応しています。また、独自のプログラム解析ツール製作にも役立つよう、対象プロセスのモジュール情報取得や、多重ポインタをトレースといった一部のプロセス関連処理を関数の形にまとめています。なお、このプラグインのサンプルは、「Visual C++ 2010」や「Visual C++ 2017」および「Visual C++ 2019」でコンパイルを確認しています。 特定プロセス用のプラグインの使用時には、当ソフトウェアでのプロセス選択操作を省略可能です。この場合、ランチャーあるいはショートカットの設定で、当ソフトウェア起動時のオプションに対象プロセスの実行ファイル名を指定します。対象プロセスの実行ファイルがUsaTest2.EXEならば、オプションは「/UsaTest2.EXE」(「」は不要)を指定します。当ソフトウェアには、プログラム解析用途も想定した、汎用のボタン型ランチャー 「NekoLaunch」を同梱していますので、使用されることをお勧めします。当ソフトウェアでの、プロセスの選択操作についての詳細は、解説「操作上の基本注意事項」を参照願います。 |
マネージャ
当ソフトウェアのプラグイン対応に関する解説は上記を参照願います。 このダイアログではプラグインを管理します。当ソフトウェアのインストールフォルダ直下の「Plugin」フォルダにあるプラグインをリストアップし、リスト上で選択されたプラグインの情報を表示します。第三者が製作したプラグインは、この「Plugin」フォルダに導入してください。UsaMimi64.exe用の、64ビット版のプラグインならば「Plugin64」フォルダです。32ビット版のプラグインと64ビット版のプラグインに互換性はありません。 プラグイン対応各種ソフトウェアの機能拡張用プラグインと称して、マルウェア(悪意のあるソフトウェア)のDLLファイル版が匿名で配布されることもあります。また、既存の正規のプラグインを偽って、同様にマルウェアが匿名で配布されることもあります。 そのため、このマネージャ画面では、ファイルサイズ、MD5およびSHA-1を表示可能にしています。この3つの情報をプラグイン作者の配布元で公開しておけば、たとえ偽のプラグイン(マルウェア)が再配布と称して匿名で配布されても、プラグインのユーザーは被害を回避する可能性が高まります。また、プラグインの作者はあらぬ疑いをかけられることを回避できます。 このマネージャでは、ユーザーが数値や文字列を入力できるエディットボックスを実装しています。これにより、プラグイン作者としては、ダイアログを用いなくともユーザーがインタラクティブな操作を行える、シンプルなプラグインを簡単に製作可能です。なお、無償の統合開発環境「Visual Studio Community」が配布されていることや、ダイアログベースのプラグインサンプルのソースコード集を配布していることから、新型32ビット版「UsaMimi32.exe」および64ビット版「UsaMimi64.exe」では、この必要性が低下したエディットボックスは廃止しました。 |
●画面説明![]() ●プラグイン ■プラグインリスト(リストボックス) プラグインを一覧表示します。メニューでは表示するプラグインの上限を16に設定していますが、このリストボックスでは全てのプラグインを表示します。 ■プラグイン情報(エディットボックス) プラグインの説明、ファイルサイズ、MD5およびSHA-1を表示します。 ●プラグイン起動 ■プラグイン起動 選択されたプラグインをロードして起動(UHPinit関数呼び出し)します。 ●画面サイズ変更 ■-/+ 画面サイズを縮小・標準モードに変更して表示します。 ●ユーザー入力欄(上限64文字) ■入力1~7 プラグインと、プラグインのユーザーがやり取りを行うための数値や文字列を入力します。入力上限は64文字です。入力7は改行が可能です。 |
自動生成メニュー項目(各プラグインDLL名)
当ソフトウェアのプラグイン対応に関する解説は上記を参照願います。 このメニュー項目は、当ソフトウェアのインストールフォルダ直下の、「Plugin」フォルダにあるプラグインをリストアップし、そのDLL名で追加したものです。このメニュー項目は、追加の上限を16項目に設定しています。第三者が製作したプラグインは、当ソフトウェアの起動前にこの「Plugin」フォルダに導入してください。UsaMimi64.exe用の、64ビット版のプラグインならば「Plugin64」フォルダです。32ビット版のプラグインと64ビット版のプラグインに互換性はありません。 このメニュー項目では、マネージャを介さずに直接プラグインを起動します。下記の理由により、第三者が製作したプラグインの初回使用時には、マネージャでプラグインの正当性を確認してください。 プラグイン対応各種ソフトウェアの機能拡張用プラグインと称して、マルウェア(悪意のあるソフトウェア)のDLLファイル版が匿名で配布されることもあります。また、既存の正規のプラグインを偽って、同様にマルウェアが匿名で配布されることもあります。 そのため、マネージャの画面では、ファイルサイズ、MD5およびSHA-1を表示可能にしています。この3つの情報をプラグイン作者の配布元で公開しておけば、たとえ偽のプラグイン(マルウェア)が再配布と称して匿名で配布されても、プラグインのユーザーは被害を回避する可能性が高まります。また、プラグインの作者はあらぬ疑いをかけられることを回避できます。 |