アイテムのアドレスに常時アクセスしている命令を見つけます。その命令にスクリプトを組んでアイテムのベースアドレスを自分が確保したメモリにコピーし、シンボルに登録してスクリプト外でも使えるようにします。シンボル名を仮にitemBaseとします。これでスクリプトをオンにした瞬間にアイテムのベースアドレスを検出できます。structuresを使ってすべて洗い出します。オフセットF0がアイテム1オフセットF4がアイテム2のような感じになってるはずです。上で作ったスクリプト1の子供としてもう一つスクリプト2を作ります。]という感じで各種アイテムにアクセスできる状態になっています。セクションにアセンブラで各種アイテムを1ずつ増やしながら、600回ループするように書きます。スクリプト1をオンにすれば自動でスクリプト2をオンにするように設定します。スクリプト1にホットキーを設定します。F1などこれでゲーム中、任意のタイミングでオン、オフできるはずです。スクリプト1に全ての処理を書いてしまうと、このスクリプトを組んだ命令自体がミリ秒単位で実行されているため、すぐカンストしてしまい下手するとゲームがクラッシュします。1と2に分けています。だいたいこんなイメージです。実際にやっていないので、間違っているかもしれませんがご了承ください。HP,OP,STのアドレスとそれらの上限値は+4バイトした位置にあるみたいです。HP,OP,STのスクリプトは同じようは手順の書き方で適応できるとおもいました。OPを9999にしたいというのは、OP同様にHPを固定するスクリプトを有効にしても一撃で即死する強攻撃を受けると一気にHPが0になってしまい死んでしまうからです。ちなみにサーチして取得したHPのアドレスの数値を固定して試した場合は即死する攻撃を受けても死なないです。それと毒などの継続ダメージも固定できているようで150→149→150といった感じです。スクリプトの方だと継続ダメージは受付ずそのままHPが減っていきます。その状態で敵の攻撃を受けて実際に死なないダメージならHPが全回復して即死ダメージだと死にます。このダメージ処理を無効化するか常時固定化できるまたは、固定化を最優先にできるようにしたいと思ったためです。スクリプトで上記の内容+値を9999にするか、どちらか一つは適応したいです。returnこのようにすればOPを9999に出来るのを確認しました。スクリプトオンと同時にではなく銃を撃つと9999になります。スクリプトを組んだ命令が、銃を撃った時に実行される命令だからです。address」を実行した状態で即死攻撃を受ければ何かわかるかもしれません。このゲーム自体チートをするために少し触っただけなので、完全にテストできていません。「サーチしてもベースアドレスの取得ができない」についてですが、これは静的アドレスのことでしょうか?それでしたら、ポインタースキャンを使えば見つかるかもしれません。参考になる動画https://www.youtube.com/watch?v=SFr0nRjDJfEあとHPのアドレスを自動検出するスクリプトを作りましたので、これで値を固定すれば無敵になっているはずです。手順は以下のようになります。・自分と味方のHPを見つける・自分と味方1と味方2を区別する値を見つける・自分のHPにアクセスしている命令を見つける・その命令にスクリプトを組む・手動でシンボルに登録したアドレスとオフセットを入力して完成後日記事にします。コメントありがとうございます!ゴッドイーターリザレクションは持ってないですねー。検索範囲を絞り、スキンを変更した後と前で変わった値を見つけにいく感じですかね。Googleで検索すれば似たようなケースが見つかるかもしれないです。OPの9999できました!HPとSTも同様にできました。HP9999も攻撃受けてからなるのですが、最初の一撃が即死ダメージだと上限値が9999になりますがHPが0になり死にます。それからHPのアドレスにアクセスしてある命令を見ていると戦闘不能になったときに一つだけ別のアドレスに思える命令を見つけました。これをスクリプトにしてHP,OP,ST同様に追記すると戦闘不能にならなくなりました。正確に言うとHPが0になると戦闘不能にならずそのままHPが全回復します。即死ダメージではなかった場合はそのままダメージを受けHPが減ります。HPのスクリプトと併用すればHP全回復)そして問題はここからです。これはサーチして特定したHPのアドレスを直接固定しても同じ結果になります。即死ダメージを受けて死ななかった場合、JG(ジャストガード)とダイブガード(ダイブJGも含む)ができなくなります。JGに関しては判定そのものがない感じで攻撃がすり抜けます。ガードとジャストガードの処理は別物ということかもしれないですね。通常ガードだけならできます。加えてこの状態でスクリプトまたは、固定をOFFにして攻撃を受けてもHPが一切減らなくなります。その問題はきっとゲーム内部の処理ではHPが0だからだと思います。これを解決するにはゲーム内部の処理でHPを減らしたり増やすことで解決します。具体的にはアイテムの回復錠を使ったり回復効果のあるアクセルトリガーを発動させる、敵の能力であるフィールドで継続回復または継続ダメージを受けることでJGとダイブガード(ダメージJGも含む)ができるようになり敵の攻撃を受けるとちゃんとHPが減るようになります。この問題にならないようにスクリプトを組むことは難しそうですか?アイテムのアドレスについてはそうだと思います!(サーチして緑色のアドレスです)この緑色のアドレスはもちろんヒットするのは0件で全くダメでした!ポインタースキャンの動画見てみたんですがよく分かりませんしでした。(どうしてこうなったんだろうとか今のどうやってやったんだろうとばかりw)できればで大丈夫なのですがポインタースキャンの方法を具体的に教えて頂けると嬉しいです!スクリプトでHPのアドレスを特定する方法ですか!記事楽しみにしています。ガード判定がなくなるのは謎ですね。即死攻撃とアイテムを使って回復したときの処理ルーチン付近を、見ていくのが1つの手です。address」を実行した状態で即死攻撃を受けると、通常攻撃を受けた場合とは別の命令が表示されるはずです。nothing」で潰してみたり、その付近の命令や関数をブレークポイントを設定しながら観察するのも効果的です。アイテムのアドレスはこちらでも調べてみます。あと新しい記事追加したので、よかったら見てみてください。説明が足らない部分がありますが、後々肉付けしていきます。ポインタースキャンの記事は前々から書こうと思っていたので、さっそく書き進めていきます。新しい記事全て目を通させて頂きました!早速ですが記事内で、これでスクリプトを組む準備ができました。オフセットが150でプレイヤーをグループ1にNPCをグループ2に分ける所までは分かります。そこからどうやって7FF74CB28FDAのアドレスに飛んだのかが分かりません。healthBaseはシンボルリストに追加されることになっていますが、宣言されていませんと出て追加ができませんでした。作成して追加してあるOPスクリプトを複製してからコピペで無理やり追加はできましたが一部注入出来ないコードが存在します。healthBaseはシンボルリストに追加されることになっていますが、宣言されていません)これを編集しますか?とでます。いいえを押すと保存されずはいを押すと保存されます。文字は特に変わらずそのまま保存されるだけです。それから以前OP無限のスクリプトを教えて頂いたときもそうでしたが、AOB注入だとチャックを入れることができず有効化ができません。コンソールコマンドを使うと無敵に出来たり、レベルを上げれたり、アイテムの数を増やしたりなどチートをすることができます。魔物の巣でも金稼ぎができるね。革の取引はわからないな。拾った装備とかを高値で売れるところさがして売るしかねーなってことで主要なところだけ売却額を調べた。(つづき)調べたのは、適当に拾った売却額高めの剣と鎧、それとついでに真珠。調べたのはウーソン村とオクセンフルトの職人二人、アッパーミルのルーン細工師(金払って職人にしても金額変わらなかった)と商人、ケィアトロールトの職人二人と、名匠二人。(つづき)で、調べた結果なんだけど、基本的にハットリが全体的に高額買取りしてくれる(特に剣と真珠)。オクセンフルトの鍛冶屋もハットリと全く同じ買取額だった。(つづき)鎧についてはハットリよりオクセンフルトの鎧職人の方が少しだけ買取金額が高く、ケィアトロールドの鎧職人の方が更に高額買取だった。結論としては、スケリッジ以前はオクセンフルトでそれぞれの職人に売却で、スケリッジに行けるようになったら鎧だけケィアトロールドの鎧職人に売却するようにするのが最もいいと思われる。リンデンヴェイル墓地の動く像はイースターエッグ。ケィア・モルヘンの「廃墟となった信号塔」にある白骨死体からルートできる「罪悪感の剣(レリック・レベル17固定)」がセーブ&リロードで無限復活する。この剣は高値で売却可能なので金策に利用できる。あと「高度な脱出芸」のクエストで行く水中洞窟(鍵で開ける宝箱がある方)に落ちてる金がセーブ&リロードで無限復活する。一回ごとに450クラウン前後ゲットできるので、チートOKで楽に稼ぎたいならどうぞ。ニューゲーム+で始めたら素材あるのにニッケル鉱石だけが作れない。項目もニッケル鉱石だけバグってる感じ。こちらの記事通りの手順でベースアドレスの取得まではいけたのですが、16進数にチェックをいれて4バイトを選択して検索しても一つも見つかりませんでした。検索範囲はffffffffffffffという感じ広げており設定でも検索に関係しそうな項目はチェックしてます。8バイトにしても見つからないです。バイトと2バイトで検索するとたくさんでてきますが数が多すぎて(100万くらい)分かりませんし、絞る方法も分からないです。記事通り成功したアドレスもあります。HP,ST関連のアドレスだと上記のようにヒットしません。チートツールは複数存在していてどれが一番使いやすいのかわからない方もいるようです。Engineを紹介したいと思います。リバースエンジニアリングを趣味でやっています!英語のサイトや動画から学んだ内容を記事にしていこうと思います。Engineの使い方を覚えるには、実際のPCゲームで手を動かしながらやってみるのが一番効果的です。Engineを起動してアタッチしましょう。プレイヤーの体力の初期値は100になっているのを確認できるので、これを手掛かりにスキャンをかけていきます。すると、たくさんのアドレス(この場合だと596)がヒットしたので、ここから絞り込んでいきます。上のアドレスをダブルクリックして、アドレスリストに追加し、値を1000に変更してみましょう。この状態で値をフリーズすると無敵になります。厳密に言うと即死攻撃を受ければ死んでしまいます。これはおそらく、通常攻撃を受けた場合と、即死攻撃を受けた場合で処理ルーチンが違うためです。Engineの機能で入力した値をミリ秒単位で上書きし固定します。このアドレス(変数)はプロセスが起動してから動的に確保されたメモリ領域のため、ゲームを再起動すると参照できなくなってしまいます。これでは不便なのでさらに検索をかけ、このアドレスを保持しているポインタ変数を見つけにいきます。※スキャンしてヒットしたアドレスが黒字で表示されている場合は動的アドレスになります。Hexは16進数のことです。アドレスは16進数で表されるので、検索するときはこのチェックボックスをチェックします。スキャンすると何もヒットしません。これはそのままの意味でこのアドレスを格納しているポインタ変数が存在しないということです。対象のアドレスにアクセスしているコード(命令)または、書き込んでいるコードを見つけるというものです。address」を選択します。新しいウインドウが出現したと思うので、そのままゲームに戻り再度グレネードで自分にダメージを与えます。information」をクリックします。電卓のプログラマーモードでeaxの値を16進数で入力して10進数に変換すると、現在の自分の体力と一致するはずです。要約すると体力のアドレスDFA128にアクセスするために、edxの値DFA030を必要としているという意味です。DFA030というベースアドレスにオフセットのF8を足して、DFA128にアクセスしています。Engineのメインウインドウに戻り、EDXの値でアドレス検索をします。いくつかアドレスがヒットしました。ここで表示されているアドレスはすべてポインターです。これが静的アドレスと呼ばれる再起動しても消滅しないアドレスで、グローバル変数のアドレスを示しています。3つありますが、こういう場合はアドレス値の一番小さいものを使うのが基本みたいです。体力や弾丸のアドレスを特定しても、再起動すると参照できなくなるのはプレイヤーオブジェクトが作成されるアドレスがゲーム起動毎に変わるためです。Manually」をクリックしてアドレスを追加します。先ほど見つけたアドレス「509B74」とオフセットの「F8」を下記画像のように入力しOKをクリックします。このチートテーブルを保存しゲームを再起動して再度アタッチするとそのまま使用できることを確認できます。このポインター509B74に格納されているアドレスの近辺には体力以外にもプレイヤーの様々な情報があります。参考までにオフセットのF8を158に変更すればグレネードの保持数のアドレスになるので試してみてください。この記事では静的アドレスを見つけることにフォーカスしていますが、絶対に見つけなければいけないというわけではありません。Engineのスクリプトを使い、コードを書き換えてしまえば同じことが出来ます。ポインタースキャンという機能もあり、ある程度自動で静的アドレスを見つけ出すことも出来ます。ゲームをチートするにはC言語とアセンブリ言語の知識が必要になりますが、ポイントを絞って学習すれば覚えることはそんなに多くありません。Cubeを一通りチートすることで他のゲームでも出来るようになるのでぜひ挑戦してみてください。Engineはスキャンしてヒットしたアドレスが、プログラムの.dataセクション内にあるかどうかで静的か動的かを判断しているようです。いうサイトに一覧で載っています。素材集め、レベル上げ、その他すべての面倒くさい要素を回避できます。ウィッチャーの戦闘において不可欠なのがオイル。address」で書き込んでいる命令を見つけることは出来ましたか?もし出来ているなら下記画像のようなウインドウが出現しているはずなので、あとはEDXの値(画像赤枠の部分)でアドレス検索をするだけです。Typeは4バイトです。Manually」をクリックして、下記画像のようにPointerにチェックを入れ、赤枠に509b74を入力し、緑枠のアドレスをコピーしてアドレス検索してみてください。緑枠のアドレスがプレイヤーベースになります。これで静的アドレスが見つかるはずです。https://dotup.org/uploda/dotup.org2189379.png現在取得されているベースアドレスと緑枠のアドレスが一致していなければ、ベースアドレスを見つけるまでの手順が間違っているということになります。下記画像の通りオフセットは分かるのですが、ベースアドレスの取得?ができません。4バイトで16進数にチェックしてサーチしても何もでてきません。https://32.gigafile.nu/0831-df8d234399c2a870232e8f924f38273ff画像の共有方法が分からなかったので無料のオンラインストレージを選びました。この場合スクリプトを組んだほうが早いかもしれません。OPのアドレスが仮に11A8AE8E704の場合、それに4バイト足した11A8AE8E708に最大値の100が格納されているのですが、確認できますか?画像の通りだと、[rcx+000000F0]がOPのアドレス、[rcx+000000F4]がOPの最大値のアドレスになるはずです。間違っていたら申し訳ないです。Engineの使い方を覚えるには、実際のPCゲームで手を動かしながらやってみるのが一番効果的です。CubeというオープンソースのFPSゲームを解析して、体力を減らないようにしてみましょう。ウィッチャー3ヤバいです!!!普通バグやらチートやらは治らないむしろ治さないのがゲーム業界。家ゴミは知らんがpcならオフラインなんだからチートエンジン使えばいいのに。宝箱に武器・防具がある場合、取る前にセーブする。自分のレベルにあった必要レベルの武器・防具が来るまでやると直ぐに今の自分にあったものがくる。金稼ぎに関して瞑想をしなくていい方法がわかりました。ノヴィグラドにある高利貸しに売却し商品ページを閉じ品物を見せてくれを選ぶと何故か店の主人の所持金が復活してるので瞑想をしなくてもすぐに売れる。貝殻も同じ方法で無限に買える。高利貸しも何回も繰り返すと資金切れになる、長時間瞑想で回復するね。宝箱にクラウンが入っている場合他の物は取らずにクラウンだけ取ってセーブしてロードしたらクラウンが復活します。序盤の地味な金策になるかと思います。金策した後セーブしてロードしたら所持金消えた。20万弱が19になってた。真珠稼ぎ修正しました。1.03でも確認済みです。高利貸しからフロレンスを買って換金する方法が一番安定すると思います。家ゴミは知らんがpcならオフラインなんだからチートエンジン使えばいいのに。お金が減る仕様を検証した結果、所持額65500でほぼ限界でそれを越えるとロードしたりすると減るみたい。魚に変更で対策されたのかも。一昨日始めたものだけど。魚に変更じゃなくて、貝殻売ってないだね。宝箱なんだけど即出だったらすまぬ。近くに2個宝箱とかあるとき、武器防具名前は変わらないけど、片方開けてコモンとかの装備で気に入らなければ、取らずにもう近くの開けて戻って開け直すと、マスターやマジックとかレア度は変えられる。その装備だけ取って繰り返すと、たまにとったはずの装備がもう一個同レベルで取れる。宝箱的なものにレア度設定があるっぽい。知名度高いけど一応書き足し。クラウンとか入ってる宝箱的なもので、クラウンを残してその他のアイテムを取ってセーブ。ロード後開けた一回のみ(開けて閉じると消える)とったはずのアイテムが復活する。装備しか確認してないけど、多分アイテムもできるんじゃなかろうか。書き忘れてたが、宝箱の装備レア度抽選は、その宝箱が視界から消えるだけで再抽選。視点180度回して向き直って開けるだけで良い。これを真似してみたが、箱に入ってたコインが再抽選するたび増えたんだけど。22が繰り返して287まで増えた。理由は判らんがスケリッジで船に乗ってると、下船する時まれに画面が上下に揺れたのち、天高く放り出されそのまま落下するバグに見舞われることがある。真珠稼ぎ、パッチ1.04で修正。商人の売り物から貝殻消えた。デスマーチクリアしてからノーマルでまったりやろうと思ってたのに、貝修正とか。あ、デスマーチクリアしたらパッチ消してやれば良いかwてか、ノヴィグラドの広場南の武器職人の近くの小部屋にある無限落下修正されたのかな。マップ1とマップ2を使いポインタースキャンをする最後OKをクリックする前に設定を以下の画像のように変更してください。変更する箇所は赤枠の3か所です。https://dotup.org/uploda/dotup.org2202314.pngスキャンが終わると、おそらく130ほどポインターがヒットするはずです。それを下画像の赤枠部分をクリックして、オフセットの少ない順にソートします。ソートしたポインターを上から3,4つほどアドレスリストに追加して、ミッションを変えたり、ゲームを再起動しても使えるかテストして使えれば成功です。ポインタースキャンを行った結果、上手く特定できました!今のところ2つアドレスがあります。1つはミッション開始直前のロード画面でアドレスが変わり、ロードが終わって開始されると同時にHPアドレスに切り替わります。2つ目は、ミッション開始と同時にHPアドレスに切り替わります。どちらもミッション開始時にはHPアドレスになるのでどっちが正しいのかは分からないです。それからHPの上限値もスキャンしてみました。結果3つヒットしました。3つともミッション中10秒に1回くらいアドレスが切り替わるので、よく分かりませんでした。3つとも正しいと考えています。ここから話が変わります。HPアドレス以外も基本的にゲーム内の現在の数値がcheatengineの値に表示されると思います。これを予め書き換えたい数値に変更したらゲームとcheatengineを再起動しても値を固定しなくても書き換えた数値を維持するようにする方法はありませんか?少し説明が複雑ですが、要はcheatengineがアドレスの値の読み込みをしないようにし、固定にチェックを入れることで有効になり変更したい値になるという感じです。下記リンクのゲームでやりたいことがあります。目を通して置いて頂けると嬉しいです。Engineなしで目的の値にしたい場合はexeファイルを直接書き換えるやり方があります。メモリが必要になるので、CodeCaveと呼ばれる使われていないメモリを見つけ、そこに自分のコードを書きこむと出来るかもしれません。上級者向けだと思います。GodEaterシリーズ、Googleで検索したり、下記のサイトで調べればCTやトレーナーが見つかるはずです。engineで変更したいアドレスの箇所が1000箇所以上あります。それらの箇所を武器、銃、装甲別にアドレスを頻繁に変更する必要があります。それらの1000箇所以上のアドレスを一度変更したい値に書き変えます。engineは再起動したり新規のセーブデータに適応しようとすると新規は当然アイテムなどは所持していない状態のためそれらのアドレスの値が全て0になってしまいます。engineが現在のアドレスの値を表示しているからです。engineの値を現在の値ではなく指定した値を表示するだけにしたいのです!それで固定にチェックを入れると実際に書き変えられたらと思いました。engineの値を150のままにしたいです。engineが有効になりゲームでもHPが150固定になるという感じです。engineのアドレスの値の読み込みを停止して予め変更した値だけを表示し続けるようにする感じです。?しかでてきませんでした。「どうやって7FF74CB28FDAのアドレスに飛んだのかが分かりません。」スクリプトにINJECTと記載がありますが、これは7FF74CB28FDAをINJECTという文字に置き換えています。記事の一番下に説明を付け足したので読んでみてください。Engineと共存できるはずです。私は7.0と7.1の両方がインストールされている状態です。それをした上でAOB注入のチェックを入れることができるか確かめてみてください。「healthBaseを入れると赤字になってしまう」このhealthBaseはスクリプトをオンにしていないと使用できません。スクリプトが正常に動作していて、かつオンになっている必要があります。オフにするとhealthBaseはメモリ上のガベージを読み込み使用できません。engine7.1をインストールしてきました。今は6.82と両方入っている状態です。7.1ではAOB注入でもチェックを入れることができ有効にできました。情報をありがとうございます!6.82では書かれていない文字がいくつかありました。7.1で有効化できたスクリプトを6.82で使用できるか試してみましたがAOB注入だとチェックを入れられず有効化は不可能でした。7.1でスクリプトを有効にした状態で敵の攻撃を受ける(JGも含む)と検出されるみたいです。初回の攻撃は受けるとダメージが減り、即死ダメージだとやはり一撃で死んでしまうようです。初回の攻撃を耐えると2回目の攻撃からダメージを一切受けなくなり通常ガードしかできない(前に記載した内容と同じ現象です)状態になります。これはスクリプトのみ有効にしていてHPの数値は固定していません。スクリプトをオフにしても被弾してダメージは受けないままです。ゲーム内のアイテムなどを使用して回復すると正常な状態に戻ります。このスクリプトで2回目の攻撃からダメージを受けなくなってしまうのを無効にすることはできますか?HP、OP、STのアドレスのみ自動で特定したい場合です。STのアドレスはHPのアドレスから+F0の位置にありました!STの上限値は+4なのでF4です。有効化できたようで良かったです!「通常ガードしかできない状態になり、スクリプトをオフにしてダメージは受けないままです。」この辺はなぜだかわかりません。そちらの環境で使えるかわかりませんが、チートテーブルをアップロードしたので良ければ使ってみてください。https://36.gigafile.nu/0721-dab54d83d725bfb7f2d4d2a76460c7aecF8を押すとアドレスを検出し、F9を押すとHPが9999のままになります。毒を受けても9999を維持できています。再度、F9を押すとダメージを受けるようになります。CTファイルを確認しました。結果スクリプトをチェックできず有効化ができませんでした。HPアドレスも違い、こちらはrbxではなくrdxです。それからアドレスもこちらでは後ろになっているためゲームのバージョンが違うものとア思われます。最新のバージョンは2.51となっています。2.51に更新してからもう一度確認できますか?一応こちらでdbから続くアドレスやrbx→rdxなどの部分を修正したらチェックできるようになりました。敵の攻撃を受けるとHPアドレスを検出します。2回目の攻撃からは前回書いた内容と同様にダメージを受けなくなります。それからF9で有効、無効にできるHP9999のスクリプトですが、こちらは攻撃を受けるとHPの上限値は9999になりますがHPは1になってしまいます。ガードしても1になります。(ジャストガードでも)尚、即死ダメージだった場合はそのまま死にます。このスクリプトも2回目からダメージを受けません。(スクリプトを有効、無効どちらも)それから毒や継続ダメージでHPは固定されず徐々に減っています。検出したHPアドレスを固定すればもちろん減らないです。管理人さんの方でHPが9999であったためHPゲージの減り方の見分けが付かなかったのではと思っています。cheatengineの方で検出したHPアドレスの数値を確認していると徐々に減っていました。ゲージ内のHPゲージで確認する場合cheatengineのスクリプトの(float)150にすると分かりやすいと思います。一応150が通常プレイでの最大値になります。9999にすると通常の約67分の1の減り方になります。ゲーム内で回復錠などを使うとガードができるようになりダメージも受けるようになりますが2回目からまたガードを受け付けずダメージも受けなくなります。スクリプトでHPの固定(毒や継続ダメージなど)できるようにしたいです。HPの方で大丈夫です。可能ならHPアドレスを検出するスクリプトの方でHPの固定、2回目からダメージを受けなくなるのと地上の通常ガードしかできなくなるのを修正してほしいです。こちらのGE3はVer1.11ですが、諸事情によりアップデートできないです。スクリプトもこちらでは正常に動作しています。代替え案としてポインタースキャンをやってみてください。HPを実現できるかもしれません。手順は以下の通りです。強力なアビリティや組み合わせの紹介。dlc導入済みの環境も想定しています。※非推奨のアビリティも、用途によっては有用かもしれません。Conditions。