さちこ(今日はパスタな気分な感じ?) 説明書 ===操作方法=== 本ツールを起動してから初回検索までの操作箇所は、だいたいTabキーでフォーカスが移動する順です。 ■「プロセス選択」 メモリ検索の対象にするプロセスを選びます。 リストの中身をダブルクリックで選択しても良いですし、シングルクリックなどで選択してからOKを押しても良いです。 新たにプロセスを選択すると、それまでの検索結果は無効になります。 なお、64ビットOSで動かした場合、プロセスリストの横に「ALL」というチェックボックスがあると思います。 チェックがOFFの状態では、32ビットプロセスしか表示されません。64ビットプロセスも表示したい場合は、チェックをONにして下さい。 ■「検索開始アドレス」「検索終了アドレス」 メモリ検索の対象にするアドレスを指定します。 16進数で入力します。 入力した後にフォーカスを移動すると、適当に補正されることがあります。 対象となるメモリは、読み書き可能な領域のみです。書き込み不可の領域は対象外です。 ■「アドレス分布範囲」 複数の数値のアドレスのうち、最大アドレスと最小アドレスの差を指定します。 初期値は2048になっているので、アドレスの差が2048バイト以内のアドレスの組み合わせは検索処理の対象になります。 アドレスの差が2049バイト以上の組み合わせも検索結果に表示されることがありますが、仕様です。 入力した後にフォーカスを移動すると、適当に補正されることがあります。 この数値が大きいと、処理に時間がかかる傾向があります。 ■「ウィンドウタイトルを←に変更」 検索動作とは直接関係ありません。ウィンドウタイトルを変更します。 0文字にすることも、空白文字にすることもできます。 多重起動時にそれぞれのウィンドウを区別するために使用しても良いですし、ボタンは押さずに単なるメモ欄として使用しても良いでしょう。 ■「↓検索数値(改行で複数個入力、2〜20個)」 矢印の下の入力欄(2つ並んだ入力欄の左側のほう)に、検索する数値を入力します。 入力できる値は整数のみです。先頭に0xを付けると、16進数で入力できます。 数値の前に2:や4:を付けると、255以下の数値でも2バイトや4バイトの数値として扱います。数値だけを入力した場合は、255以下であれば1バイト、256以上65535以下であれば2バイト、65536以上であれば4バイトとして扱います。 余計な文字や空行などは入れないで下さい。 ■「検索数値の名称(省略可能)↑」 矢印の上の入力欄(2つ並んだ入力欄の右側のほう)に、検索する数値の名称を入力します。 検索結果表示などで使用されます。 入力しなくても、検索に支障はありません。 ■「検索基準」 3つの中から、検索する数値のメモリ上の配置に応じて選択します。 ・汎用(範囲基準)  最大アドレスと最小アドレスの差が小さいアドレスの組み合わせを優先します。  例えばRPGで、   100000番地 1人目のHP   100002番地 1人目の最大HP   100004番地 1人目のMP   100006番地 1人目の最大MP  のようにメモリ上に配置されている数値を検索する場合に向いています。 ・一次元配列向け  (最大アドレスと最小アドレスの差)÷(アドレス同士の差の最大公約数)が小さいアドレスの組み合わせを優先します。  例えばRPGで、   100004番地 1人目のMP   100104番地 2人目のMP   100204番地 3人目のMP   100304番地 4人目のMP  のようにメモリ上に配置されている数値を検索する場合に向いています。 ・二次元配列向け  入力数値の個数の約数をnとすると、全体をn個ずつに分けたグループ内の数値のアドレスや、n個おきにピックアップした数値のアドレス同士に関連がありそうなアドレスの組み合わせを優先します。約数が1とそれ自身以外に複数存在する場合もありますが、その場合は複数調べます。  例えばRPGで、   100000番地 1人目のHP   100002番地 1人目の最大HP   100004番地 1人目のMP   100006番地 1人目の最大MP   100100番地 2人目のHP   100102番地 2人目の最大HP   100104番地 2人目のMP   100106番地 2人目の最大MP   100200番地 3人目のHP   100202番地 3人目の最大HP   100204番地 3人目のMP   100206番地 3人目の最大MP  のようにメモリ上に配置されている数値を検索する場合に向いています。(この場合、4個ずつに分けたグループや、4個おきにピックアップした数値のアドレスの組み合わせに関連がありそうなので。)  入力数値の順番も重要です。  これらの数値に加えて、パーティーの所持金も同時に検索したい場合などには向いていません。  入力数値の個数が素数の場合には、「二次元配列向け」を使う意味はありません。 ■「検索」 「検索数値」と「検索基準」に従って検索を実行します。 検索処理には時間がかかります。 検索中は一切の操作ができません。検索中止もできません。 一度目の検索結果をふまえた「絞り込み検索」の機能は実装されていませんので、再び検索したい場合は「検索結果消去」ボタンを押して下さい。 ■「検索結果消去」 検索結果を全て消去して、未検索の状態に戻します。 ■「検索結果表示欄」 「検索基準」の選択に応じた適当(いいかげん)な計算式を用いて、アドレスの組み合わせの候補をランキング形式で表示します。 例えば「RPGでレベルとHPと最大HPを検索数値として入力したけど、最大HPはレベルの数値から自動的に計算されるので直値としてはメモリ上に存在しない」のような場合にも対応するために、一部分の数値のみのアドレスの組み合わせの候補も表示します。 有効数値の個数別のランキング・総合ランキング・全ランキングの一括表示を切り替えることができます。総合ランキングは、かなりいいかげんです。 表示内容の適当な箇所をそのままコピーして改造コードとして使用できますが、それが適切なアドレスかどうかはわかりません。 ■「改造コード/内容表示アドレス入力欄」 改造コード、または内容を表示したいアドレスを入力します。 ;(セミコロン)以降は行末までコメント扱いとして無視されます。 改造コードとして使えるのは 00402238-F001 のような、アドレスは8桁以内の16進数、データは偶数文字数の16進数の形式だけです。 正常に書込みできる場合は、 00402238-F001 の1行と 00402238-F0 00402239-01 の2行の実行結果は同じになります。 00402238 のようにアドレスのみ記述した行は、「全書込」ボタンや「選択範囲書込」ボタンを押したときの動作に影響を与えません。「メモリ内容表示欄」のための記述行になります。 入力欄全ての改造コードを実行したい場合は「全書込」ボタンを押して下さい。 入力欄のうち一部分の改造コードだけを実行したい場合は、その部分のテキストを選択して反転表示されている状態で「選択範囲書込」ボタンを押して下さい。この場合、行の途中から選択して不適切なアドレスになったりしないように注意して下さい。 途中の行を処理中にエラーが発生した場合でも、次行以降の処理を続けます。 ■「メモリ内容表示欄」 「読込」ボタンを押すと、「改造コード/内容表示アドレス入力欄」の改造コードのアドレス部分、およびアドレスのみの記述行のアドレスの内容を読んで表示します。 アドレス:16進で4バイトダンプ 1バイト整数 2バイト整数 4バイト整数 の形式で1バイトずつ表示されます。 4バイト読めなかった場合でも、1バイト以上読めればエラーは出しません。そのアドレスから1バイトも読めなかった場合はエラーを出します。 途中の行を処理中にエラーが発生した場合でも、次行以降の処理を続けます。 表示内容の自動更新機能はありません。 ===その他=== ■入力欄や表示欄の大きさ 複数行の入力欄や表示欄は、ウィンドウサイズを変更するとそれに応じて大きさが変更されます。 また、「検索数値」と「検索数値の名称」の境界線や、「検索結果表示欄」と「改造コード/内容表示アドレス表示欄」と「メモリ内容表示欄」の境界線は左右に動かすことが可能です。 ■仕様、制限事項 正しいアドレスが出てこない可能性もあります。 検索処理には時間がかかります。入力数値によっては、莫大な時間がかかる可能性があります。 検索中は一切の操作ができません。検索中止もできません。 一度目の検索結果をふまえた「絞り込み検索」の機能は実装されていませんので、再び検索したい場合は「検索結果消去」ボタンを押して下さい。 例えば、メモリの内容が 00402238:C5 00402239:01 0040223A:51 のようになっている場合、2バイトの数値2つ 0x01C5 0x5101 を検索すると、検索結果として 00402238-C501 00402239-0151 が出てくる可能性が高くなります。2つの2バイトの数値の領域が重なっているので不適切な結果かもしれませんが、仕様です。 ■「検索開始アドレス」「検索終了アドレス」 初期値のアドレスで見つからない場合は検索終了アドレスを大きくしたり、ターゲットプロセスのメモリマップがある程度判明している場合は検索範囲をそれに合わせて狭くしたりしてみて下さい。 ■多重起動可能 このツールは多重起動を制限していません。 「二次元配列向け」のパラメータと「二次元配列向け」ではないパラメータとを同時に検索したい場合などには、多重起動で対応して下さい。 ■注意点 途中でターゲットプロセスが終了したときの動作は未確認です。 メモリが足りない時の動作は未確認です。 ■その他 ツールの名称は、実在の人物の名前や行動とは一切関係ありません。物語の登場人物とも関係ありません。 作者の名称は、実在のゲーム(の登場キャラクター)とは関係あります。 ツールの紹介文や説明書には登録商標等の記述も含まれますが、明記するのは面倒なので省略します。 ■配布場所(2011年10月17日現在) http://milfa.akari-house.net/sachiko_b.html (ツールの配布場所) http://milfa.akari-house.net/ (トップページ) ■更新履歴 ・2011/10/17 初公開