SX OSのチートコードをJNoexsでサーチしよう・・その2

前回はSwitch側で動作するJNoexsの設定でした。

今回はPCからサーチするところまでです。

 

 

 


・必要なもの

JNoexs

Java10

hekateを起動できるSwitchの環境


・JNoexsClient(PC側)の導入

Switch側の設定がまだの方は、前回の記事を先にご確認ください。

JNoexsからnoexs-1.0.1-release.zipwダウンロードします。
現在、バグフィックスがリリースされてますが、自分は上記バージョンで試したため、上記のバージョンで話を進めます。

JNoexsClientはJava10上で動作するので、Java10をインストールしておいてください。


・JNoexsClientの設定

noexs-1.0.1-release.zipwを解凍すると、「JNoexsClient.jar」があるので、起動します。

起動してこない場合は、「JNoexsClient.jar」を右クリックし、「プログラムから開く」>「Java(TM)Platform SE binary」を選択すれば動くかも。

 

無事起動したら、↓のような画面が表示されます。


・JNoexsClientの操作

最初に、Switch上でメモリをサーチするゲームを起動しておきます。

 

次に、「IP Address」の欄に、SwitchのIPを入力し、「Connect」をクリックします。

 

Switchと接続されると、「Status」が「Connected」になります。

 

接続されたら、最初にPIDを取得するため、「Refresh Pids」をクリックします。画面右にPIDの一覧が表示されます。

 

PIDをクリックすると、「Titile ID」が表示されるので、目的のゲームのゲームのPIDを探します。

目的のゲームのPIDを選択し、「Attach to Process」をクリックします。

 

早速、カービィで残機のサーチを試します。
「Search」のタブをクリックします。

 

ゲーム上では残機が7です。

まずは、7でサーチしてみます。
ValueはHEXで入力します。
10進数で入力し、「Convert Decimal to Hex」でHEXに変換できるのが地味に便利です。

 

サーチ中はゲームが止まります。
「Resume Game」で動作させることができます。

・・最初、フリーズしたかと思いました。

自分はポンコツ無線LAN環境で、PCからサーチしてるので、初回のサーチは5分程度かかりました。

 

サーチが終わると、右手の一覧に結果が表示されます。

80000とか、ちと多いので、残機を減らして、再度、サーチします。

残機を6にして、再度サーチ開始!

長いのは初回だけで、2回目以降は割と早いです・・当たり前ですが・・・

 

30か・・まだ多いので、もいっちょ減らした結果、3個に。

 

とりあえず、1個ずつ右クリックして、「Watch List」に入れていきます。

 

後は、「Watch List」上で、値を変動させてみて、当たりを確認していきます。

チェックをUpdateからLockedに変更。
Valueを増減させ、残機が変わるかをSwitch上で見ていきます。

結果、「215FEB81B8」が残機のアドレスだとわかりました。

 

このアドレスは、最初の「Tools」のタブで確認すると、HEAPアドレスのようです。

 

ということは、毎回、変動するので、この見つけたアドレスをコード化しても、変動しまくるので、あまり意味がありません。

変動アドレスをコード化したい場合、変動アドレスを指し示すアドレスを特定する必要があります。ポインターアドレスですね。

 

さて、続けて、ポインターアドレスを探していきます。

まず、指し示すアドレスがあるはずのmainアドレスを全てダンプするため、「Tools」を開き、mainのアドレスを確認します。

mainの最初を右クリックし、「Search(Start)」をクリックします。

 

続いて、mainの最後を右クリックし、「Search(End)」をクリックします。

 

「Search」のタブをクリックします。
StartとEndにアドレスが設定されています。

 

「Restart Search」をクリックし、リセット後、「Search」をクリックします。
※ mainをダンプするのが目的のため、Value等の条件は適当でOK

 

「Pointer Search」のタブをクリックします。
「Browse」から先ほどダンプしたmain部のファイルを選択します。「Dump File」と「Index File」は同じフォルダに作成されています。

 

続いて、Addressにサーチした結果「215FEB81B8」を。
Max Offsetは指し示すアドレスから最大どのくらい乖離を許容するかの値を。まぁ適当に「00F00000」としました。

緑の枠線の「main」に、サーチ時にstartに設定したmainのアドレスを入力します。

これで、右手の「Search」をクリック。

 

結果が3つも出ました。

 

後はこれを「SXOS_CodeBuilder」でコード化すればよいだけですが・・ん~、長い。

コード化は次へ。

 

続く。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください