X

チート初心者スレpart2 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/04/26(火) 18:05:45.74ID:???
ミジンコ同士勉強していこうぜ

●定番解析ソフト
・デバッガ OllyDbg
http://www.ollydbg.de/
・プロセスメモリエディタ兼デバッガ スペシャルねこまんま57号
http://www.vector.co.jp/soft/win95/hardware/se254476.html
・プロセスメモリエディタ兼デバッガ+加速器 うさみみハリケーン
http://www.vector.co.jp/soft/win95/prog/se375830.html
●バイナリエディタ
・Stirling
http://www.vector.co.jp/soft/win95/util/se079072.html
・Binary Editor BZ ※4GBまで編集可
http://www.zob.ne.jp/~c.mos/soft/bz.html
●解析参考サイト
・Digital Travesia ※OllyDbg日本語化パッチあり
http://hp.vector.co.jp/authors/VA028184/

前スレhttp://schiphol.2ch.net/test/read.cgi/mmosaloon/1210219737/
ツールのクレクレ、売ります系はスルーで
2020/03/31(火) 21:35:45.13ID:???
>>630
https://www.youtube.com/watch?v=nJ72p6fDIM8
上の動画ではマチルダの弾丸は[rax+20]になってる
1レベルポインターならraxの値をアドレス検索すれば静的アドレスが見つかるかも
他の銃に変えたりして試行錯誤してみるといい

https://www.youtube.com/watch?v=SFr0nRjDJfE
ポインタースキャンに関しては6:00 ~ 18:30が役に立つと思う
3つのポインターマップを使ってスキャンしている
64ビットゲームなので、32bitメモリアライメントのチェックをはずし、最大オフセット値は6500、マックスレベルは10まで増やしたと言ってる
あとスキャン結果を別のPCにコピーして比較実行すると効果的みたい
2020/03/31(火) 23:57:48.70ID:???
すまんRE3:Demoだったわ
2020/04/01(水) 00:29:13.88ID:???
>>632
https://dotup.org/uploda/dotup.org2101340.png
見つかったよ
上3つ試したけど、どれでもいける
2020/04/01(水) 06:54:47.04ID:???
やるやんけ・・・!
2020/04/01(水) 12:25:07.06ID:???
>>633
うん、ありがとう
でその(ベースアドレス、オフセット、ポインタ)効率的な見つけ方を教えてほしいのだが…
もしくはそのやり方が乗ったウェブサイトとか(英語可)
636ネトゲ廃人@名無し
垢版 |
2020/04/01(水) 20:15:50.04ID:7dyx+Fyo
637ネトゲ廃人@名無し
垢版 |
2020/04/01(水) 20:15:56.67ID:7dyx+Fyo
2020/04/02(木) 06:27:21.65ID:???
>>631の2つめの動画とやってることは同じ
3つのポインターマップを使ってスキャンする場合は下記の手順

1.弾丸のアドレスを見つける
2.このアドレスのポインターマップを作る(マップ1)
3.「Find out what writes to this address」で弾丸のアドレスに書き込んでいる命令を見つける
  ポインターを絞り込むために何回かゲームを再起動する必要がある
  再起動するたびに弾丸のアドレスを見つけるのは面倒なので、
  書き込んでいる命令にAOB Injectionでスクリプトを組んで自動で弾丸のアドレスを検出できるようにする
4.ゲームを再起動する
5.再度、弾丸のアドレスのポインターマップを作る(マップ2)
6.ゲームを再起動する
7.弾丸のアドレスのポインターマップを作る(マップ3)
8.3つめの弾丸のアドレスに対してマップ1とマップ2とマップ3を使ってポインタースキャンをする(ここのやり方が少しややこしい)
9.8のポインタースキャンの結果をオフセットが少ない順にソートして上から順に再起動しても使えるかテストする

手順3は省いても出来るけど、手順5と7の前に弾丸のアドレスを手動で見つけなければならない

参考になる動画
https://www.youtube.com/watch?v=nQ2F2iW80Fk
2020/04/02(木) 06:36:26.27ID:???
1つ間違いがあった
手順3は書き込んでいる命令にスクリプトを組むのではなく、
弾丸のアドレスに常時アクセスしている命令に組む
そうすればスクリプトをオンにした瞬間に弾丸のアドレスを検出できる
書き込んでいる命令に組んだ場合は、銃を撃たないと検出できないのでひと手間増えることになる
2020/04/02(木) 07:59:41.65ID:???
>>638-639
ありがとう、試してみる
2020/04/02(木) 16:00:34.40ID:???
やさしい
642ネトゲ廃人@名無し
垢版 |
2020/04/03(金) 00:56:06.10ID:tHqoZkIq
空遠
643ネトゲ廃人@名無し
垢版 |
2020/04/03(金) 00:56:08.35ID:tHqoZkIq
空遠
2020/04/05(日) 00:34:38.44ID:???
Find out what accesses this addressでoffset調べて、
Generate PointermapでpointerMap1とpointerMap2作ってセーブして、
Compare results with other saved pointermap(s)2つのポインターマップを比較しつつPointers must end with specific offsetsで調べたオフセットを入力したが
まだ3000超~4000くらいの結果までしか絞れない
ここからゲーム内で死んだでリスタートしたり、ゲーム自体をrestartしても不変のbase addressとpointerを見つけるにはどうしたら良いんだろう
何か足りないのかな
2020/04/05(日) 08:10:12.19ID:???
オフセットの少ない順にソートすればいい
最大オフセット値を7でスキャンした場合、1番右がOffset 6になってるのでそこをクリックする
https://dotup.org/uploda/dotup.org2104559.png
複数のポインターマップを使ってポインタースキャンをすれば、ある程度安定的なポインターに絞り込まれてるはずので、あとはソートして上から順にテストするだけ。
2020/04/05(日) 10:19:18.66ID:???
>>645
なるほど、助かる
結局あとはフィールドテストしかないという事か…
2020/04/06(月) 11:51:20.92ID:???
GetProcAddressのlpProcName引数を1にすることって可能なの?
push 1
push handle
call GetProcAddress

的なアセンブリコードがあるんだけど
2020/04/07(火) 17:35:23.44ID:???
minaj
2020/04/07(火) 17:35:25.76ID:???
minaj
2020/04/07(火) 17:35:27.68ID:???
minaj
2020/04/07(火) 20:00:06.12ID:???
minaj
2020/04/07(火) 20:00:08.50ID:???
minaj
2020/04/07(火) 20:00:10.90ID:???
minaj
2020/04/07(火) 21:19:28.82ID:???
はえぇ〜
2020/04/07(火) 21:19:30.67ID:???
はえぇ〜
2020/04/07(火) 21:19:32.44ID:???
はえぇ〜
2020/04/07(火) 23:14:09.38ID:???
sage
2020/04/07(火) 23:14:11.56ID:???
sage
2020/04/07(火) 23:14:13.37ID:???
sage
2020/04/09(木) 00:51:25.39ID:???
ん?
2020/04/09(木) 06:37:54.93ID:???
minaj
2020/04/09(木) 06:37:57.28ID:???
minaj
2020/04/11(土) 17:34:44.13ID:???
Valorant独自のパックシステムでパックされてるな。 あとやっぱりVMPでコードが保護されてる。俺は確認してないけど、タイマーによるデバッグのチェックもはいってるらしい。
そしてPUBGと同じようにポインタが暗号化されてる。他も誰かやってたら情報提供求む
2020/04/12(日) 07:45:10.20ID:???
外人はもう突破してるのか
2020/04/12(日) 12:25:54.05ID:???
ポインタの暗号化って見たことないんだけどxorで暗号化復号化されてるって感じか?
2020/04/12(日) 12:34:41.75ID:???
考えてみればxor暗号までせずともset時にポインタを1減らしてget時に1加算するというコードにしておくだけでも自動ポインタスキャンは防げるな
2020/04/12(日) 19:54:23.34ID:???
PUBGのポインターは暗号化にrol、ror命令が使われてるみたい
https://guidedhacking.com/threads/pubg-offsets-structs-and-reversal-information.13289/
2020/04/13(月) 00:46:06.09ID:???
尊敬してるハッカー

https://live2.nicovideo.jp/watch/lv325304340
2020/04/13(月) 05:46:07.12ID:???
ポインタ暗号化されたところで簡単に復号できるから意味ないんだよなぁ...
2020/04/13(月) 10:50:32.67ID:???
>>647
序数で指定されてるんだと思う
https://www.usefullcode.net/2007/03/dll.html
https://reverseengineering.stackexchange.com/questions/21341/getprocaddress-with-0-as-lpprocname
2020/04/13(月) 14:53:59.32ID:???
>>669
手動ならそうだけどポインタスキャンを防げるだけでも一応意味はあるな
ただポインタを暗号化するって普通のコンパイラじゃそんな事出来ないだろうから相当手間かかってるな
2020/04/13(月) 15:09:33.86ID:???
普通にコンパイルした後に専門のチート防止会社のパッケージとかで暗号化するんじゃね
かなり参考になる↓
チートを防ぐには何が必要なのか?セキュリティソリューション開発会社DNPハイパーテックにチートの実態と性質を訊く(前編) | AUTOMATON  
https://automaton-media.com/articles/interviewsjp/20180406-65457/
2020/04/14(火) 23:59:07.25ID:???
尊敬してるハッカー

https://live2.nicovideo.jp/watch/lv325338952
2020/04/15(水) 22:35:17.40ID:???
ふむ
2020/04/16(木) 10:22:33.19ID:???
>>672
暗号化するだけならまだしも復号化コードを挟まなきゃいけない訳だからコンパイル後にいじるのって限りなく不可能に近くないか?
2020/04/20(月) 18:23:31.11ID:???
VALORANTはいけそうなのか?
Riotのセキュリティチームって元チーターだから厳しそうだな
ハッカーフォーラムやDiscordなんかにもチーター装って潜入してくるみたいだし
2020/04/21(火) 18:02:10.72ID:???
ハッカーフォーラム潜ったところで、もうチート対策の限界にきてると思うから個別の対策はできても根本的な対策はできなさそう。
まあでもValorantはサーバー側でVisibleチェックして見えてなかったら座標データ送らないようにするらしいからこれでどこまで防げるのか興味ある
2020/04/22(水) 23:48:27.63ID:???
誰か一緒に64/32bit対応のマニュアルマップインジェクター作ろ
2020/04/24(金) 11:09:46.60ID:???
カプコンに感謝
2020/04/26(日) 00:08:39.71ID:???
ぁ?
2020/04/26(日) 00:08:41.66ID:???
ぁ?
2020/04/26(日) 00:08:43.50ID:???
ぁ?
2020/04/26(日) 00:16:10.04ID:???
ほ?
2020/04/26(日) 02:13:22.61ID:???
ぁ?
2020/04/26(日) 02:13:24.60ID:???
ぁ?
2020/04/26(日) 02:13:26.33ID:???
ぁ?
2020/04/26(日) 02:39:44.51ID:???
ちんぽ
2020/04/26(日) 08:19:21.48ID:???
test
2020/04/26(日) 23:31:09.39ID:???
2020/04/26(日) 23:32:17.57ID:???
チート対策でしか話題性がないゴミゲー
2020/04/28(火) 05:19:59.74ID:???
2020/04/28(火) 05:20:01.69ID:???
2020/04/28(火) 05:20:04.19ID:???
2020/04/29(水) 17:59:18.06ID:???
2020/04/29(水) 17:59:20.16ID:???
2020/04/29(水) 17:59:21.98ID:???
2020/05/02(土) 05:22:36.33ID:???
2020/05/02(土) 05:22:38.86ID:???
2020/05/02(土) 05:22:43.09ID:???
2020/05/03(日) 00:32:00.04ID:???
タウリン
2020/05/03(日) 00:32:02.33ID:???
タウリン
2020/05/03(日) 00:32:05.67ID:???
タウリン
2020/05/03(日) 17:40:15.68ID:???
タウリン
2020/05/03(日) 17:40:17.97ID:???
タウリン
2020/05/04(月) 22:43:34.72ID:???
>>676
外人はたくさんいるみたいだが
2020/05/05(火) 00:48:33.54ID:???
タウリン
2020/05/05(火) 00:48:35.42ID:???
タウリン
2020/05/05(火) 18:37:29.32ID:???
タウリン
2020/05/05(火) 18:37:31.86ID:???
タウリン
2020/05/06(水) 05:17:40.70ID:???
DANAの部屋消えたな
2020/05/08(金) 04:42:40.78ID:???
フォートナイトで使えるチートエンジンほすぃ
2020/05/08(金) 06:38:15.06ID:???
使えることは使えるだろ
BANされるだけで
2020/05/08(金) 11:09:09.41ID:???
BANで済めばいいけど最悪人生終わるで
2020/05/08(金) 16:42:37.57ID:???
『Fortnite Battle Royale』起訴されたチーターがEpic Gamesと和解、14歳チーターの母親にも言及 | Game*Spark - 国内・海外ゲーム情報サイト  
https://www.gamespark.jp/article/2017/12/06/77200.html
今後同社の著作物を作成、執筆、開発、広告、宣伝、配布するなどの著作権侵害や再度のチート行為を禁ずる恒久的な差止命令を出し、違反した場合には罰金として5,000ドル(50万円)の支払いを要求しています。
2020/05/08(金) 18:02:23.99ID:???
販売や配信となんでもやってて草
そりゃ起訴されるだろ
2020/05/11(月) 02:27:46.54ID:???
和っ世
717ネトゲ廃人@名無し
垢版 |
2020/05/11(月) 04:46:30.59ID:GNvXha6J
NoxやブルースタックスとCEの環境だと「アクセスしている命令」や「書き込んでる命令」を検知出来ないのは仕様だと分かったのですが、エミュレータの問題でしょうか?
他に使えるエミュレータを探していますがありませんか…?
2020/05/16(土) 15:59:28.19ID:???
オフラインゲーム(RPGやアクションゲーム)などで数値の書き換えを行っても、すぐに元の数値に戻されるものはどのように書き換えを行えばいいのでしょうか。
静的アドレスを探してポインタを作るといいのでしょうか
2020/05/17(日) 09:03:14.94ID:???
すぐ戻される値は、そこにメモリライトブレークポイントを設置して
戻される値の元をたどる、そのうちに計算で使用する実際のパラメータが見つかるはず
2020/05/17(日) 09:24:22.75ID:???
実体じゃないってケースなら>>719が言うように更に探す必要があるけど、そこが実体であるならアセンブラを改変するしかない
mov [その数値へのアドレス], eaxみたいなループが走ってるからすぐに元の数値に戻されちゃう訳なのでnopで埋めるなり条件付きジャンプを挟むなりすればいい
2020/05/17(日) 13:38:16.71ID:???
>>719
メモリライトブレークポイントというのはcheatengineでも設置することができますか?
検索してもメモリライトブレークポイントというのがヒットしなかったのでもう少し調べてみます

