チート初心者スレpart3
>>566
続きです。
チートエンジンのデバッガの種類を変更したりはしました。
色々調べているとバージョンによってうまくいくいかないがあるそうです。
また、自分でCEサーバーをコンパイルして成功した人もいるようです。
レジスタall usedエラーはANDROID実機では起きず、仮想CPUだから起きるとの見解もありました。
しかし上記サイトの人は間違いなくエミュレータで成功してます。
これからceserverを自分でビルドしたものに変更したり、
過去のチートエンジン、サーバーのバージョンに変えたり、
androidバージョンを9や11に変えたりしようとは思っています。
最悪安い実機の購入も考えてます。
最近チートエンジンに手を出したので色々手探りでやってますが、わかる方いましたら是非教えてほしいです。 どうやって成功しました?
自分も過去にやってうまくいかなかったのでよければ教えてください >>569
>>569
結局実機買いました。pixel 3a中古整備品です。amazonだと13000円で買えます。やはりレジスタused errorは仮想CPUが原因でした。あとpixel3-aはarm64なのでサーバもarm64を起動します。アドレス参照、書き込み、ブレークポイントでちゃんと止まってレジスタも見れます。あとandroid10ではroot取ってもsystemに書き込めなかったので9にダウングレードしました。
https pwnyourphone.com/
このサイトのツールはandroid10以降のデバイスでsystemの書き込み権限を取るツールなのですが、結構色々頑張っても無理でした。開発者に聞いても無理でした。成功デバイスリストがあるんですけど大体XiaomiかGaraxyです。開発者の回答「HUAWEI などを使用していない限り、Android 9 には悪名高いshared_blocks 読み取り専用機能も EROFS (拡張読み取り専用ファイル システム) も、私の知る限りではありません。」とのことです。なので実機を買う場合はandroid9対応、もしくは10なら上記のセキュリティを突破できるデバイスでないとceserver起動できないかもです。 ポインターを指定する際にマイナスのオフセットってありえますか?
ありえるのであればどういうデータ構造だとありえるんですか? https://yu-nix.com/archives/c-struct-array/
構造体の配列自体はここでわかったんだけど
構造体の葉いt列がメモリーにどのように格納されるかとかは
どこら辺のサイトで勉強したらいいですか? データサイズ的に奇数になるような構造体だと分かりやすいね
自分でサンプル書いてアドレスや内容ダンプするのが理解が早いな
sizeof使ってみれば一発でわかるし 構造体の配列自体はなんとなく
メモリアライメント自体はある程度きちんと
理解しました。ただこれらがどうマイナスのオフセットに繋がるかよくわかりませんでした。ごめんなさい。
あと別件ですが12*7*4byte=336byteのメモリの状態をネット掲示板でたやすく交換できるような
シリアルコード的な短い暗号にする方法って何かありませんか? Linked listとか?
Base64とかBase85とかBase65536とか すいません間違えました
14*12個のfloatなんで672byteです >>579
>base85
アスキーコード
これでやってみます >>571
返信遅れましたが詳しくありがとうございます
参考にさせてもらいます チートエンジンのCEMファイルってどういうものなんですか? 初心者はツールに頼る前にCとアセンブラ勉強すれば?
仮想マシンでイチから入れればセットアップも躓かないでしょ。
C: VisualStudioとMSVC++
アセンブラ: Netwide Assembler
(godbolt.orgでC->ASMがどうなるか見れる。)
Practical Malwareナンチャラとか、ゴミみたいな日本語の教材(ツールの貧相な紹介)みたいな低レベルの本読むからいかん。
実践て書いてある本は矛盾してることに気づけ。言語の教本(ネットでも良いやつは探せる)読んで自分で始めるのが一番。
Cの構文、ポインタの概念、アセンブラは3、4文字でできた単語と代入の方向、副作用を覚えるだけ。
小学校でYes, It is a pen.だとか、ヨウ素がでんぷんと...ってのを順番に覚えるのと何も変わらん。
"The importance of small steps"って調べてみ。
1から10知るなんて誰も出来ないよ。興味があるから1から10まで全部覚えるだけ。
以上が理解できないなら向いてない。分かってるならそのうちできるようになるから頑張れ。
ところで
>>0572
そのポインタより手前に有効なデータがあるならいつでもそうできるんじゃない?
だから、継承とかリンクトリスト、構造体の配列なんかはそうなるかもしれないね。
アセンブラ読んでてそれがでてきたなら、コンパイラがそうしたかったとしか。
例えば、int * hoge = &fuga->b;だと、fugaのbはhoge[-1]で触るとかね。 >>585
の安価より下が
>>572
への返信ね。
バカすぎて安価の書き方間違えた。 > 例えば、int * hoge = &fuga->b;だと、fugaのbはhoge[-1]で触るとかね。
あとfugaのbじゃなくてfugaのa。頭回ってないなぁ...
連投ごめんね まぁボチボチ調べながらやってます。
話は変わりますが
浮動小数点の演算で、任意の小数を引数にした演算、を考えているのですが
誤差が出にくい演算のコーディングのコツってありますか?
なるべく整数演算にするってのは常道だとは思いますが今回考えているのは
任意の小数を引数にした演算なのでそれ以外の方法でコツ があれば教えてください >>588
スレチだしそのくらいググレカス。
精度は型に依るので、単、倍、四倍と扱える桁数は変わってくる。
そもそも小数精度の意味間違えてる。最初から0.9100..00じゃなくて0.91000035..82みたいなのを扱えばズレるわけで。コーディングとかの問題じゃあない。
高精度な浮動小数点を自前で実装するしかないね。
リサーチ癖付けな〜 Javaが使えるならプロセス間通信で引数を受け取ってBigDecimalで計算して返すツールを作って常駐させればよさそう
結果を浮動小数点に落とし込むまでは誤差ゼロ
処理速度はだいぶ犠牲になるだろうけど >>590
別に任意精度小数はJavaの専売じゃないからどの言語にも実装はあるよ…
あとどっちも浮動小数点ね。2進数に落とし込むまでは、が正解。
自分が重箱したいだけだけど、"演算のコーディングのコツ"と聞かれたら計算そのものの話。
>>588はそもそも自分が何をしてるのか理解してないから日本語もガタガタ。
チート板で聞くような用途でそんな精度いらないと思うけどね。 よく知らないけどその手の演算ライブラリのDLLをCEのプロセスにロードしてAPI叩くのでは? https://i.imgur.com/rucp8CW.jpg
コンポーネントの並びの順序を変更するにはどうすればいいですか? 有効数字は変わらんって言えばいいことをそこまでぐだぐだいう奴が”日本語がガタガタ”笑 ツリーはグループとか階層確認だけっぽいけどな
一番裏側の部品から順番に最前面へ持ってけば希望通りに並ぶと思うぞ
あとはフォーム情報のファイル直接いじればZオーダー書いてあるんじゃねーか? コーディングや計算の段階で誤差が出ると思う奴に"二進数の浮動小数点を使うなら有効桁は変わらないよ"とだけ言って正しく伝わるならそうする。
>>588にそこまで理解力あるならとっくに脱初心者してるんだよなぁ…>>594は人に教えるのうまいでちゅね〜ありがとう〜 >>595
一応できたっぽいんですけど
bring to frontで後ろに来て
send to backで前に来る上、
即時反映はされず一旦エディットモードを終わらせないと反映されませんでした。
これって仕様なんですかね? 自分より出来ない奴を見下してマウント取るのに必死で草
リアルでも後輩社員にこんな感じで接してるんやろなぁ 言葉の定義にこだわってる感じ社会人というより情報学科の一年生とかだろ
そいつに限らず細かいこと気にしすぎなやつ多すぎ
チーターはチーターらしく結果をでっち上げることだけに専念すればいいのに >>596
すいませんがそういうのはスレチです
ここはチート初心者スレなんで
そういうレスはコミュニケーション初心者スレとかでお願いします 三國無双に似たオフラインゲームで
チートコードを作りたいんだけど知見がある方いれば教えて。。
やりたいことは外伝限定で操作出来るキャラを本編で操作したい。
この場合「誰を操作するか」という情報と
外伝キャラクターのidを特定する必要があると思うんだけど、どうやって特定すれば良いのか、そもそもこの考え方が合ってるのか分からなくて。
因みにドラッグオンドラグーン3っていうPS3のゲーム 専ブラ停止で人がいるかわからんけども
公式の衣装のバイナリ見るのに適したバイナリエディタとかあったら教えてほしい Cのような高級言語知ってるだけじゃわからんよ
機械語レベルの知識がないと unityroomでセーブデータをいじりたいのですがよくわからないので教えてください
Chromeのコンソールを開いて実行コンテキストセレクタをwebgl-frameに設定
IndexedDBからセーブデータを取得するところまではいけました
しかし改ざんしたセーブデータをputしてもゲーム内に反映されません
これといったエラーも表示されないので手詰まりです ネット越しに取得するデータだからデータ破損や改ざん防止でチェックサム的なデータを持ってるかハッシュ値みたいの別途取得して比較してるとか? 自己解決しました
セーブデータのサイズが変わったのにPlayerPrefsに記録されるデータ長を変更し忘れてたのが原因でした 自己解決じゃないですね
アドバイスありがとうございました サイズの異なるファイルのバイナリを比較したいんだけど
ファイルAのX行からY行、ファイルBのZ行からW行を比較する
みたいなのができるバイナリエディタ知りませんか 比較したい範囲を2つのテキストファイルにコピペしてWinMergeで比較すれば楽かもね あぁそうか
冷静に考えれば誰でも思いつく方策を思いついてなかった
ありがとうございますやってみます 質問失礼致します。0〜9と.しか入力できない欄にプラスマイナスその他文字などを入力する方法ってありますかね? 適当な数字入れて文字列でメモリ検索してアドレス見つけたらメモリ側から書き換えるとか OK押した時に文字種チェック入って弾かれることもあるのでチェックロジックNOPにする必要あるかも 回答頂きありがとうございます。
こちらの方法を試してみます cheatengineの値<スクリプト>の変えた数値を直接上書きできませんか?
それと上書きすると何か問題ありますか? >>620
アドレス直接書き換えだと元の値に書き戻されたりするからスクリプトで書き戻す処理を無効にするとか良くあるよ
聞く前に試すのが早いと思う CheatEngineのCode Filterに相当することをIDAでどうやりますか? 本当の本当に素人なのですが、質問をさせてください。
キャラクターの表情、関節の角度など、画面上で数値が表示されない値を変更したいと考えています。
アドレスの特定がかなり難しい話のような気がするのですが、もし参考になりそうな情報が載っているところをご存知であれば教えていただけないでしょうか。 float型を「Unknown initial value」からサーチ始めて少し移動したのち「Changed value」を繰り返す、時折ストップさせた状態で「Unchanged value」を何度か繰り返す
これをやればすぐ見つかるけど大抵は複数のシャドウコピーがあるので一旦すべてテーブルに追加して一つづつ値を変更してキャラが移動するかを試しどれが実体化を割り出す必要がある dead by daylightのチート作りたいのですが、メモリ読み取りするためにカーネルドライバを使う必要があります。EACに検出されない方法知っている方いますか?現在kdmapperというツールを使用しようとしていますがインテルドライバが既にあるとかいうエラーで立ち往生しています。ちなみに自分で脆弱なドライバを見繕う場合、kdmapperがやってくれてる痕跡削除等も自力で実装する必要があるので面倒くさいです。 EACはBattleEyeなんかと並んで一応は世界最先端のアンチチート技術だからその辺は自力で出来ないと無理だよ
誰かの作ったもん利用して一時的に動いたとしても彼らはどんどんアプデ繰り返してくるからすぐ使えなくなる >>629
それは承知の上で、現在のEACバージョンで未検出のメモリ読み取り方法を知っている方を探しています。例えばvalorantに関しては、現在僕が使っているAIエイムボットは1年間未検出です。EACでもそのような対策されていない脆弱性があるのではないかと思います。BE用でも構いかません。DMAやドライバ公式署名などお金がかかるものでもいいです。もちろん無料でとは言いません。動作の保証があればお金を払います。 >>630
AIエイムボットって要するに画像認識系?
であればそれは技術的にはチートとは言い難いものだからまあ検出されなくても不自然ではないが メモリにはアクセスしません。画像認識です。エイムボットは目的であり、その手段としてメモリ読み取り、他の方法がある場合リスクが最小のものを選びます。今回の目的はACに保護されたメモリ領域へのアクセスであり、その手段としてカーネルドライバ、DMA、ハイパーバイザー、それ以外の方法がありますが、検出可能性が最小のものを選びたいです。有識者いましたら是非お願いします オンラインゲームでそこまでして欲しい情報とか書き換えたい情報ってあるの?
敵味方の位置情報とかそんなの? >>633
まさしくそれです。敵の座標(x,y,z)、自分のカメラ座標(x,y,z)、カメラ回転(x,y,z)、カメラ視野角、これらの情報がbox型のウォールハックに必要です。それらの情報はメモリにアクセスする必要があり、ACに保護されている場合それを突破する必要があります。その他にもクライアント側で管理している面白い情報が見つかります。 クライアントのプロセス側からメモリへのアクセスはほとんどの場合blockされないから
そっちにコードっ突っ込んでメモリを読み取ればいい
アンチチート類は外部プロセスからのメモリ読み取りくらいしか制限しないです >>635
情報あざます。全然詳しくないですが、obsやdiscordのdllからフックみたいなやつですかね。ただ、ブロックされないに関してはカーネルかハイパーバイザーで読み取るでクリアしていますが、問題は検出されないかどうかです。discord等のdllを変更すると署名が失効して検出されるそうです。とりあえず今オープンソースのapex linuxチート見てたらハイパーバイザーで読み取ってるぽいので、それを流用してみます。 独自の署名付きドライバー(ev or ov)は何人ぐらいに配布したらブラックリストに登録される可能性がありますか?主にヴァンガードで使用します。 pythonで質問なんだけど
def 関数名
for :
try
except
break
else:
if :
return true
return false
みたいな構造のコードについて
これってtrueを返した後にfalseを返さないの?
一回でもreturnを返すと関数の処理はストップするの? はい、Pythonの関数内で`return`文が実行されると、その関数の実行はそこで終了します。例えば、ある条件が満たされて`return True`が実行される場合、その時点で関数は終了し、それ以降のコードは実行されません。同様に、`return False`も同様に関数を終了させます。
以下は簡単な例です:
```python
def my_function(value):
for item in value:
try:
# 何かしらの処理
if item == 3:
return True # ここでTrueを返すと関数が終了する
except:
break
else:
if item == 5:
return False # ここでFalseを返すと関数が終了する
# 例の使用
result = my_function([1, 2, 3, 4, 5])
print(result) # 出力はTrue
```
この例では、リストの中に3がある場合に`True`を返し、5がある場合に`False`を返しています。どちらかが返された時点で関数が終了し、それ以降の処理は実行されません。 >>638
スコープをちゃんと見よう
return trueは一つ上のifが真のときにしか呼ばれない また質問なんだけど
pythonで配列(行列みたいなデータ)の集合を考えているんだけど
重複を許さないような集合ってsetでできる?
適当にコード書いたらTypeError: unhashable type: 'list'て出た CheatEngineのCTファイルで値を変更したメッシュの情報やファイルは抽出できません? チートエンジンで所持アイテムの個数を一括変更するスクリプトはどうすれば良いのでしょうか
外のサイト見て、HP減らないとか、減算を加算に変更するとかは見たけど、複数の同時変更みたいな記事も見つからずで
現状では、静的アドレスが見つかっている状態で、32バイト先に次のアイテム個数が有るのは分かっています >>645
作るための知識が不足しているので、苦闘してます
手持ちの別ゲームのCTファイルもあたってみたのですが、似たようなスクリプトが見つからず、
参考にするためのCTファイルがないと厳しいですね
どなたかゲーム問わずで、手持ちのアイテム所持数変更とかのCTファイル無いですかね バイオ2のリメイク
インストールして最初の起動だと操作キャラの位置がサーチできるのに
ゲームを再起動したら再インストールするまで検索に引っかからなくなる怪現象が発生しません?
ちなみに弾数とかは素直に検索できるんですよね
なんか対策してるんですかね >>647
最初の起動のうちに座標アドレスのオフセットを特定しとくとかかね >>648
ジャンプ命令に気を付けつつコードを一行ずつ遡ってレジスタの代入を目視で確認してるんですけどこれであってます?
正直、最後までできる気がしないんですけど
ベースアドレスがスタックやヒープメモリの領域を抜けたらそこで確定する感じなんですかね
普段はゲームを再起動しつつポインタスキャンの力技でなんとかしてるんでオーソドックスなやり方がイマイチよく分からんです >>650
それっぽいところに仕掛けてレジスタのそれっぽい値を引っ掛けてくる感じですかね
なんとなく分かりました
ありがとうございます https://github.com/praydog/REFramework
これのオブジェクトエクスプローラ使ってなんとかできんかな。構造体がわかれば手間が大幅に省ける >>652
これすごいですね
https://cursey.github.io/reframework-book/object_explorer/object_explorer.html
ここの動画の通りにたどったらプレイヤー座標の数値が知れたんでメモリ検索かけたら見つかりました
なぜかObject Explorerに表示されてるAddressとはちょっと違いましたけど
ちなみにどうやら再インストールすれば見つかるのはただの偶然で
プレイヤーが静止してても微妙に数値が変わる場合があったのが原因だったっぽいです
アークナイツでチートやりたいんですけどやり方を教えてもらえませんか cheatengineで値を変更する。静的な変更を加えたい場合は、unityゲームのチート方法を調べる。 最近cheat engineを使い始めて、値のわかってるものは変更できるようになって、静的アドレスはまだ探せてない、この状態で敵を倒すと100%ドロップとか探せるんだろうか?教えて欲しいです。 ゲームのsdkを生成する(UEしか触れたことないがUnityもオープンソースなのでフリーのツールがあるはず)。目的のフィールドまでのオフセットを確認し、ポインタチェーンを辿り値を変更。sdkの生成ツールはUnreal EngineでいうとDumper-7のようなもの。 一度やって出来なくて挫折したんだけれど静的アドレス見つけるのって簡単に出来る? アドレス検索→見つけたらアドレステーブルに追加してポインタマップ生成&保存→ゲーム再起動
これを何回か繰り返す
アドレス検索→アドレステーブルに追加してポインタスキャン
保存していたポインタマップを追加してアドレスをその当時のやつに設定
他の設定はどうすればいいのか忘れた
しばらくすると検索が終わるからそれっぽいのを全てアドレステーブルに追加
PCとゲームを再起動してもポインタが機能しているか確かめる
これでたぶん大丈夫
ここまで書いといてなんだけど
目的のアドレスを処理しているゲーム側のコードをAOBスキャンしてアドレスを盗み見する独自コードを注入するのがフォーラムのCTでよく見る手口
そっちのほうが確実 >>659
下の方は良くわからんが上の方で何とか出来た、ありがとう
検索結果が2万とか出たりしたからそれで確実じゃないってこと?
この結果自体を減らすのに有効な手段って有ったりする?総当たりしかないのかな >>660
俺も初心者だから1行目の繰り返す回数を増やすしか思いつかない
でも2万とか見たこと無いな
まあベースアドレスが一番若くてポインタの連鎖が浅いやつを選んで失敗したことがないから
あんま心配しないで大丈夫だと思う >>661
なるほどね
ただ普通のステータスを弄る時はアドレス二桁とかだったから最初のが特別だったみたい
質問ばかりで申し訳無いがメモリから構造体分析で周辺アドレスを探してるけれどオフセット多い物だとポインタ追加するだけでも結構大変
アドレス追加から静的アドレスやらオフセットやらを入力するのではなく静的アドレス自体を複製してオフセットをずらしたり出来るのかな? >>662
よくわからんけどアドレスをコピペしたときにダイアログが出て
そこで最終オフセットを修正できるがそれじゃダメなんか?
複数コピペすれば倍々でアドレスを増やせたはず >>663
ああこれで良かったのね
ダイアログが良くわからなくてキャンセルしてたわ
ごめん、ありがとう パワプロ2022でサクセスのターン数のサーチする方法が分かる方いませんか?
その他のことは大体できるんですがこれは数値を入力をしてもヒットしません
開始がターン数68で、経験点や調子と同じ2byteだと思うですがなぜヒットしない