チート初心者スレpart2 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
未だにinjection、しかも64bitと32bitの違いすらも分かっていない
まるで成長していない… おい・・・
見てるか>>31・・・
お前を超える逸材がここにいるのだ・・・!!
それも・・・
2人(>>494,>>504)も同時にだ・・・
>>31・・・ その動画の意味が分かるやつが入門者なのか
先が長すぎて嫌になるぜ… お 俺以外の初心者おったんかいな
先が長すぎてすぐ挫折する人(何年かしてまた取り組んでみる)の末路が俺だよ ゲームのプロテクト解除しようと思ったら
https://schiphol.5ch.net/test/read.cgi/mmosaloon/1208457391/
262,263,264,267,274,282,334,340,343,347,350,351,371,961,967
この人たち並みの知識と解析技術(バイナリファイルを読むテクニックと経験)が要求されるのだと思う
これ2009年の話だから今はもっと難しくなってるんですかね
どうなんですか 安西先生! >>537も良かったら一緒に勉強しよう
俺は今何やってるかというと昔調べた項目を実際に手を動かして確認する作業
(2年前は調べてみただけでゴールの遠さに目眩がして挫折しちゃった)
・dll injection(createremotethredを使ったやり方)
成功
・dll injection(AppInit_DLLs)
失敗
・iat hooking
成功
・メッセージフック(setwindowshookex)
めちゃくちゃしょぼい実験は成功
・inline hooking
これから試す
・デバイスドライバ作成
まだ
・SSDT hooking
まだ
・IDT hooking
まだ
・IRP hooking
まだ
crackme, unpackmeとか
windbgとか
項目はたくさんあるぞい! >>538
初心者どころか入門未満だ
CとC#の基本を勉強したけど解析に繋がるものもなかったし
>>498とか>>505みたいの全く意味分からなくて萎え掛けてる >>541
俺は何度も挫折してるし、その内挫折しちゃう(1、2週間後?)予感もあるから励ましの言葉もないよ
ゲームプロテクトはずせるのは頭がいい人 or 要領がいい人 or 地道に努力できる人
or バイナリ眺めて性的興奮覚えるような変態ぐらいだと思う
>>541が変態であることを祈るよ
>>498は何の知識もなしに見ても不明だよ
ざっくり言うと
IAT(Import Address Table)にDLLの関数のアドレスが格納されていて
windowsアプリケーションはIATをみて関数のアドレスを取得して実行しているから
そのIATを書き換えて自作の関数に処理を飛ばしちゃおうというやり方
iat フック とかでググれば説明してるサイトは複数ヒットするよ
ももいろテクノロジー IAT書き換えによるAPIフックをやってみる
http://inaz2.はてなぶろぐ.com/entry/2015/08/10/193103
APIフック
http://jackseven.s22.xrea.com/programming/apihook.html
などなど
何故かはてなぶろぐのurlがNGワードなんだよね >>541
C/C++は勿論、C#のような静的型付け言語ならかなり解析に繋がるはずだけどな
これらの高級言語を習得してからアセンブラを見れば大体どういう処理なのかを察せるようになる
その逆に解析中のアセンブラから高級言語の機能への理解が深まったりもして相乗効果 RequireSignedAppInit_DLLsっていま存在するかね
当方Microsoft Windows [Version 10.0.17763.775]だけど
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows NT \ CurrentVersion \ Windows \ AppInit_DLLs
の両方に存在しないんだよなぁ 最終的に何がしたいのかさっぱり伝わって来ない
ただ勉強してることを日記に書いてるだけ? >>548
> 最終的に何がしたいのかさっぱり伝わって来ない
最終目標で言うと最新ゲームのプロテクトを無効or回避出来るようになりたい
> ただ勉強してることを日記に書いてるだけ?
うん >>547
存在しなかったから作って実験してた
今振り返ると0じゃなく1に設定してやってたかも >>547
https://attack.mitre.org/techniques/T1103/
これを試してみたかったんだ。
この手法には3つのレジストリキー値の設定が必要らしく、それは
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows NT \ CurrentVersion \ Windows \ AppInit_DLLs
のいずれかにある
AppInit_DLLs
LoadAppInit_DLLs
RequireSignedAppInit_DLLs
なんだけど、最後のRequireSignedAppInit_DLLsが、上2つの両方のキーに無いんだよね。
自分で新規作成してもDLLは読み込まれなかったし、非署名のDLLはAppinit_DLLsには使用できなくされてるのかなと考えたり… Nikolay Igottiって人が考えたやり方試す
最初に下位アドレスをpushして、その後に上位アドレスを上書き
retでそのアドレスに飛ぶ
[cpp]
push 0xAAAAAAAAA 68 AA AA AA AA
mov DWORD PTR [rsp+0x4],0xBBBBBBBB c7 44 24 04 BB BB BB BB
ret MessageBoxAの呼び出しを自作関数にすり替えるところまで出来た。
アラインメントを全く気にしてないけど取り敢えず動いた。
BYTE jump[14] = {
0x68,0x90,0x90,0x90,0x90, // push <自作関数のアドレス下位4バイト>
0xc7,0x44, 0x24, 0x04, 0x90, 0x90, 0x90, 0x90, //mov DWORD PTR [rsp+0x4],<自作関数のアドレス上位4バイト>
0xc3}; //ret
FARPROC pTargetFunctionAddr = GetProcAddress(hModule, "MessageBoxA");
FARPROC pMyFunctionAddr = (FARPROC)&MyMessageBoxA;
memcpy(&jump[1], ((char*)&pMyFunctionAddr), 4);
memcpy(&jump[9], ((char*)&pMyFunctionAddr)+4, 4);
//MessageBoxAの先頭コードをjumpコードに書き換え
DWORD OriginalProtection;
VirtualProtect(pTargetFunctionAddr, 14, PAGE_EXECUTE_READWRITE, &OriginalProtection);
memcpy(pTargetFunctionAddr, jump, 14)
MessageBoxA(0, 0, 0, 0);
} そんな10年前のフックのやり方せずとも今はMinHookとかいろいろ便利なライブラリがあるぞ これか
https://github.com/TsudaKageyu/minhook
この人すごいな
Detoursに1万ドルも払えないから作った言うとる vac bypassとかでググってるんだけどまあまあ面白い
(内容あんま理解できてないけど)
vmt hooking後々調べてみよう
>>561のコードをいじくりつつ
しばらくはvac bypassとかpunkbuster bypassとかをググる日々かな >>561
書き換える前
48:83EC 38 | sub rsp,38 |
45:33DB | xor r11d,r11d |
44:391D 42650300 | cmp dword ptr ds:[7FFCA43E8290],r11d |
74 2E | je user32.7FFCA43B1D7E |
書き換えた後
68 3710A5D3 | push FFFFFFFFD3A51037 |
C74424 04 F67F0000 | mov dword ptr ss:[rsp+4],7FF6 |
C3 | ret |
74 2E | je user32.7FFCA43B1D7E |
たまたま長さが一致してた
汎用的にやろうとすると元のコードの命令の長さ求めて、はみ出た分はnopで埋める処理が必要になるのだろうけどめんどくさそう
minhookはどうやってるんだろう 後で調査 unknowncheatsおもしろいな
有益な情報がたくさんある気がする
以前MPGHを何回か読んだことがあるけど断然こっちの方がいい気がする
気のせいかもしれんが
How to Learn When You Have Decided To Learn
https://www.unknowncheats.me/forum/programming-for-beginners/315634-learn-decided-learn.html サーフィンしてて気になった事メモ
解析ツール
binary ninja、ghidra、ida pro、reclass
ssdt hooking win10では激ムズになった?
win10driver
署名なしはテストモードのみ動作 BEとかはそれを検知してくる
dse無効化、既存のデバイスドライバの脆弱性を利用してカーネルモードで動作させる cheat engine でアイテム名の変更をやっていて、
AというアイテムをBという名前に変更したら、所持品以外にも敵のアイテム名もAからBに変わってしまいます。
これを自分の所持品の一つだけを変更することは出来ないでしょうか?
スキャンしてもそれらしいアドレスがでないので、やり方などを教えて貰えると助かります。 >>570
その知識レベルだと多分すぐには無理だろうが
string型(文字列)はちゃんとしたプログラマかコンパイラなら同じ文字は出来る限り同じデータを参照するように作られため、参照先の文字列を変えたらそれを参照するものは全て変更後の文字になる
つまり自分が所持するアイテムAのインスタンスだけアイテム名へのポインタを自分で書き込んだ文字列へのポインタにすり替えれば良い
そのためにはまず自分の所持品リストのアドレスを探して、そのリストから目的のアイテムのインスタンスまでたどり着く必要がある
所持品のスロット場所を変えたり個数を変えたりとかすれば見つかるんじゃない 色々書いたけど要するに文字列の処理は単純な数値変えたりってのと比べたら何段も難しい
俺が持ってるゲームだったらそれくらいのチートテーブル作ってやってもいいけどな >>570
その文字列が格納されてるメモリアドレスに対して
メモリアクセスのブレークポイント仕掛ければ
その文字列を参照しているポインターが分かるのでは? >>571-573
どこから始めればいいか分からなかったので、教えていただいたことから調べていこうと思います。
お二人ともアドバイスありがとうございます! IPUSIRONって人逮捕されてたのか
日本ってセキュリティ関連の記事とか教材が少ない気がするんだけど
法律のせいなんかね 法律のせいもあるんじゃね
プロテクト外す系は話題がせいぜいで、ソースやバイナリUPしよう物なら不正競争防止法で
逮捕されるかもだし
こういうのって、出来る奴らか公開した情報をもとに中級以下が修行するのに
有意義なサンプル出せないからな
あと純粋にPCネトゲは終わってる ググって見たら無限ループでも摘発されるんだなw
検察アホすぎだろ 日本人が大したこと知ってるとは思えないから法のせいで記事が上がらずとも全く困らない Apexのチート作り方有償で教えますよ
EAC Bypass Driverもあり。
Discord: CopyAgent#9435 他板に該当スレが無かったので、若干スレ違いかもしれませんがこちらに失礼します
最近CheatEngineに手を出して、オフゲーのSLGをプレイしています
そのゲームにおいて、
1,CEを起動し、プロセスを選択すると同時に指定のAOBスキャンを実行
2,そのAOBスキャン結果をベースアドレスとして、複数のアドレスを定義付け
というコードファイル(CT?)を作りたいのですが、上手く出来ません
Youtubeで似た事例の動画やフォーラムを見て、見様見真似なのでどこがどう駄目なのかが理解できず…
AOBスキャンをする文字列や、変更したい数値のオフセットは恐らく合っていると思うのですが
https://ux.getuploader.com/nobu15/download/59
恐らく分かる方が見たら酷いスクリプトを書いてるのだとは思うのですが、
添削もしくは書き方のヒントを教えて頂けないでしょうか
ちなみに、参考にした動画やフォーラムは
https://forum.cheatengine.org/viewtopic.php?p=5545429
https://youtube.com/watch?v=vDsbIpu8H30
この辺りです
フォーラムのAug 05, 2014 6:57 pmからAug 06, 2014 3:44 amの流れも、
コードファイルに盛り込めればなぁと思っています 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) CEの Memory Viewe → Tools → Lua Engine
これでエディタ開けるからコード入れてExecuteしてみてね。
問題があればScript Errorが出るからエラーになってる行をよく見て修正してね。
あと、マルチポストはよくないよ。
https://medaka.5ch.net/test/read.cgi/gamehis/1521630363/ >>589
すみません、該当スレは人が居なくなってしまったようだったので…
検索するベースアドレスにFFが入っているせいだと思うのですが、
実行すると「expected near 'FF'」でエラーが出てしまいます
アドレスにFFの値があると、そもそも指定出来ないということでしょうか? Process HackerがWindowsDefenderに検出されるようになったのって俺だけ? どなたか>>588と>>590分かる方いませんか? チートが検出されたら、過去にそのチートを使用していた人もbanされるんですか?
今使ってないとしても チートエンジンを使用してステータスを2つから振り分け 一つを見つけていじれると思ったら
すぐにまた戻ってしまいます。チートエンジンの機能に固定化はありますが格納される前メモリを
いじれば固定化できるのでしょうか Apexのチート開発の仕方教えます。
Discord: 水谷#1584 >>597
検索したアドレスをダブルクリックして下の枠へ登録すると
一番左端に「凍結」というのがあると思う
それにチェック付けておけばOK そういうのは凍結しても意味ないよ
そのすぐに戻ってしまうという値へのWriteアクセスを確認して、書き込んでくるアセンブラコードを書き込まないように修正するのが正しいアプローチ MmCopyVirtualMemoryの使い方教えて cheat engine 7.0 をWindows10で使っています。
NOX 6.6.でスピードハックしようとしたらDLL Injection Failed と出ました
動画の通りforcedinjection-i386.dll等を使おうとしました
そしたら今度はnot be loaded - Error 126 とか 139 が出てきました。もうどうしたらよいのか分かりません。助けてください 海外の天才ハッカーもPS4のプログラムをいじれないという話だが
無反動マウスコンバーターとかはどうやって作ってるの? 海外の動画見ててチートエンジンに挑戦してみようかと思った CEって7.0でUI大幅に変わってから重く感じたからまだ6.8.2使ってるんだがそろそろアプデして良いか? >>588
このスクリプトに書かれているベースアドレスってインジェクションするアドレスのことかな?
もし静的アドレスが分かっているなら「Add Address Manually」でそれぞれベースアドレスとオフセットを追加すればいい。
どちらにしてもaobscanでアドレスの取得に失敗しているんだと思う。
こんなにFF FF FFが連続するマシン語はあまりみたことない気がする。 座標ってX,Y,Zの順が普通だよな?
とある開発元のゲームは一律でY,Z,Xの順なんだが cheat engineでset valueの値をアドレスで指定する事って可能ですか?
変更したい値がそのアドレスにある値なのでアドレスで指定したいのですが
値じゃないとダメなのかよく判らなくて困っています。 2点のベクトルから回転行列計算することって可能?
具体的にはキャラ座標(カメラの回転基軸)とカメラ座標から割り出したいんだが
メモリから取り出せばいい話だけど色んなゲームのEspを作るにあたって一つ一つ解析するのは大変なんで、比較的楽に取り出せるキャラ座標とカメラ座標から自前で計算出来れば楽なんだが >>614
なんでここで聞いたのか分からんけど要はカメラの姿勢が知りたいってこと?
カメラ座標からキャラ座標へのベクトルをZ軸
Z軸と仮のY軸(0,1,0)との外積がX軸
求めたX軸とZ軸の外積が真のY軸
各軸を正規化すればそれが回転行列 チート方法じゃなくて計算方法を聞いてるからだろ
数学板かプログラム板にいって宿題スレあたりで聞いたほうが手っ取り早い ベースアドレス、ポインタ、オフセットの効果的な見つけ方がわからん…
CEでpointer finderとかあるのは分かるけどログは何メガ行とかそういう規模で絞り込みが出来ない…
何とかしてベースアドレスを見つけてポインタとオフセットでプレイヤーの弾を無制限にするlua scriptを作りたい
RE:2 Demoなんだけど >>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にコピーして比較実行すると効果的みたい ■ このスレッドは過去ログ倉庫に格納されています