>>720
実体かどうかわからないのですが、今見ているアドレスでは静的アドレスが検出されません
mov [その数値へのアドレス], eaxを探してみます

cheatengineで数値の書き換えと簡単なポインタの作成しかできないので
お二方の言っている作業が難しいのであれば知識的に無理かもしれません
2020/05/17(日) 16:23:16.27ID:???
指定したメモリが書き換えられたらブレークするというもの
どこで書き換えているのか調べたい時に使う
2020/05/18(月) 09:04:09.86ID:???
メモリライトブレークポイントはCheatEngineでは
Break on Write
Find out what writes this address
2020/05/19(火) 11:30:38.32ID:???
>>722>>723
ありがとうございます。

どうも実体じゃなく、その画面にいる時のみCTに反映されているのでメモリブレークで探してみます
2020/05/20(水) 14:57:41.19ID:???
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
2020/05/20(水) 18:21:46.32ID:???
>>725
1405A0EAC - mov byte ptr [rbx+08],01
のrbxがどこから持ってきたかアセンブラを更に遡ってみては?
手っ取り早い方法なら2D6A48E0-300 ~ 2D6A48E0って感じの範囲検索をして出てきたもののアクセス監視するとか
2020/05/20(水) 22:17:59.89ID:???
>>726
Cheat Engineというよりアセンブリ作業自体今回初めてやるのでRBXの出所を探るのに参考になるサイトを探しているのですが
日本語サイトは初歩の部分までしか載ってない所しか見つからないし、英語サイトは目的となる事を書いてあるのか判断するのに時間がかかる
https://fearlessrevolution.com/threads/11173/にあるBulletstormのチートテーブルの中を見てもスクリプトで組まれてて理解不能な状態です
2020/05/21(木) 15:54:17.97ID:???
Bulletstormはunreal engineだからUIとかスクリプトで書かれていると思う
ブレークで止まるのは、例えば値をセットするルーチンとかなので
1405A0EB0は、他の値をセットする時にもブレークするはず
こういうのは大本たどるのが大変
729728
垢版 |
2020/05/21(木) 18:57:48.05ID:???
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の命令は、固定アドレスを示しているので
ゴアフラグの実体の可能性が高い。
2020/05/21(木) 19:02:00.07ID:???
このままトレースを続けると

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 ココも変えたので注意
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況