とりあえずの、ざっと簡単な説明だけなので
あとで綺麗に書き直します。たぶん。
x64dbg用のプラグインです。
SkyrimSE.exeがバージョンアップするたびに、関数とかのアドレスが変わるのが面倒くさいよー!っていう人むけです。
関数やオブジェクトの特徴を覚えて記録しておくことで、関数に張ったラベルを張り直す手伝いをしてくれます。
ここから Secunda.zip をダウンロードしてください。アーカイブを解凍してSecunda.dd64をx64dbgのプラグインフォルダにコピーしてください。
まずは、CPUビュー上で覚えさせたい関数にラベルを張ってください。「:」 キーを押せば張れると思います。
次にラベルの位置から数行範囲選択して
右クリック → SECUNDA MOON → Create signature を選択してください。
Create Signature ウィンドウが開きます。
さきほど選択したコード部分から、関数を検索するためのコードが自動で生成されます。
下段テキストボックスに表示されているHEXの羅列が、検索のためのHEXコードです。
「Ctrl+B」を押すとでてくる「パターン検索」で使えるやつです。
.exeのバージョンが変わると変更されそうな部分は自動的に「??」に置き換えてくれますが、もし細かい調整が必要なら、チェックボックスをON/OFFすることで調整可能です。
デフォルトだとショートジャンプ命令も「??」にしていますが、これはOFFでも良いかもしれません。
この時点では、まだ「OK」ボタンは押せません。
「Scan」ボタンを押すと、実際にこのコードで検索可能かどうかスキャンしてくれます。結果はx64dbgのログビューに出力されます。最下段のステータスにも表示されます。
検索結果が1件だけに絞れた場合は、「OK」を押せるようになります。複数ヒットする場合は特徴点として使えません。その場合は選択行を増やして検索コード自体を長くするなどして対処してください。
「OK」を押せば登録完了です。
また下画像のように、関数やオブジェクトへのリファレンスからも、特徴点を作成することができます。
関数の行数が短すぎて特徴点を作れない場合などは、リファレンスから作成すると良いでしょう。
登録を消したい場合は、ラベルの上で右クリック → SECUNDA MOON → Remove signatureを選択してください。
登録したラベルを一覧表示したい場合は、x64dbg上部のメニューから
プラグイン → SECUNDA MOON → Show signatures を選択してください。リファレンスビューに一覧が出力されます。
リファレンスビューを自動で開いてくれたりはしないので、リファレンスタブをクリックするか「Alt+R」を押してください。(ビューの切り替えはプラグインではできないみたいなので。すみません)
登録をファイルに保存する場合は、同様に x64dbgのメニューから
プラグイン → SECUNDA MOON → Save signature fileを選択してください。
.json形式で記録されるので、テキストエディタで開いて編集することも一応は可能です。
保存したファイルを読み込む場合は、メニューからOpen signature fileを選んでください。新しいバージョンだった場合、保存したデータから自動で検索してラベルを張り直してくれます。
また、skse64で使っている関数やオブジェクトをすべて登録したファイルを Scanda/sigfiles/SKYRIMSE_SIGNATURES.json に置いてあります。よろしければ使ってください。
ここまで書いてから気が付いたのですが、このプラグイン、SkyrimSE.exeのバージョン違いの判断はファイル名を見て判断してます。
実行ファイルをバージョンごとに SkyrimSE_1_5_97.exe などリネームして管理するといいと思います。
steamlessなどでSkyrimSE.exeにかかっているDRMを解除してから、バージョンごとにリネームしておくといいんじゃないでしょうか。