チート初心者スレpart2 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
もう五回くらい挫折してるけどまた挑戦したくなったからカキコ ミジンコは俺と一緒に勉強しようぜ 三日で挫折するかもだけど とりあえず日本語で情報探すのは難しいことを学習した 英語得意じゃないけど頑張るぜ とりあえず この動画から https://www.youtube.com/watch?v=zFUHrg-wdmo 動画の説明 まずCheat Engine使って緑ルビーの数(左上のスコア)を決めているメモリのアドレスを見つけている メモリのアドレスは0x00ABEA6C このアドレスの値を2000に書き換えている 該当の値を書き換える関数はWriteProcessMemory関数 WriteProcessMemory関数に渡すべき情報はターゲット(ドラゴンのゲーム)のhandleと該当のメモリアドレス(0x00ABEA6C) ターゲットのhandleを知るための関数はOpenProcess関数 OpenProcess関数に渡すべき情報はターゲットのプロセスID ターゲットのプロセスIDを知るための関数はGetWindowThreadProcessId関数 GetWindowThreadProcessId関数に渡すべき情報はターゲットのhwnd ターゲットのhwndを知るための関数はFindWindowA関数 FindWindow関数に渡すべき情報はターゲットのウィンドウ名 動画だと変なドラゴンみたいなゲームのウィンドウ名は"ePSXe - Enhanced PSX emulator"となっていて その文字列を渡している どうやらプレステのゲームをエミュでやっててそれのハックをしている模様 あ ReadProcessMemory関数使えば該当のアドレスの値を読み取ることができる 動画の最後は無限ループ処理で スペースキーを押している間はWriteProcessMemory関数使って スコアの値を増加させていっている ここらへんはまあ余裕なんだがアンチデバッグ、アンチチートあたりの話になると 俺はもう何をしていいのか分からなくなる ミジンコが最初にやること >>1 の『うさみみハリケーン』をダウンロードして、うさみみのヘルプを最初から最後までしっかり読む これでプロセスメモリエディタやデバッガの、基本的な使い方が理解できて脱ミジンコ アドバイスありがとう! まじで嬉しいぜ 熟読するわ 俺の挫折ポイントは練習もしてないのにいきなり試合を仕掛けて当然上手くいかないってとこかな チュートリアルが用意されてるような常識的なアンチデバッグ技術は一通り勉強するつもり 簡易デバッガ作成、簡易プロセスエディタ作成、アンチデバッグ手法、プロセス隠蔽手法、ドライバ作成、dll injection、api hookここらへんを一通り勉強すればそこそこ実力つきそうだけど問題はやる気だな。 自己管理能力0だから3日で飽きるわ。 ●買った本 ・デバッガによるx86プログラム解析入門 ・リバースエンジニアリングバイブル ~コード再創造の美学~ ・たのしいバイナリの歩き方 >>43 いい選択だね 俺は「デバッガによるx86プログラム解析入門 【x64対応版】」にはかなりお世話になったわ ●デバッガー自作について CreateProcess関数でデバッギー(対象のプロセス)を起動する。 その際、DEBUG_ONLY_THIS_PROCESSを引数に指定する。 (これでデバッガーにデバッグイベントが通知されるようになる。) あとはWaitForDebugEvent関数でデバッグイベントの通知を待ち、 デバッグイベントの種類によって処理を振り分ける。 ●通知されるデバッグイベント(DEBUG_EVENT構造体に各種情報が格納されて渡される) CREATE_PROCESS_DEBUG_EVENT プロセス作成 CREATE_THREAD_DEBUG_EVENT スレッド作成 EXCEPTION_DEBUG_EVENT 例外発生 LOAD_DLL_DEBUG_EVENT DLL読み込み ●ステップ実行の実装 EFLAGSレジスタ内にあるトラップフラグを使う。 このフラグがセットされた状態でデバッギーを実行すると、 ニーモニックを一つ実行した時点でEXCEPTION_DEBUG_EVENTが通知される。 ●ブレークポイントの実装(int3) デバッギーにint3命令を埋め込む。 int3命令が実行されるとEXCEPTION_DEBUG_EVENTが通知される。 ●ブレークポイントの実装(デバッグレジスタ) SetThreadContext関数でデバッグレジスタの値をブレークさせたいアドレスに書き換える。 該当のアドレスが実行されるとEXCEPTION_DEBUG_EVENTが通知される。 ●逆アセンブラの実装 オープンソースの逆アセンブラ(udis86等)を使う。 >>44 【x64対応版】買ったよー まえがきの ・プログラムの動作原理を正しく理解することが大事 ・基本をふまえた上でないと、応用としてのテクニックを理解するために苦労する ・結果を急がないこと ・基本を確実に理解して次に進むこと を肝に銘じて学習を心がけるつもりだよ 春だしこれから解析を勉強していこうって人が多いと思うけど、 まず、自分が解析とかプログラミングに向いているのか向いていないのかを 自覚することが大事だと思う 解析に向いている人なら、>>42 を学ぶのも、>>43 の本を読むのも楽々とこなしていく 「解析のことを学ぶのが楽しくて仕方がない」って感じ だが、解析に向いていない人だと、>>42 や>>43 で学ぶのは、とても難しく感じるはず それを乗り越えていくための努力や根気がないと、挫折してしまう そして、解析に向いていない人の一部は挫折した結果、自分が解析に不向きなことや 努力不足を棚に上げて、「難しく感じるのはチュートリアルとかの教え方が悪いから」って 悪口を言い始める 毎年のようにこういう人が出てくる 自分が解析に向いてないって気づいたら、向いてる人の何倍も努力する覚悟を決めるか、 それともすっぱり諦めるか、決断するのが吉 達成目標を低く設定して、自分に見合う無理のない学習プランを立てるのもあり 某掲示板で、解析の勉強に挫折した人が、1年近く「教え方や説明が悪いから挫折した」って 悪口を書き続けるのを見て悲しくなったよ... ●anti-disassembly 逆アセンブラ(IDA PRO等)が上手く解釈できないバイト列を埋め込むテクニック 例)EB FF C0 48 IDA PROは先頭バイトから順番に逆アセンブリしているだけなので 上のバイト列の解釈は EB FF(jmp -1) C0(うまく解釈できない) 48(dec eax) となる。 実際は jmp -1を実行した後の次の処理バイト列が FF C0 48になる。そして FF C0(inc eax) 48(dec eax) として実行される。 ポイントはFFが二回実行されているところ。 この例ではjmp命令とinc命令を重ねているけど FFはcall命令のバイト列(FF 15)でもあるのでjmp命令とcall命令を 重ねて難読化することも可能 flow-oriented disassemblyだとこの難読化にはひっかからない linear disassembly(IDA PRO等)だとひっかかる >>47 その内挫折すると思うけど、 どこぞの掲示板でヘイト撒き散らすような人間ではないから安心してくれw 解析技術が人に教えて君のスタンスで身につけられるほど 甘い技術ではないことも理解しているつもり >>48 > FFはcall命令のバイト列(FF 15)でもある> のでjmp命令とcall命令を > 重ねて難読化することも可能 この部分無視で(読解間違えたっぽい) ●検索キーワード inline hook IRP(i/o request packets) hook IAT(import address table) hook SSDT(system service descriptor table) hook IDT(interrupt descriptor table) hook dkom(direct kernel object manipulation) inline hook = detours = trampoline udis86のコンパイルにてこずった(visual studioの使い方分かってなかった)からメモ 誰かの参考になれば幸い 環境:windows7 64bit、visual studio2017 1)udis86.slnを開いてソリューションの再ターゲットをする(v141へ) 2)buildVS2010.batを実行 ビルドが成功する 3)udis86を利用するc++プロジェクトを作成する 4)プロジェクトのプロパティ -> vc++ -> インクルードディレクトリ udis86-masterフォルダの絶対パスを指定 5)リンカー -> 全般 -> 追加のライブラリディレクトリ 〜〜〜udis86-master\BuildVS2010\Build\Lib\x64を指定 6)ソリューションプラットフォームをx64に指定(再生ボタンの左) >>54 ソースの先頭に#pragma comment( lib, "libudis86.lib" )を追加する 早速挫折してた どうしてもゴールまでの道筋が見えないと モチベーションが保てないな ゴールを気にせず、一つ一つの点をしっかりおさえていけば それがつながってゴールまでいくのかもしれないんだろうけどさ モチベーションをうまく維持してやる方法考えないとだめだ 情報の古い新しいには拘らずに有名なアンチチートシステムの動作を調査してある程度のあたりをつけよう すいませんcheat engineを使ってみようとダウンロードして色々弄ってみたのですが 事あるごとに you are missing the driver. Try reinstalling cheat engine, and try to disable your anti-virus before doing so. というダイアログがでてきます そのせいか検索等はまともにできているようですが 数値の書き換えの段になると全く反応せず困っています OSはwin764bit アンチウィルスはアバストです ググってあちこち見てみましたが特にドライバーの情報は得られず 再起動やアンチウィルス切ってのダウンロードからやり直しなどは何度もやってみましたが同じ結果 cheat enfineはvar6.6を複数サイトで落として見ましたがいずれも同じ結果 ver6.7でも同じでした 何方か御教示お願いできませんでしょうか ☆ 私たち日本人の、日本国憲法を改正しましょう。現在、 衆議員と参議院の両院で、改憲議員が3分の2を超えております。 『憲法改正国民投票法』、でググってみてください。国会の発議は もう可能です。平和は勝ち取るものです。お願い致します。☆☆ ネトゲサロンいらずで金儲けできる方法とか グーグルで検索⇒『羽山のサユレイザ』 972AQ 自分も解析したいんですが、何の言語から勉強すればいいんでしょうか? またその言語のお勧めの入門書等あれば教えてほしいです 解析に関する書籍を一冊買ったのですがプログラミング言語を知らずして読むのは無理だと確信したので ご教授お願いします ミジンコでも出来るネット解析ってサイトみてAssemblerって言語も最小限わからんと無理だなと 思って色々調べたけどそもそも実行環境整えるのがプログラミング0からの人間がやるにしては敷居が高すぎた 手をこまねいているだけじゃなく一応C++の入門書をやり始めてみたけど、意味あるのかなあ 解析したい じゃなくてこのゲームでこんな事をしたい じゃないとできるできない以前にモチベが続かなさそう、目標すら無いなら只々苦痛だと思う 目標が決まったら似たような事をしている人がどこから手をつけているか探すといいし、決まらなかったらプログラムの動作原理とアセンブラからとかじゃないかなぁ >>66 解析が出来るようになりたいが目標じゃ駄目ですかね? なんか簡単なツールでも作れるように目標を低く設定するのがいんでしょうか 自分と似てるような状況の人と同じことをしてみる、ですか 前スレ見た感じだと自分みたいにプログラミング言語もとい、ネットワーク周りのことを全く知らない人間は殆ど目標すら決まらず行き詰まってますね… 何を学習していけばいいのか全く検討もつきません; アセンブラはやろうと思ったんですがNASMとかの実行環境導入が敷居が高すぎて折れました… paizaとかでコード実行できればいいんですが・・・ レスありがとうございます 読んでいたC++の入門書は何とか読み切った しかし仮想関数、演算子のオーバーロード、STL、列挙型辺りは何を説明してるのか全く分からず プログラミング板でアドバイスを貰った所 プログラミング経験0の奴がCから入っても無駄と言われたので お勧めされたjavaとrubyの超入門書を買ってきた ああ、先が見えない・・・ x86プログラム解析入門って本買ったけど全然分からなかった 0からでも分かるって謳い文句だったけど…プログラミング知識0からじゃまず不可能だな >>71 その本、プログラミングの予備知識とか経験とか全然なかったけど、大部分は理解できたよ >>71 は難しく考えすぎじゃないのかな? 読み方を工夫すれば、書いてあることが結構理解できると思うよ えーほんとに? 俺はC++とjavaの入門書を少しやってからさっき読んでみたけど目も背けたくなるような内容でしたよ ステマじゃないの? >>73 本当だよ 1回読んでもしっかり理解できなかったから、3回最初から最後まで何日もかけてじっくり読んだけどね C++の勉強までやってる>>73 が本気を出せば普通に理解できると思うよ 74さんの頭の出来が良いだけだと思うけど… ツールの使い方とかは読んでたらなんとなく理解出来そうだけど プログラムの構造体とか列挙型とかアセンブラだのWINAPIだの今見たって全然頭に入ってこないし難しすぎる やっぱり一通りプログラミングの中級本まで読んで理解出来るようになってから読み返すのが 遠回りのように見えて近道なのかな・・ ゲームガードとか回避するのもプログラミング言語をある程度読めないと出来ないですよね? そこら辺もあまりよくわかってないけど・・ まじめにやれば3年くらいで習得できるんじゃないか ASM、C習得→言葉がやっとわかる程度 Ollyの操作習得→他人の猿真似でチートっぽいことができる WinAPIの理解 PEヘッダとDLLロード、フックの方法 ドライバとカーネル、Winsockの理解 これら学習するとやっと解析や何すればいいか見えてくる。 ー >>121 それ解析とは言わない。検索。 しかもAPIはいちいち勉強するようなものじゃない。時間の無駄。 入門者がやるべき最短手順は (1)テトリスを作ってみる。理解不足を感じたらブロック崩しや倉庫番も作ってみる。 これでゲームの構造が基本的に全部同じことを知ると同時にプログラミングの基礎を学ぶ。 (2)AdvancedWindowsとフィルタドライバプログラミングを手を動かしながら読む。 これでWindowsの構造を知ると同時にDLLインジェクトとフィルタドライバのテクニックを学ぶ。 で完了。それなりの大学行ける程度の頭があればおおむね1ヶ月で終わる。 それをアセンブラだのAPIだの必要に応じて検索すれば済むことを いちいち勉強しようとすると時間だけが無駄に過ぎていく。 ー >>75 >74さんの頭の出来が良いだけだと思うけど… いやいやいやいや 1回読んだだけでサクッと理解しちゃうプログラミング未経験の人達もいるんだから 構造体は、説明を読んだ後で、うさみみハリケーンでPEB構造体を見たり、 うさみみ付属のUMPEでPEヘッダの構造体を見たりして、こういうものって納得した こんな風に、こうしたらもっと分かるっていうのを探してみるのが大事だと思う 副読本を使うのも上手なやり方だね まじか 読んでただけだったからあまり理解できなかったのかな^^; 実際に手を動かしながらやらなかったので理解の差が出たのか 最初の方から内容きつかったから単に俺の頭が悪いだけの可能性も高いが・・・ 次読む時はツールとか色々揃えてやってみる アドバイスありがとうございます 前スレの>>13 コメマンも言われてたけど プログラミング言語とか解析入門以前にパソコン周りの事もっと勉強したほうがいいのかな プログラミング言語やり始めるまでパソコンなんてゲームでしか使ったことなかったし C++の入門書とjavaの入門書おわった8/26 ここまで解析に繋がりそうな手がかり無し 次python入門やってみよう 知り合いに苦しんで覚えるC言語って入門本もらった ラッキー これ読み終わったらロベールのC++って分厚い奴読んで その後にx86プログラム解析入門読み直すか なにかアドバイスとかあったら欲しいです 解析の仕方、ツールの使い方を説明してるサイトはあるけど 解析の学習をする前に何を学べばいいのかとか書いてあるサイトは全然ないよな この段階から探り探りでやらなきゃいけないのはめんどうくさいな 苦しんで覚えるC言語読み終わった 8/29 これで読み終わった本は スッキリ分かるjava 優しいC++ 苦しんで覚えるC言語 この3冊になった 後2冊やってからx86プログラム解析入門読もう・・・ もっと人がたくさんいるチート初心者スレあったら誘導してほしいです 中学もマトモにいってないし高校もいってないし一人で学ぶのは骨が折れる; 学歴マウント取るわけではないけど、プログラミングひいてはチートの分野って外国人のほうが詳しいし、コミュニティも多いから 高校英語くらいまではチートと並行して勉強しておいたほうが、後々助かるかも 専門用語が多い文章だとGoogle翻訳がうまく働いてくれないから自分で読まないといけないんだよね >>プログラミングひいてはチートの分野って外国人のほうが詳しいし らしいですね。これはどっかで聞いたことあるな 実際、日本人がチート販売してるのも大抵海外から拾ってきたツールだしね… おいおいやっていこうかなとは思ってます まぁでも今必要なのは何処までプログラミングの知識をつければいいのかかな 上に少し出てるけどドライバ自分で書けるまでってのも現実的じゃなさそうだし、ゲームも難しそう オンラインゲーム解析してる人が全員ゲーム作成出来るかって言われたらそうでもなさそうだしなぁ かといって自分で何処までやればいいのか検討もつかないし困った困った; 俺は情報科卒で高級言語はいくつも習得したけど、それ自体はチートの分野ではあまり役に立たなかったように思う チートが得意な人達は大抵、クラッカー紛いのこともできてたし、分野としてはセキュリティエンジニアとかアナリストの領分なんじゃないかな ミジンコの推察でしかないけど、ハッカー/クラッカーと同じで、やはりチート対策をしてる人達が一番チーターの素質あると思う そのあたりの勉強もしてみるかな でもオンラインゲームを守るゲームガードって全部プログラミング言語で書かれてるんでしょう ゲームガードの中身を覗く方法(?)も学ばなきゃいけないし、仮に覗く方法が分かったとしても中に何書いてあるのか ある程度分からないとドコをいじっていいのか一切合切分からないと思うんですが…そうでもないんですかね 考えれば考える程基礎の基礎は出来ないと話にならないんじゃないのかと思ってしまう x86プログラム解析入門って本もプログラミング、プログラム初心者が読むのは難解ってレビューが沢山あったな(Amazon) 使えるチートエンジンでスキャンごっこするだけなら何の知識も無しで出来るけど そんなのは解析でも何でも無しにただのミジンコ以下のgmですからね・・・ 今の自分はgmですね・・ ゲームガードを外してデバッガーを走らせるためには何の学習をすればいいのか教えて下さい>< ゲーム解析をするためには何を学習していかなければいけないのか? 具体的なアドバイスを募集です 今の自分の状況 今までパソコンはゲームやる時くらいしかいじったことがなかった 8月にプログラミング言語を始める C言語入門書 終 java入門書 終 ロベールのC++入門書 苦戦← イマココ 特に無ければこの後、プログラムは何故動くのか?って本買ってみようと想ってるところ チートや解析特化なら、基本レベル以上の言語の本は特に読み込む必要ないぞ ・steamとかで適当にゲーム買う ・メモリチートで数値弄る、たとえば金9999999とか ・金9999999をプログラム改造で実現してみる、敵倒したら金MAXとか、店でアイテム買っても金減らないとか こんな感じで、とりあえずやってみるのが重要 チート行うゲームはオフライン用が望ましい ネトゲとかはアンチチートついてるから、最初の内は無理 これはゲームに対してというより一般のプログラムに対してだけど ・c++で他プロセスのバイナリパターン検索するプログラムを組んでみる ・DLLインジェクションするプログラムを組んでみる ・自分自身をCRCでメモリ保護するプログラムを組んでみる ・アンチデバッグを実装してみる まずこういったのから入ればいいと思う。 上の人もいってるように実際のゲームはやめたほうがいい。 そうでなく簡易的なCheatEngineとかうさみみハリケーンを作るような方向に行けばよいかと。 >>チートや解析特化なら、基本レベル以上の言語の本は特に読み込む必要ないぞ 何故でしょうか?根拠付きで説明欲しいです XigncodeとかNprotectとかゲームプロテクトは全部プログラミング言語で出来てるんですよね 相手はプロですから当てずっぽうで回避できるくらい甘くは出来てないでしょうし、ある程度他人のコードはスラスラ読めるくらいの 言語能力が無いと難しそうに思います。解析なんてしたことないので悪魔でイメージですが。 後基本レベルがどの程度までのことを指すのかも教えてほしいです。入門書じゃ弱いですか? >>・メモリチートで数値弄る、たとえば金9999999とか こういう検索ごっこは下みたいな動画とか見れば出来ますし、それがどうスキルアップ向上につながるか分かりません・・・;; https://www.youtube.com/watch?v=fTKZK-MUysg ゲームガードを回避してデバッガーを使えるくらいのスキルが欲しいです (※ド素人が偉そうなこと言ってるように聞こえたらすいません。悪意はないです) ゲームガード回避してデバッガかけてそれが何になるんだかが疑問。 簡易的でいいからゲームガードのようなものを作るとか高機能なデバッガを自作するとかのほうが評価されるんじゃないかね。 >>96 ありがとうございます 全て今の自分には敷居が高そうですね…とっつきやすいのがない 分からない言葉もあったのでググってみましたが(インジェクション、CRC) https://ja.wikipedia.org/wiki/%E5%B7%A1%E5%9B%9E%E5%86%97%E9%95%B7%E6%A4%9C%E6%9F%BB 色々読んでみた結果 やっぱりプログラミング言語が出来て何かを作れるレベルにないと無理だと再認識 2進化16進化されたコードなんて今の自分が読んでもサッパリです プログラミングの練習をしながら「プログラムはなぜ動くのか」とか入門者にも分かりやすそうな書籍を読みパソコン周りの事も同時に勉強するのが今やるべきことなのかな 手の届く事から始めていかなければ >>98 ゲームガード回避してチートエンジンさえ起動できれば好きにコードいじってチート出来るから そこがゴールだと思ってたんですが違ってますか 今の自分はプログラム言語の入門書を2冊読み終わった程度なのでデバッガ作成とかは飛躍しすぎてますね・・・無理です そういう物を作成するにはどういう事を勉強しなければいけないのかとかお勧めの本とか教えて頂けると嬉しいですね 合法的で競争がそこにあって良い仲間と巡り会えるような道を歩んだほうが良いと思います。 目標が「商用ゲームでプロテクト外してチートしたい」だと違法性もありますし、競争がなく自己満に終わる可能性が高く、まともな人間も寄ってこないかと。 それでいいと言うなら何も言いませんが。 >>97 説明がモヤッとして伝わるかわからんけどレス >>・メモリチートで数値弄る、たとえば金9999999とか >こういう検索ごっこは まずは、メモリチートと同じ効果をアセンブラ改造で行って慣れるのが良いと考えます。 たとえば店でアイテム買ったときに金減るでしょ、これをアセンブラ改造で減らないようにする。 当然アセンブラ読まないとこのようなチートできませんよね。 こういう簡単なアセンブラ改造を行うことでデバッガの使い方やアセンブラの読み方に 慣れるのはどうでしょうか、と提案しております。 コレができて、解析初心者となります。 解析初心者ではゲームプロテクター解析の説明の理解も難しいのではと考えます。 >>102 なるほど。そういうことでしたか。 具体的なアドバイスありがとうございます 確かに今はそういうことも出来ませんね… 何か良さそうなフリーゲーム探してやってみます しかしアセンブラの事全く知らないし、かなり難しい印象があるのですが チートからアセンブラに入るのは無謀ですか?基本的な文法を覚えてからやったほうがいいのかな? といっても実行環境整えるのも面倒くさいよなアセンブラは。VisualStudioくらいなら何とかなりましたが・・ プログラムを読めることとプログラムの解析を分けて考えないから回りくどくて意味無い事をやってるんじゃないの? JavaとかMinecraftくらいしか使われてるゲーム思いつかないし、もし見る事があっても言語依存の関数なんてそれこそ上で言われてるように遭遇した時にググればいい程度 実際に手も動かしてないのになんとなく で本を読んで理解した気になってるから実際に始めると何もできない プログラムの解析すら出来ないのにゲームガードの話をし始める こういう風にすれば良いというアドバイスも無視する 実際にやってみてどこまで出来てどこからが分かりませんでした ならアドバイスもしやすいのに 「ゲーム作りたいです! どのプログラミング言語を学べばいいですか?」って言ってるのと一緒 時間の無駄 >>24 仕方ないので過去ログを読んできましたが? というか私は前スレでで回避するにはどうすればいいか聞いたらとりあえずプログラム学べと言われたので C言語とアセンブリを学びました。しかしアセンブリは難しすぎて挫折し投げましたまぁ必要ないよね 次にメモリエディッタを作りました。うさみみのような汎用と違って起動してるだけで検知される事は無くなったが プロセスにアクセスすると強制終了される さっさと回避を教えてくださいGPPはnproと違って情報が少なすぎる どのファイルが何をしててどれを潰せばいいのか1か10まで箇条書きで手順をお願いします https://wktk.5ch.net/test/read.cgi/netgame/1300500840/ より引用 とりあえずプログラムやれって言われてC言語学んでエディター作っちゃうこの人は凄いな デバッガを自作するってのは初歩の題材としては悪くないのかな?C++を学ぶ上で目標にしてやってみよう・・・ >>104 自分の中では基礎を固めてから それから実行に移らないと内容なんて頭に入ってこないって思ってた部分があったので その基礎は何を学べば付いてくるのか?というのを聞いてたつもりでした 悪いように受け取られてたらすいません。無下にしてないし回答有り難いとは思ってます 前スレの13は俺と同レベルの状態でチート解析練習の実行に移ってるけど 行き詰まってスレの奴らにお前はチート初心者以前にパソコン初心者じゃんwって煽られて消え去ってる だからそうならないようにパソコン中・上級者になるためにはどうすればいいのか?を聞いてきたつもりでした 前スレの流れを見るとチート以前にやらなくちゃならない学習事項があるような感じでしたので >>106 俺は、>>102 に書いた事からやっていったぞ たぶん、初心者は>>102 で書いたことを実現するのも難儀すると思う その都度調べて知識を蓄える 調べ物をした事による理解度は、言語本を習得した奴のほうが高い そういう意味では言語本を読むのは間違ってないが、言語本を読んだだけでは 解析能力は上がらない とりあえずやってみる事が肝心です。 プロテクターの解析は>>102 の1万倍は難しいです。 GPP使ってるゲームなんて今あるのか? FEZ、ガンダムオンラインぐらいしか記憶無いけど。 >>103 最初なのでCheatEngineだけでいいよCEのデバッガ使う アセンブラ命令はインテルのドキュメントをダウンロードする 初心者は頭から読んでも絶対に意味分からない 解析中にたとえばMOV命令があったとする、これの意味を調べるために命令セットリファレンスを検索する みたいな感じで、関連する部分を読んでいくしかない。いろいろ調べていくうちに、知識もたまって いままで「意味分からん」だった部分もわかるようになってくる。 勉強方法まで教えてくれてありがとうございます 早速https://www.jami2010.com/cheatengine-tukaikata/ で練習してるけどサッパリ分かりませんね… 102で言われてるのは正に高度編のところか 初級と高度編の中間あたりがあればいいんだけどいきなり挫折しそうだ これを繰り返していくしか無いのか movは右辺から左辺に代入する命令 レジスタはCPUに内蔵されてる変数みたいなもんで incは右辺をインクリメント? まぁ厳密には違うんだろうが…こんな漢字に覚えていけばいいのか ありがたやありがたや メモリービュー 行が多すぎてどれが自分がいじりたい命令か分からない・・・ チートエンジンでアセンブラ学びながら演習するのに参考になるサイトあれば教えて下さい; よろしくお願い致します >>94 いや、その前に大事なことがあるよ 自分も昔これで引っかかってつまづいた事があるんだけど まずは検索かけるにあたって 検索したい値の[検索単位]の違いというものをちゃんと理解して その検索したい数値の予想最大値ごとに、それぞれきちんと使い分ける事が必要 ここの基本のところを理解できないと、チート検索初心者は大抵つまづく事になると思う たとえばあるゲーム内で表示されてるパラメーターの中で資金なり、アイテム個数なりで検索をかけたい場合 その検索したい数値が 【0〜255】の範囲に該当する場合 ※16進数換算すると最大FFまで → 1バイト(8ビット)で検索かける ※アイテム個数MAX99個までとかの場合はこれで検索をかける 【0〜65536】の範囲に該当する場合 ※16進数換算で最大FFFFまで → 2バイト(16ビット)で検索かける ※あるパラメータのMAX値が9999とかだつたりする場合はこれで検索をかける 【0〜4294967295】の範囲に該当する場合 ※16進数換算で最大FFFFFFFFまで → 4バイト(32ビット)で検索かける ※RPGの資金(最大999万9999とか)や経験値なんかは大抵これでかけるのが無難かと この説明でよくわからなければ かなり古いツールだけどEasyGameのマニュアルの説明を読むともう少し理解しやすいかも http://soft3304.net/EasyGame4Win/Manual.html#BIT ページの上の方に基本的な数値検索の手順や流れも書いてあるから、そっちもついでに読んでみることを勧める ちなみに検索をかけるコツでいうと たとえばRPGの場合だったらレベルではなく経験値で検索かけて 経験値を増やしたりして改造するのが簡単かつ確実 べつに経験値を書き換えてもその場ですぐLVアップはしないが 次に戦闘して勝利するとプログラム的に内部で経験値に応じて レベルアップ/するしない の判定が行われるのでその時に一気にレベルアップできる あと実際にゲーム内では書き換わっているのにゲーム内での表示が変わっていないというのは 大抵は画面が更新されていないせいだから、一度お店から出てみるとか ステータス画面を表示して閉じるとかすると良い 2進数が関係してるんですね・・・ 1 2 4 8 16 32 64 128 /1byete...って奴か。プログラミングでも少しやったな 入門者に貴重な情報ありがとう チートエンジンはデフォルトで4byeteになってるからあまり気にしなくていいのか; チートエンジンでアセンブラいじって解析演習みたいなサイトもあったら下さいお願いします; crack meとかも同じことなのかな?いや無理だな; >>116 ありがとう 今までやったのは画面に表示されてる数字を頼りに検索する感じでしたが 例えば画面に表示されてない数字(例えばジャンプ距離とか、移動速度とか)のアドレスを見つけたい場合は どうすればいいんでしょうか? ゲームによって違う 移動速度+2の装備とかがあるゲームなら、これを足がかりに検索するとか そういうの何にも無いゲームなら、わからん移動処理をアセンブラ読んで探すしか ないんじゃね ふええぇ 教えてくれてありがとうございます^^ 検索する方法の知識は色々身についてきたな しかしメモリービュー見てアセンブラをいじる方法が全く… YouTubeにも結構動画挙がってるけどほぼ検索方法のみだな 魔法解析少女って本でも買ってみるか(´Д`) >>115 2バイトで65536は表現できません。 https://www.jami2010.com/cheatengine-tukaikata/ で練習してるけど毎回手順2のところでinjectionの結果が全然違くて詰む alloc(newmem,2048) label(returnhere) label(originalcode) label(exit) newmem: //this is allocated memory, you have read,write,execute access //place your code here originalcode: add [eax],al add [eax],al exit: jmp returnhere インクリメントなんてない・・・ 他に良さげな題材、ホームページあったら教えて下さい HowToMania-CE-HackMe01.exeはC#アプリだろうから ロードされるたびに異なるアドレスに配置されるし、関数も異なるアドレスに展開されるので 初心者の練習には向かない ゲームとかはC#ほぼ使ってないしね 洞窟物語 v1.0.0.6 とかどうよ、フリーだけどちゃんとゲームになってるぞ 藁にもすがる思いですが販売者だから多分相手にされないと思う アセンブラでチート使用がこんなに難しいとは… 今の望みは時期Amazonから届く魔法解析少女美咲本のみ >>110 さんに言われたとおりメモリービューと命令表を見て勉強してはいるものの どこをどういじっていいのか全く分からない… memory view開いてもたくさん命令がありすぎてドコを弄ればいいのか検討も付かない どやってみつければいいんだ 解析ではアセンブラ全部なんて読まないぞ(量的に無理) 金のアドレスを見つける>そこにメモリライトブレークポイント張る> 店でアイテム買う>金が減るのでブレークする>止まった周辺のアセンブラを読む CEなら「Find out what accesses this address」で該当メモリ操作するとこ列挙できるんだから その周辺のアセンブラ命令読む >>117 いや、たとえばMAX99個のアイテムだと アドレス的に、1バイトずつ並んでいるので隣のアイテム個数にまで影響するのでまず引っかからないし 数値を変えるととんでもなくバグる事にもなるのでそういう場合には CeatEngineの場合なら検索単位(値種別)をちゃんと[1バイト(バイト)]にしてやらないと絶対駄目 反対に資金が最大999万9999で、現在の表示されてる資金が210とかだったりする場合には 最初から4バイト分のアドレスが資金用に割り当てられているので、こちらは4バイトで210で検索してもちゃんと引っかかる でも逆の場合(アイテム個数がMAX99なのに、4バイトや2バイトで検索かけた場合)は 大抵アイテムごとに FF FF FF FF・・・・と小刻みに連続で割り当てられているケースがほとんどなので 隣のアイテム個数にもろ影響する可能性が高いので、こちらはきちんと1バイト単位でで検索かけないと駄目 まぁこのへんは検索単位というものを頭に入れたうえで [検索する]ことに慣れれば自然とコツは理解できるようにはなってくるとは思う うーん、もう少しかみ砕いて説明すると アイテム A用 B用 C用 D用 FF FF FF FF FF FF ・・・・・・ |〜| 1バイト範囲 |〜〜〜| 2バイト範囲 |〜〜〜〜〜〜〜| 4バイト範囲 とこうなるので、アイテムA用の検索で4バイト単位で検索をかけると アイテムD用の個数にまで影響が出てしまう事になる なのできっちりと検索する範囲をその検索したい数値に合わせて指定してやらないと ゲーム内での数値表示がおかしくなってしまう事になる ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる