チート初心者スレpart2 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
ポインタの暗号化って見たことないんだけどxorで暗号化復号化されてるって感じか? 考えてみればxor暗号までせずともset時にポインタを1減らしてget時に1加算するというコードにしておくだけでも自動ポインタスキャンは防げるな ポインタ暗号化されたところで簡単に復号できるから意味ないんだよなぁ... >>669
手動ならそうだけどポインタスキャンを防げるだけでも一応意味はあるな
ただポインタを暗号化するって普通のコンパイラじゃそんな事出来ないだろうから相当手間かかってるな 普通にコンパイルした後に専門のチート防止会社のパッケージとかで暗号化するんじゃね
かなり参考になる↓
チートを防ぐには何が必要なのか?セキュリティソリューション開発会社DNPハイパーテックにチートの実態と性質を訊く(前編) | AUTOMATON
https://automaton-media.com/articles/interviewsjp/20180406-65457/ >>672
暗号化するだけならまだしも復号化コードを挟まなきゃいけない訳だからコンパイル後にいじるのって限りなく不可能に近くないか? VALORANTはいけそうなのか?
Riotのセキュリティチームって元チーターだから厳しそうだな
ハッカーフォーラムやDiscordなんかにもチーター装って潜入してくるみたいだし ハッカーフォーラム潜ったところで、もうチート対策の限界にきてると思うから個別の対策はできても根本的な対策はできなさそう。
まあでもValorantはサーバー側でVisibleチェックして見えてなかったら座標データ送らないようにするらしいからこれでどこまで防げるのか興味ある 誰か一緒に64/32bit対応のマニュアルマップインジェクター作ろ 『Fortnite Battle Royale』起訴されたチーターがEpic Gamesと和解、14歳チーターの母親にも言及 | Game*Spark - 国内・海外ゲーム情報サイト
https://www.gamespark.jp/article/2017/12/06/77200.html
今後同社の著作物を作成、執筆、開発、広告、宣伝、配布するなどの著作権侵害や再度のチート行為を禁ずる恒久的な差止命令を出し、違反した場合には罰金として5,000ドル(50万円)の支払いを要求しています。 販売や配信となんでもやってて草
そりゃ起訴されるだろ NoxやブルースタックスとCEの環境だと「アクセスしている命令」や「書き込んでる命令」を検知出来ないのは仕様だと分かったのですが、エミュレータの問題でしょうか?
他に使えるエミュレータを探していますがありませんか…? オフラインゲーム(RPGやアクションゲーム)などで数値の書き換えを行っても、すぐに元の数値に戻されるものはどのように書き換えを行えばいいのでしょうか。
静的アドレスを探してポインタを作るといいのでしょうか すぐ戻される値は、そこにメモリライトブレークポイントを設置して
戻される値の元をたどる、そのうちに計算で使用する実際のパラメータが見つかるはず 実体じゃないってケースなら>>719が言うように更に探す必要があるけど、そこが実体であるならアセンブラを改変するしかない
mov [その数値へのアドレス], eaxみたいなループが走ってるからすぐに元の数値に戻されちゃう訳なのでnopで埋めるなり条件付きジャンプを挟むなりすればいい >>719
メモリライトブレークポイントというのはcheatengineでも設置することができますか?
検索してもメモリライトブレークポイントというのがヒットしなかったのでもう少し調べてみます
>>720
実体かどうかわからないのですが、今見ているアドレスでは静的アドレスが検出されません
mov [その数値へのアドレス], eaxを探してみます
cheatengineで数値の書き換えと簡単なポインタの作成しかできないので
お二方の言っている作業が難しいのであれば知識的に無理かもしれません 指定したメモリが書き換えられたらブレークするというもの
どこで書き換えているのか調べたい時に使う メモリライトブレークポイントはCheatEngineでは
Break on Write
Find out what writes this address >>722>>723
ありがとうございます。
どうも実体じゃなく、その画面にいる時のみCTに反映されているのでメモリブレークで探してみます Cheat Engineについて回答お願いします。
Bulletstorm: Full Clip Editionで日本語のまま残虐表現を有効にしたいのですが、まずは残虐表現のオン・オフの設定が可能な英語設定でアドレス抽出
0が残虐オフ、1が残虐オンという事がわかって、オフセットを設定するのにアドレスを監視させてポインタを検出できたはいいものの
そのポインタ(2D6A48E0)でアドレス検索をしても一つもヒットしません
これが出来たとして残虐表現有効のまま日本語設定でプレイできるかわかりませんが、通常の方法ではオフセットを割り出すのは不可能なのでしょうか?
以下監視結果
RAX=00000000
RBX=2D6A48E0
RCX=823B4800
RDX=00000069
RSI=00000008
RDI=00000008
RBP=823B4800
RSP=006DEE20
RIP=1405A0EB3
Probable base pointer =2D6A48E0
Label1
1405A0EAC - mov byte ptr [rbx+08],01
1405A0EB0 - mov [rbx+0C],eax
1405A0EB3 - mov eax,00000001
1405A0EB8 - jmp 1405A0E67 >>725
1405A0EAC - mov byte ptr [rbx+08],01
のrbxがどこから持ってきたかアセンブラを更に遡ってみては?
手っ取り早い方法なら2D6A48E0-300 ~ 2D6A48E0って感じの範囲検索をして出てきたもののアクセス監視するとか >>726
Cheat Engineというよりアセンブリ作業自体今回初めてやるのでRBXの出所を探るのに参考になるサイトを探しているのですが
日本語サイトは初歩の部分までしか載ってない所しか見つからないし、英語サイトは目的となる事を書いてあるのか判断するのに時間がかかる
https://fearlessrevolution.com/threads/11173/にあるBulletstormのチートテーブルの中を見てもスクリプトで組まれてて理解不能な状態です Bulletstormはunreal engineだからUIとかスクリプトで書かれていると思う
ブレークで止まるのは、例えば値をセットするルーチンとかなので
1405A0EB0は、他の値をセットする時にもブレークするはず
こういうのは大本たどるのが大変 Bulletstorm安かったから、仕事放置で解析してみた。
ゴアフラグを突き止めるまでは725の方法でおこなう。
該当フラグを弄ってみたが結果が反映されないので
対象アドレスに、Break on accessをセットする。
設定画面を抜けたりすると
StormGame-Win64-Shipping.exe+A78CF7 - mov ecx,[rax+0C] ここ
StormGame-Win64-Shipping.exe+A78CFA - mov eax,00000001 { 1 }
StormGame-Win64-Shipping.exe+A78CFF - mov [r13+00],ecx
がブレークする。
アセンブラを読むと、フラグをr13のアドレスに格納しているので
r13が示すアドレスにフラグを格納するので、ここにBreak on accessをセットする。
Runで処理をすすめる。
StormGame-Win64-Shipping.exe+DA4E4E - cmp [rsp+68],edi ここ
StormGame-Win64-Shipping.exe+DA4E52 - setne dil
StormGame-Win64-Shipping.exe+DA4E56 - mov [StormGame-Win64-Shipping.exe+17B7790],edi { [00000001] }
がブレークする
StormGame-Win64-Shipping.exe+DA4E56の命令は、固定アドレスを示しているので
ゴアフラグの実体の可能性が高い。 このままトレースを続けると
StormGame-Win64-Shipping.exe+DA4E9A - ret
の時点でRAXは1、StormGame-Win64-Shipping.exe+17B7790の値は1のようだ。
とりあえず、ここがゴア条件だと予想しておく。
アセンブラ画面を上に戻していくと、この関数は以下から始まっている。
StormGame-Win64-Shipping.exe+DA4D70 - push rdi
言語を日本語にしてゲーム再起動。
StormGame-Win64-Shipping.exe+DA4D70にブレークポイント設置。
キャンペーンを開始するとレベル開始直前でブレークする。
ステップ実行しながら
StormGame-Win64-Shipping.exe+17B7790に1、関数を抜けるときにEAXが1に
なるように実験してみると、日本語モードでもゴア表現が有効になった。
実験結果をコードに反映するとこんな感じか?
StormGame-Win64-Shipping.exe+DA4D90 - xor ebx,ebx
StormGame-Win64-Shipping.exe+DA4D92 - inc ebx
StormGame-Win64-Shipping.exe+DA4D94 - mov [StormGame-Win64-Shipping.exe+17B7790],ebx { [00000000] }
StormGame-Win64-Shipping.exe+DA4D9A - xor eax,eax
StormGame-Win64-Shipping.exe+DA4D9C - jmp StormGame-Win64-Shipping.exe+DA4E86 ココも変えたので注意 >>730
横から失礼します
どうやって解析能力を身に着けたのでしょうか?
右も左も分からない状態なので参考にしたいです 人の真似から初めて解析に慣れるのが良いかと思います。。
Bulletstormの例でも、スレみて真似するだけでも得る物があるハズ
たぶん、???な部分も出るのでソコを自分で調べるなりしてみるのが
勉強になったりします。
今は、この様な話題が出来る場はほぼ無いです。
ここでもマシな部類なので、私が解る範囲でコメント出来るときはしています。 解析能力はなんだかんだでプログラミング能力に比例して伸びていく
なぜならプログラミングが出来るとアセンブラを見れば大体「ここはあの関数かな」と推察出来るようになる
とは言えPythonとかRubyとかJsみたいな動的型付け言語だとこの話は当てはまりづらくて、
最低でもJavaやC#のような静的言語、C/C++なら完璧に解析力とプログラミング力はリンクする >>732 >>733
アドバイスありがとうございます。精進します。 ハッカーになるにはC++を習得するのは必須事項だが、だからといってC++から始めると99.999%挫折する まずはC言語でポインタの考え方、使い方のマスターじゃないの?
いきなりC++だと充実したクラスライブラリやフレームワークで低レベルの処理が隠蔽されて見えなくなって、このスレでの本質がつかめない気がする 軽く5年はかかりそうな道のりで挫折したくなりますよ〜 Cは独学でなんとかなりそうだけど
アセンブラの覚え方が分からない
アセンブラって古いpcじゃないと動かないみたいだし
皆どうやって習得したんだ… アセンブラが古いPCじゃないと動かないって何を言っているんだ?
全てのプログラムは最終的にアセンブリ言語に変換されてCPUがそれを読み取るから動作する訳だが
逆の言い方をするとアセンブラ以外のプログラミング言語は所詮アセンブラのマクロに過ぎない >>739
独習アセンブラって本を借りてきたんですが
古いpcじゃないとコンパイラみたいのが無いみたいなので手を動かしながら学べないのかなと 32BitならVisualStudioでインラインアセンブラ使えるぞ
64Bitでも自分の作ったCまたはC++プログラムを混合モードでデバッグすれば
アセンブラでステップ実行できるので勉強になるかも
自分が書いたソースがどんなアセンブラ命令に展開されるのかなど >>742
親切にありがとう
プログラム板で調べてみる! >>735
どんな順序で習得するのがいいんですかね C# → アセンブラ&C++が多分ベスト
C#はVisualStudioのサポートが手厚いため意外と初心者も入りやすい
それに加えてC++程ナチュラルには書けないもののWin32Apiやポインタも扱えるので普通にC#だけでもユーザーモードチートは完結する
ただ極めようと思ったらカーネルハックは避けて通れないからC/C++も最終的には必要 お世話になります。何かヒントを頂けたらと思いカキコします。
AndroidアプリをNoxplayerで起動し、CheatEngineを使い解析しいます。
「ぬいぐるみのレストラン」というゲームにて
目に見える変動数値は可能なのですが
システム上、手足の種類や色の変更があるのですが
この種類や色を特定する方法はありますでしょうか。
例えがわかりにくいかもしれませんが
モンハンの装備のような感じで、左右手足など部位ごとに変更されるものです。
ご教授宜しくお願い致します。 そういうのは装備ID特定しなきゃいけないし変数アドレスを見つけたとしても値を変更しても反映されない確率が高い
よってメモリサーチだけじゃ難しい
Androidアプリならapk解析してプログラムそのものを改変する方が楽だったりする
それをやるためにはJavaだったりUnity産ならC#が読めないとダメだから敷居は高いが RPG maker vx ace製のゲームをチートしていたら>>258も方が言っていたようなベースポインタのオフセットに*4されているポインタが出てきました。
ベースポインタらしきものを走査しても静的でもないアドレスが1件ヒットするのみで静的ポインタを見つけられません。
どなたかやり方やチュートリアルなど、英語でも構いませんので教えていただけないでしょうか? チートエンジンで獲得経験値変更について分かるサイトとか無いでしょうか?
検索して出て来ないとどうにもならない… unknown initial valueでfirst scanからのincreased value byじゃダメなの? ■ このスレッドは過去ログ倉庫に格納されています