チート初心者スレpart3 (679レス)
上下前次1-新
399(1): 2022/12/15(木) 00:26:23.13 ID:??? AAS
SQLインジェクションとか裏技じゃなくてセキュリティホールだから普通は対策してる
チートじゃなくてサーバをクラックしたいの?
400: 2022/12/15(木) 01:51:08.21 ID:??? AAS
>>399
GMアカウント発見できたら面白そう
SQLインジェクションの例説明してるサイト参考に試してみたができなかったな
サイトによっては1=1とかA=Aで書かれてたりするけどここは自分で変えないといけないのか?
401(1): 2022/12/15(木) 15:22:47.14 ID:??? AAS
sqlmap導入したんだがhtml覗いてみるとPOSTメソッドでapplication/x-www-form-urlencoded使ってるんだよね
application/x-www-form-urlencoded使ってる場合と使ってない場合でやり方変わってくる?
全てのパラメータが注入できないし、もっと多くのテスト実行したい場合はコマンド入れろ言われてそれもやったけどダメだった
402: 401 2022/12/16(金) 09:35:17.73 ID:MKZ4lb6+(1)調 AAS
tampar使ったらインジェクションポイント見つけられたけど
テーブル表示するコマンド使っても
no tables foundになる
ちなみにtechniqueで攻撃パターンは全て試した
アドバイスくれ
403(1): 2022/12/16(金) 20:34:57.01 ID:??? AAS
明らかに攻撃のリクエスト送信しまくってると裏で警察動いてるかもよ
404: 2022/12/16(金) 21:52:07.31 ID:??? AAS
>>403
海外だから大丈夫
405: 2022/12/16(金) 22:29:21.79 ID:8F27aQKA(1)調 AAS
AI認識エイムアシストみたいなやつBANされません!っていたるところでみるから調べてみたけど
物体検知のyolov5をonnxに変換?して検知した物体の真ん中に仮想マウスのカーソルを移動させるらしいんだが仮想マウスの座標動かしてるならオンラインFPSならAIMの座標管理してるはずだしBANされるとおもうんだがどんなトリックがあるんだ
406(1): 2022/12/17(土) 15:18:44.20 ID:??? AAS
ガチャ回す時のパケット特定して
再び送るみたいなことやると無限にガチャ回せるの?
packet editerとかで調べると同じパケット送り直すことでキャラがそのモーションを行うみたいなのがあったけどどうなんすかね?
ネトゲの話
407(1): 2022/12/17(土) 15:47:16.63 ID:??? AAS
ネトゲはサーバ側で情報管理してるからクライアント側で再送しても所持金の範囲内でしかガチャ回せんだろ
408: 2022/12/17(土) 16:13:47.41 ID:??? AAS
>>407
これ見てるとできそうなんだが
外部リンク:github.com
409(1): 2022/12/17(土) 16:47:37.06 ID:??? AAS
あるコードの命令が書き込む複数のアドレスのfloatに相対的に1や2を足すと言った命令はどうすれば実現出来るでしょうか?
絶対値には置き換えられるのですが…
410: 2022/12/18(日) 00:01:26.46 ID:??? AAS
>>406
キャラがモーションを行うって言うのは君のクライアント内の話だから自由自在
そのモーションを行うパケットを自前で生成してクライアントに送るなりすれば課金モーションとかでも君のPC内限定だが再現は可能
ガチャはサーバー側で行う事だからめちゃくちゃザルな鯖でもない限りは不可能
411(1): 2022/12/18(日) 00:05:18.79 ID:??? AAS
>>409
mov [ポインタ], eaxみたいな書き込み命令の直前にinc eaxみたいなコードを差し込めば良い
floatのinc命令相当のコードは忘れたけど
412: 2022/12/18(日) 11:23:11.74 ID:??? AAS
>>411
そちらをヒントに探しましたらfld,fadd,fstpの利用で実現出来る事が判りました
有り難う御座います
413: 2022/12/22(木) 17:50:28.59 ID:??? AAS
パケット改ざんについて詳しい人いますか?
wiresharkやチートエンジンでできるみたいな記事みかけたけどイマイチやり方がわからん
プログラミングできないと無理?
414: 2022/12/22(木) 18:13:55.29 ID:??? AAS
やる気があるなら誰でもできる
415: 2022/12/22(木) 18:26:21.67 ID:??? AAS
パケット解析して対象のデータ突き止めたとして
次はどう編集すればいいんだ?
416: 2022/12/22(木) 19:11:07.17 ID:??? AAS
誰でもできるならさっさと教えろ
417: 2022/12/22(木) 19:23:18.86 ID:??? AAS
電文が平文だったらプロキシサーバ経由して修正、暗号だったら暗号化する直前でチートエンジン等で修正じゃね
電文仕様はゲーム毎に違うので分析が必要だね
418: 2022/12/22(木) 19:46:29.71 ID:??? AAS
昔のツールだけどWPE PROってやつDLしてみた
ピグやメイプルで使われてたものみたい
いわゆるプロキシサーバ兼エディタみたいなやつだね
パケット記録できたけどこれを解読しないといけなくて詰んでるわ
今解読しようとしているゲームが個人製作のMMOでクッソ過疎だからどこにも参考記事無いんだわ
有識者求む
419(1): 2022/12/23(金) 11:09:49.61 ID:??? AAS
暗号化されてないパケットであればビックリするほど簡単
暗号化されてるパケットをプロセスへのアタッチ無しで改竄しようと思ったらビックリするほど難しい
プロセスへのアタッチ有りなら暗号化前、復号化後のデータをフックすればいいだけだが
420(2): 2022/12/23(金) 11:47:19.93 ID:??? AAS
>>419
暗号化されてる場合
暗号化前の生データを編集しないとダメ?
チートエンジン使って内部send見つける方法の記事見てたが途中でゲーム落ちるから詰んでる
421: 420 2022/12/23(金) 12:19:16.97 ID:??? AAS
Undetected Cheat Engine使えば突破できるらしい
自己解決しました
422: 2022/12/23(金) 12:23:00.74 ID:??? AAS
暗号/復号ロジックがわかっていれば楽かもしれないけど電文いじるのは面倒よ
電文は一発で全文送信できるとは限らないので状況によっては分割されたのを集める必要あり
あとはいじった後に電文長が1バイトでも増えたらどうすんの?
423(1): 2022/12/24(土) 12:47:41.93 ID:??? AAS
暗号解読は諦めてWPE PROで遊ぶことにするわ
同じパケットしか送れないけど意図しないタイミングで送ればお金増やせたりするのかな?
大抵の場合ゲームごと落ちるが
424(1): 2022/12/24(土) 14:12:40.59 ID:??? AAS
>>423
同じ平文生データでもシーケンス番号(何回目の通信か)によって暗号化後のバイナリが変わるケースが多い
なので暗号化されてる場合はその手法も大抵は無理
それにお金とかは鯖側で管理されてるはずだから解読できたとしても大抵は無理だよ
425(1): 2022/12/24(土) 14:20:20.75 ID:??? AAS
>>424
一度ログアウトするとまるっきり変わってたな
とある記事にマイナスの値を入れるとオーバーフロー起こすみたいな書いてたけどその辺どうよ?
426: 2022/12/24(土) 15:25:18.96 ID:??? AAS
>>425
そんなのアプリ次第だろ
まあ、そういった想定していない値やチェック漏れがある処理を探してアタックするのが定番のやり方だけどな
427: 2022/12/24(土) 19:13:11.53 ID:??? AAS
そもそも暗号わかんないからマイナス値の送りようがないんだけどね
同じパケットを送ってシステムの穴付いたりできるのかな?
428: 2022/12/25(日) 21:04:52.83 ID:??? AAS
チートエンジンのデバッガでブレークポイント設定するじゃん?
移動とかアイテム購入とかのアクションする前に固まるんだけどこれ正常動作なの?
429(1): 2022/12/25(日) 21:55:43.05 ID:??? AAS
設定した箇所が他でも使われてるだけでしょ
エンジンによってはどんな処理でも同じルーチン使ってることもあるから、その場合はトレースなりで追いかけないとどうにもならんよ
430: 2022/12/25(日) 23:24:13.00 ID:??? AAS
>>429
send関数でやってるんだ
これを参考にしてる
外部リンク:github.com
431(1): 2023/01/18(水) 21:20:13.15 ID:??? AAS
プログラミングとか全く無知なんですけどjavascriptで作られたゲームでチートやろうと思ってて「CookieClickerチートで学ぶJavaScript」ていうサイトを参考にソースコードを見ようとしたら画像みたいにhiddenとかなっててちゃんと見えない
こういうサイトのソースコードを見る方法ってないんですか?
画像リンク
432(1): 2023/01/20(金) 19:16:25.60 ID:??? AAS
逆にvisibleってなってる所は見えるの?
つか本体のスクリプトはhtmlの最初のほうで読み込んでるんじゃね?
433: 2023/01/21(土) 00:14:33.54 ID:??? AAS
>>432
>>431の画像の情報しか見えなかったので違いますかね
htmlの最初の方っていうのは一個目の画像のことですか?
自分の中のイメージとしては下のコンソールに何かのコマンドを入れて一瞬で経験値999とかにしたいと思ってるんですけど何を入れればいいか分からないんですよね
画像リンク
画像リンク
434: 2023/02/08(水) 15:04:59.50 ID:??? AAS
hiddenの部分はvisibilityに"hidden"という文字列を代入するって意味で何かが暗号化されてたりするわけじゃない
だけどそもそもソースコードをすべて読み込むのは最終手段
たとえばクッキーの枚数を増やしたいならこれでじゅうぶん
・クッキーを右クリックして検証
・右側のイベントリスナータブを選択
・clickツリーを展開してbutton#bigCookieのmain.js?=v…をクリック
・表示されたコードで怪しい場所を見つける↓
Game.Earn(amount);
Game.handmadeCookies+=amount;
・amountの部分を好きな数値に書き換えてコンソールで実行
ガンバレ〜
435(1): 2023/03/08(水) 19:26:30.95 ID:??? AAS
チートエンジンのスクリプトで
スクリプトをONにすると特定のアドレスの値を1
offにすると0
ってスクリプトを考えてるんですけど
こういうのでもハックするゲームに存在する命令を改ざんする形じゃないと
設定できないのでしょうか
436(3): 2023/03/08(水) 19:40:56.08 ID:??? AAS
[enable]
アドレスorシンボル:
db 1
[disable]
アドレスorシンボル:
db 0
437(1): 2023/03/08(水) 20:18:37.50 ID:??? AAS
>>436
いやコーディングができないとかの問題じゃなくて
ハックするゲームの命令と関係なしのスクリプトは作れないかって問題です
438: 2023/03/08(水) 21:01:51.77 ID:??? AAS
>>437
???
on,off時に特定のアドレスの値を書き換えるだけなら>>436の書式でいけるでしょ
439: 2023/03/08(水) 21:15:01.39 ID:??? AAS
>>435
できるよ^^v
440(2): 2023/03/08(水) 21:54:10.37 ID:??? AAS
書き換えたいアドレスが1256da2bでauto assembleで
[ENABLE]
[1256da2b]:
db 1
[DISABLE]
[1256da2b]:
db 0
と描き込んでexcecuteを押すとnot all instructions could be injected.と出てしまいます。
何が問題でしょうかアセンブリ言語の文法間違ってるとかでしょうか
441: 2023/03/08(水) 22:24:30.97 ID:??? AAS
>>440
>>436
442(1): 2023/03/08(水) 22:32:34.79 ID:??? AAS
ブラケットいらんねん
443: 2023/03/08(水) 22:43:12.99 ID:??? AAS
>>442
ありがとうございます
これでコード自体はうまくいきました
activeのところをクリックして値が変わるのも確認しました
ただゲーム内に値変化の影響が反映されません。
値のバイト数とかの問題でしょうか?
444: 2023/03/08(水) 22:45:42.44 ID:??? AAS
ごめんなさいメモリの番号間違ってました
直したらうまくいきました。
すごい初歩的な問題だと思いますが質問に応答していただきありがとうございました。
445: 2023/03/10(金) 22:31:05.84 ID:??? AAS
重ねて恐縮ですが質問あります。
動的アドレスの関係で固定アドレスではなくポインタの場合の書式はどうなるか
教えてもらってもよいでしょうか
というかアセンブリ言語でポインタ指定って可能なんでしょうか
446: 2023/03/12(日) 17:58:37.84 ID:??? AAS
ブランケットとオフセット使え
447: 2023/03/17(金) 02:57:13.93 ID:??? AAS
とりあえずやってみます
448(1): 2023/03/17(金) 10:28:03.63 ID:??? AAS
なんか無理そうやな
>>440のアドレスがポインターの場合ってことでいいんよね
アドレスが0x00100000でオフセットが0x10、0x08、0x14だったとすると
[[[00100000]+10]+08]+14
って感じでいけるハズやで
449: 2023/03/19(日) 14:47:34.21 ID:??? AAS
>>448
質問しておきながら直近多忙によりCTに触れていません。ごめんなさい。
画像リンク
画像のようなポインタなら
[[[1257dda0]+b4]+2c]+de
でOKということでしょうか?
450(1): 2023/03/19(日) 15:07:20.96 ID:??? AAS
あってる
Add Address Manuallyから画像1番上のAddress:の部分に
[[[game.exe+00FD2420]+b4]+2c]+de
と入力すると同じ結果が得られるはず
451: 2023/03/26(日) 17:36:31.67 ID:??? AAS
>>450
遅レスですがうまくいきました
これでスクリプトのコードにいちいち動的コード全通り書かなくてもよくなりました
ありがとうございます
452(1): 2023/03/26(日) 21:05:56.68 ID:??? AAS
画像リンク
メモリを見ていると右側の欄にrightfootとかrightuplegとか明らかに意味のある単語がでてきたんですが
そもそも右側の欄は何なのでしょうかなんのために必要なのでしょうか
どなたかお教えください
453(1): 2023/03/26(日) 22:11:13.09 ID:??? AAS
>>452
左側の16進数をASCIIコードとして表示できる場合は対応した文字を表示しているだけ
プログラム内部で使用するパラメータや表示する文字列とかが見える
この文字列を参照してるコード調べれば何かわかるかも程度
454(1): 2023/03/26(日) 23:46:01.18 ID:??? AAS
>>453
わかりました。ありがとうございます。
さらに質問ですがボーンオフセットマトリックスという文字列が表示されるメモリ領域でで8つのアドレスを発見したんですが
ボーンオフセットマトリックスの変数って12個だと思うのですが8個の場合もあるんでしょうか
455(1): 2023/03/29(水) 09:41:24.85 ID:??? AAS
文字列とそれに対応したデータが近いメモリ領域に存在する保証はない
456: 2023/03/29(水) 12:07:23.57 ID:??? AAS
>>455
気を付けます。
また>>454で挙げた8つのアドレスですが浮動小数点表現(どうやらIEEE754とのこと)で2つの変数なのがわかりました。
それで、その変数を弄りたいのですが
浮動小数点表現の変数を変換する際スクリプトはどのように書けばいいか分かる方いらっしゃいませんか?
なお対象となる変数は
0は00 00 00 00
1は00 00 80 3f
と数字の順序が逆に書かれています。
457(1): 2023/03/29(水) 12:18:30.28 ID:??? AAS
float型で扱えばいいんじゃね
458: 2023/03/29(水) 13:40:21.20 ID:??? AAS
>>457
アドレスの指定は一番左側に表示されてる数字でいいんでしょうか
1なら
00 00 80 3f
↑
この”00”をアドレスで指定する感じでOKですか?
459(1): 2023/03/29(水) 14:37:09.93 ID:??? AAS
自分で試してみればいいんじゃね
失敗した時に教えた人のせいにできないとダメなん?
460: 2023/03/29(水) 15:04:25.11 ID:C/YS2r3C(1)調 AAS
>>420
俺の記事でも読んでくれたのかな?
暗号化する関数に生データ渡される時に別のデータとすり替えると楽に任意のパケット送信できる
461: 2023/03/29(水) 21:19:48.67 ID:??? AAS
>>459
できました。
ありがとうございました。
462: 2023/03/29(水) 21:21:54.25 ID:??? AAS
ボーンを(正確にはボーンオフセット行列を)いじるスクリプトを考えているのですが
人間による入力は角度(°)で、メモリの修正はサインorコサインの値で、などといった形はできますか?
できるのであればどうすればよいでしょうか
463(1): 2023/03/30(木) 08:43:00.03 ID:??? AAS
luaでスクリプト書けば?
464: 2023/03/30(木) 10:49:46.89 ID:??? AAS
>>463
luaでGUIを作る感じですかね
465(1): 2023/03/30(木) 14:53:04.98 ID:??? AAS
まずは表示する値と実際に入れる値の組でプルダウンメニュー作って選択された項目を設定するとかやってみれば?
角度決めうちならLua書かなくてもいけるかも
慣れてきたら機能追加すればいいと思う
466: 2023/03/30(木) 20:44:05.66 ID:??? AAS
>>465
チートエンジンのフォームの話ですよね?
とりあえずフォーム作成でかなり挫けてます。
というのもフォーム作成について解説してくれてるサイトがあんまりなくて。
ここ参考にすればいいとか何かあれば教えてください。
467: 2023/04/03(月) 21:24:57.83 ID:??? AAS
とりあえずチートエンジンwikiにあったチュートリアルをしたことで
おぼつかないもののフォームを作成することができ、残りはコーディング部分になりました。
ただ
ハックしたいゲームのメモリのアドレスの値を読み取る方法と、指定したアドレスに値を書きこむ方法
がそもそもわからずコーディングできません。
どうすればそれらができるようになるでしょうか
468(2): 2023/04/03(月) 22:12:34.90 ID:??? AAS
celuaに書いてあるよ
469: 2023/04/03(月) 22:21:27.07 ID:??? AAS
ハックしたいゲームのメモリのアドレスの値を読み取る方法と、指定したアドレスに値を書き込む方法については、チートエンジンwikiに詳しい説明があります。
メモリのアドレスの値を読み取る方法は、チートエンジンのメインページにある「Cheat Engine: Value Types」や「Pointers」などのセクションを参照してください。
指定したアドレスに値を書き込む方法は、チートエンジンのメインページにある「Auto Assembler」や「Code injection」などのセクションを参照してください。
また、チートエンジンを使用する方法については、wikiHowにも分かりやすい記事がありますので、参考にしてみてください。
470: 2023/04/03(月) 23:27:16.19 ID:??? AAS
>>468
txtファイルに書かれている関数を使って
writeFloat([game.exe+01016E44]+600,0)
を最後の行に付け加えて構文チェックをすると
..."]:1052: unexpected symbol near '['
とでます。
ぐぐってみると「lua言語で変数名に使用してはいけない記号を使用した際に発生します。」
とあるのですがこれはどういうことなんでしょうか[]を使えないってのはおかしいとは思うのですが
予めgame.exeが何なのかとかコードを書く必要があるんでしょうか
471(1): 2023/04/03(月) 23:52:27.03 ID:??? AAS
lua言語では、writeFloatという関数は標準ではありません。 おそらく、あなたが使っているゲームやライブラリが提供しているものだと思います。その場合、その関数の正しい使い方を確認する必要があります。
一般的には、[]を使ってインデックスを指定する場合、その前にはテーブル名が必要です。例えば、t[1]という書き方はテーブルtの1番目の要素を表します。しかし、[game.exe+01016E44]+600という書き方はテーブル名がありません。もしかしたら、これはメモリアドレスを指定しているのかもしれませんが、luaでは直接メモリアドレスにアクセスすることはできません。
もし、writeFloat関数がメモリアドレスに対応しているとしても、[]ではなく()を使って引数を渡す必要があります。例えば、writeFloat((game.exe+01016E44)+600,0)というようにです。
472(1): 2023/04/04(火) 00:31:56.91 ID:??? AAS
ダブルクォートかシングルクォートでアドレスの部分をくくってみては?
writeFloat("[game.exe+01016E44]+600",0)
473(2): 2023/04/04(火) 00:48:02.73 ID:??? AAS
>>471
[]を()に変更した所構文エラーはなくなりました(txtファイルの説明からもおそらくメモリアドレスに対応していると思われます)
それでスクリプトを実行した所
Error:[string "
..."]:4: attempt to index a nil value (global 'game')
とでました。ぐぐった所スコープ?が悪いとでました。
おそらくgame.exeがグローバル変数と解釈された?と思われます。
writefload関数の使い方がおかしいのかと思い確認しましたが
writeFloat(v: single): float をパイプに書き込みます。 送信されたバイト数を返し、失敗した場合は nil を返します
writeFloat(address,value) : 指定されたアドレスに単精度浮動小数点を書き込みます。 成功時に true を返します
writeFloatLocal(address,value) : CE のメモリ内の指定されたアドレスに単精度浮動小数点を書き込みます。 成功時に true を返します
>>468 さん が言ってたcaluaに載ってる内容なのでチートエンジン的にはすでに実装されている関数であり
説明から見るにwritefloat(,)関数なのは間違いなく、使い方が
474: 2023/04/04(火) 00:49:21.47 ID:??? AAS
途中で切れてしましました
説明から見るにwritefloat(,)関数なのは間違いなく、使い方が問題だったのではと思っています。
どう修正すればいいでしょうか
475: 2023/04/04(火) 02:09:53.12 ID:??? AAS
function UDF1_1_CEToggleBox1Click(sender)
print(tostring(writefloat))
writeFloat("[game.exe+01016E44]+600",-0.5)
end
で
>>473 さんの言う通りにしてみた所
うまくいきました!(なんで上手くいったかは全然わかりませんが)
ありがとうございます
476: 2023/04/04(火) 02:24:11.24 ID:??? AAS
失礼しました
>>472 さんの間違いです
function UDF1_1_CEToggleBox1Click(sender)
print(tostring(writefloat))
writeFloat("[game.exe+01016E44]+600",-0.5)
end
で
>>473 さんの言う通りにしてみた所
うまくいきました!(なんで上手くいったかは全然わかりませんが)
ありがとうございます
477: 2023/04/04(火) 08:44:12.13 ID:??? AAS
luaのパーサーは標準のやつでブラケット使うアドレス表現は解釈できないってこと?
一旦、文字列引数として受け取って、CEのアドレス表現として評価してるのかな?
478: 2023/04/05(水) 03:28:28.55 ID:??? AAS
luaはC#の方言って感じだからC#の文法にないことは出来ない
そういうこと
479(1): 2023/04/05(水) 21:38:23.51 ID:??? AAS
フォームでeditに書かれてる値を読み込むコードを書きたいんですけど
どんな関数使えばいいですか?
480: 2023/04/06(木) 23:39:35.67 ID:??? AAS
人に頼らず自分で調べてみれば?
外部リンク:cheatengine.org
481: 2023/04/07(金) 17:41:33.21 ID:??? AAS
正直lua使っていくならいちいちここで質問せずにサイトやら書籍使って勉強したほうがいいよ
lua自体はそんな難しいプログラミング言語じゃないし
482: 2023/04/07(金) 18:17:32.27 ID:??? AAS
luaと言うかCEでの作法を覚えるしかないと思うぞ
GUI部品とか親フォームからたどっていったり、ID指定で取ってくるとか複数のやりかたがあったはず
フォーラムのコードとか見れば大体解決する
483: 2023/04/07(金) 18:41:19.27 ID:??? AAS
>>479
function UDF1_1_CEToggleBox4Click(sender)
print(tostring(writefloat))
print(tostring(readfloat))
writeFloat("[game.exe+01016E44]+5d0",math.cos(math.rad(UDF1_1.CEEdit1.text)))
writeFloat("[game.exe+01016E44]+5f8",math.cos(math.rad(UDF1_1.CEEdit1.text)))
writeFloat("[game.exe+01016E44]+5d8",math.sin(math.rad(UDF1_1.CEEdit1.text)))
writeFloat("[game.exe+01016E44]+5f0",-math.sin(math.rad(UDF1_1.CEEdit1.text)))
writeFloat("[game.exe+01016E44]+5d8",readFloat("[game.exe+01016E44]+5d8")*UDF1_1.CEEdit2.text)
writeFloat("[game.exe+01016E44]+5f8",readFloat("[game.exe+01016E44]+5f8")*UDF1_1.CEEdit2.text)
end
大体こんな感じで
・editに書かれてる値をアドレスに書きこむ
・editに書かれている値の数をかける
はできるようになりました。
ご協力ありがとうございます。
484: 2023/04/07(金) 18:44:14.18 ID:??? AAS
行列演算したいんですけど
場合によっては作成したCTファイルを配布する前提(なお作っているCTファイルはオンラインで迷惑行為をするようなものではありません)なので
torchみたいな外部ライブラリをDLせずに演算できるようにしたいです。
どうすれば良いでしょうか。
485(1): 2023/04/07(金) 19:40:51.64 ID:??? AAS
こども電話相談室みたいになってきたなw
外部ライブラリはライセンスに従って自分のEXEと一緒に再配布しちゃえばいいんじゃね?
EXEにしても中ではluaのインタプリタで動くので演算速度のメリットはなく、高速な外部ライブラリキックしたほうが断然速い
486: 2023/04/07(金) 23:57:26.65 ID:??? AAS
>>485
torchというライブラリの導入方法がわからいのもあり
とりあえず自分で行列計算のメソッドを書いてみたんですが
これであってますか?
matrix = {}
for i = 1, 3 do
matrix[i] = {}
for j = 1, 3 do
matrix[i][j] = 0
end
end
function matrix_mul(A,B)
local C ={}
for i =1,3
for j = 1,3
C[i][j]=A[i][1]*B[1][j]+A[i][2]*B[2][j]+A[i][3]*B[3][j]
end
end
487: 2023/04/08(土) 14:00:03.12 ID:??? AAS
結局
function matrix_mul(A,B)
local C ={{0, 0, 0},{0, 0, 0},{0, 0, 0}}
for i =1,3 do
for j = 1,3 do
C[i][j]=A[i][1]*B[1][j]+A[i][2]*B[2][j]+A[i][3]*B[3][j]
end
end
return C
end
で行列の計算ができるようになりました
いちいち型指定するのにゼロをいれないといけないのが不便
488: 2023/04/08(土) 23:22:01.03 ID:??? AAS
大体コード部分はできたんですけど
作っているフォームのパネルやエディット、ボタンなどを
コピーアンドペーストして複数設置するようにするにはどうしたらよいでしょうか
489(1): 2023/04/08(土) 23:42:35.29 ID:??? AAS
ショートカットキーでいけんじゃね?
490(1): 2023/04/08(土) 23:50:10.09 ID:??? AAS
画像リンク
こんな感じですね
>>489
右クリックでこんな感じになります
画像リンク
ctrl+c→ctrl+pでいけると私も思ったんですけど
うまくいかなかったです
491(1): 2023/04/09(日) 00:00:19.88 ID:??? AAS
object inspector見ればコピペした後に部品増えてんだろ?
同じ位置に出て気付かないだけで
492: 2023/04/09(日) 00:02:30.50 ID:??? AAS
>>491
ツリー上の所を見ても増えてないです。
チュートリアルにもctrl+c ctrl+pで複製しろみたいな事書かれているので
できるはずなんですけど…
493: 2023/04/09(日) 16:31:21.61 ID:??? AAS
ショートカット使えないならあきらめ
フォームをファイルに書き出して編集、必要な部品コピペして部品IDユニークになるように書き換え、再読み込みとか泥臭いやつでもやってみれば
494: 2023/04/09(日) 19:11:01.80 ID:??? AAS
>>490
気になるから何のゲームか教えてくれませんか
495: 2023/04/15(土) 22:56:42.10 ID:??? AAS
チートエンジンでスクリプトをオンにするとフォームが起動して
オフにするとフォームが消えるようにするにはどうすればいいですか?
496: 2023/04/16(日) 00:46:24.64 ID:??? AAS
m_default_right_breast_tip={{0, 0, 0},{0, 0, 0},{0, 0, 0}}
v_default_right_breast_tip={0, 0, 0}
set_this_matrix_as_default(offset_right_breast_tip,m_default_right_breast_tip,v_default_right_breast_tip,…略
function return_to_the_default(offset,
m_default,
v_default,
text1,text2,text3,text4,text5,
text6,text7,text8,text9,text10,
text11,text12,text13,text14,text15)
print(tostring(writefloat))
writeFloat("[game.exe+01016E44]+offset+0",m_default[1][1])
writeFloat("[game.exe+01016E44]+offset+4",m_default[1][2])
writeFloat("[game.exe+01016E44]+offset+8",m_default[1][3])
writeFloat("[game.exe+01016E44]+offset+10",m_default[2][1])
writeFloat("[game.exe+01016E44]+offset+14",m_default[2][2])
writeFloat("[game.exe+01016E44]+offset+18",m_default[2][3])
writeFloat("[game.exe+01016E44]+offset+20",m_default[3][1])
writeFloat("[game.exe+01016E44]+offset+24",m_default[3][2])
writeFloat("[game.exe+01016E44]+offset+28",m_default[3][3])
writeFloat("[game.exe+01016E44]+offset+30",v_default[1])
writeFloat("[game.exe+01016E44]+offset+34",v_default[2])
writeFloat("[game.exe+01016E44]+offset+38",v_default[3])
・・・・(省略)
end
みたいな形でコードを書くと attempt to index a nil value (local 'm_default')
と出るんですがfunctionの変数に行列を入れた場合行列の成分を使うのできないってことですか?
497: 2023/04/16(日) 00:49:53.33 ID:??? AAS
まとめ方が下手だな・・・
matrix_a={{0, 0, 0},{0, 0, 0},{0, 0, 0}}
で
function X(matrix)
print(matrix_a[1][1])
end
の時
X(matrix_a)
を実行できますか?
ということです
498: 2023/04/16(日) 00:50:08.34 ID:??? AAS
1. チートエンジンのメインウインドウから、「Table->Show Cheat Engine Lua Script」をクリックしてください
2. スクリプトウインドウで、フォームを作成するコードを記述します
```
-- フォームの変数を作成
local form = createForm(false) -- falseはフォームが自動的に表示されないことを意味する
-- フォームのタイトルやサイズなどを設定
form.Caption = "My Form"
form.Width = 300
form.Height = 200
-- フォームにボタンやラベルなどのコントロールを追加
local button = createButton(form)
button.Caption = "Click Me"
button.Left = 100
button.Top = 50
local label = createLabel(form)
label.Caption = "Hello World"
label.Left = 100
label.Top = 100
```
499(1): 2023/04/16(日) 00:55:09.16 ID:??? AAS
3. スクリプトウインドウで、スクリプトを有効化したときにフォームを表示し、無効化したときにフォームを非表示にするコードを記述します
コード書いたらNGワードになるから頑張って書いて
4. スクリプトウインドウで、「Execute Script」ボタンを押してスクリプトを実行します
5. チートテーブルのスクリプトエントリーのチェックボックスをオンにすると、フォームが起動し、オフにするとフォームが消えるはずです
500: 2023/04/16(日) 01:04:13.46 ID:??? AAS
画像にすれば良いのか
画像リンク
501(1): 2023/04/16(日) 01:25:23.29 ID:??? AAS
>>499
スクリプトに
[enabe]
(フォーム名).show()
[disable]
(フォーム名).hide()
じゃだめってことですか?
502(1): 2023/04/16(日) 01:29:04.94 ID:??? AAS
>>501
それでもできると思います
ただし、フォームのインスタンスを作成する必要があります例えば、以下のようなコードです
local form -- フォームの変数
[ENABLE]
form = createForm(false) -- フォームのインスタンスを作成
form.loadFromTable(cheatForm) -- チートテーブルに保存したフォームを読み込む
form.show() -- フォームを表示する
[DISABLE]
form.hide() -- フォームを隠す
503: 2023/04/16(日) 01:37:18.73 ID:??? AAS
>>502
すいません一行目のlocal formがよくわかんないです
画像リンク
504: 2023/04/16(日) 01:59:14.23 ID:??? AAS
local form = createForm(false)
で変数の型を指定してみて
505: 2023/04/16(日) 02:18:11.09 ID:??? AAS
local form = createForm(false)
がコンパイルできないって出ました…
というかluaって変数の型指定って具体的な代入以外でできましたっけ?
506(1): 2023/04/16(日) 02:47:59.32 ID:??? AAS
luaは変数の型指定は必要ありませんが、変数のスコープを指定するためにlocalを使います
Luaでは変数の型は動的に割り当てられるため、必要に応じて異なる型の値を割り当てることができ
もしかしたら、createForm関数が定義されていない可能性があります
507: 2023/04/16(日) 09:58:24.46 ID:??? AAS
>>506
私が使用しているcheatengineはヴァージョン7.5で
以前ここでcelua.txtに使える関数が載ってると言われたので
確認しましたが
createForm(visible OPT): creates a CEForm class object(window) and returns the pointer for it. Visible is default true but can be changed
とあったの定義されてるはず…なんですけどどういうことなんでしょうか…
pythonとかだと〇〇のライブラリ呼び出しますみたいな一文書きますけど
luaにも必要なんでしょうか
508(1): 2023/04/16(日) 10:12:56.19 ID:??? AAS
{$lua}付けてないだけとか?
509(1): 2023/04/16(日) 10:52:11.48 ID:??? AAS
こんなんで動くんじゃね?
{$lua}
local form = nil
{$asm}
[ENABLE]
{$lua}
if form == nil then
form = createForm(True)
end
form.show()
[DISABLE]
{$lua}
if form ~= nil then
form.hide()
end
510: 2023/04/16(日) 10:57:56.21 ID:??? AAS
フォームを✕ボタンで閉じちゃったりすると動かなくなるので、formがnilじゃなくても表示されてるか閉じられたformなのか判定する必要がありそう
フォーム閉じるタイミングのコールバックがあれば何かするとか
511(1): 2023/04/16(日) 12:21:04.96 ID:??? AAS
>>509
form.loadFromTable(cheatForm)
挟んでないのに行けるの?…と思いながらも
実行したらいけました。
というか
[enable]
{$lua}
(ォーム名)a.show()
[DISABLE]
{$lua}
(フォーム名).hide()
でいけました。
>>508 さんの言う通りでした。
{$lua}つけなくてもフォームのコーディングとか他人配布のCTファイルのスクリプトははいけたのになんで?ってなりました。
とりあえずよくわかんない時は{$lua}つけた方がいいんでしょうか
512(1): 2023/04/16(日) 12:35:02.01 ID:??? AAS
>>511
そりゃ<LuaScript>の中に書いてりゃLuaってわかるけど、<AssemblerScrip>の中だと{$asm}が前提になってるから{$lua}って明示する必要があっるてだけじゃね?
513: 2023/04/16(日) 12:41:34.55 ID:??? AAS
>>512
あぁなるほど
すごく初歩的な質問ですいませんでした。
チートエンジンウィキのチュートリアルにはまったく書かれてない内容なんだけど
チートエンジンのチュートリアルが不親切すぎるのか、ここが相当親切なのか…
514: 2023/04/16(日) 14:58:00.90 ID:??? AAS
function f1 (text1,text2)
text1=0
text2=1
end
function ……Click(sender)
f1(form.CEEdit1.text1,form.CEEdit1.text2)
end
みたいなコードを書いて該当のフォームをでクリックしてもform.CEEdit1.text、form.CEEdit2.textの値が変わらないんですけど(しかもエラーはでない)
問題はプログラミング部分でしょうかコーディング部分でしょうか
515(1): 2023/04/16(日) 15:28:07.96 ID:??? AAS
言語仕様よく知らんが、文字列や数値だと値がコピーされて値渡しになってんじゃね?
Editのようなオブジェクト渡せば参照渡ししてくれんじゃね?
516: 2023/04/16(日) 17:39:02.98 ID:??? AAS
>>515
それだ!と思ったのですが調べた見たところオブジェクトは参照渡ししかできないようなので
違うと思います。
オブジェクト
以下の型は オブジェクト である
テーブル
Luaのテーブルは動的に確保された オブジェクト
関数
スレッド
ユーザーデータ
オブジェクトは変数の格納されず、参照されるのみである
代入、引数渡し、関数の返り値は、コピーではなく参照が渡される
テーブルついて
517(1): 2023/04/16(日) 18:01:38.89 ID:??? AAS
Cheat Engine Forumで聞いてみ
Google翻訳でなんとかなるで
518: 2023/04/16(日) 18:35:43.14 ID:??? AAS
form.CEEdit16.text=10000
→フォームの数字が1万になる
function f1(text1)
text1=10000
end
f1(form.CEEdit16.text)
→フォームの数字が変わらない
実験して上記の通りになったんで
本来オブジェクトは参照渡しのはずなのに参照渡しされないっぽいです。
>>517
そっちにも聞いてみます。
519(1): 2023/04/16(日) 18:45:51.94 ID:??? AAS
すごい初歩的で致命的なバグが放置されていたんだね
ヒーローになれるかもしれませんね
520: 2023/04/16(日) 19:11:40.67 ID:??? AAS
>>519
どうも書き換えるだけでなく読み込む方でも関数の引数にeditオブジェクト使えないっぽいんで
やっぱeditオブジェクトのバグなのかなぁと思ったりもします。
521: 2023/04/16(日) 19:15:53.16 ID:??? AAS
はーチュートリアルに実装されてない機能使えとかあったり
フォームはコピペすらできないし
コードに{$lua}って書いてなかったり(チュートリアルに書かれてあるコードだとコンパイルすらできない)
editオブジェクトは引数に使えなかったり
ゴミすぎんだろCE……
522: 2023/04/16(日) 22:12:35.88 ID:??? AAS
forumで効いたら
unction f1(text1)
text1.text=10000
end
f1(form.CEEdit16)
とのことでした。
型指定とかゆるゆるなのにこういうところは厳しいのか…
523(1): 2023/04/16(日) 22:19:50.99 ID:??? AAS
writeFloat("[game.exe+01016E44]+660",v_default[1]+text1.text/1000)
でうまくいくのですが、後の改変に備えてモジュール化したいので
offset=0x630
writeFloat("[game.exe+01016E44]+offset+30",v_default[1]+text1.text/1000)
としたらうまくいきません。
どうすればよいでしょうか?
524(1): 2023/04/16(日) 23:15:43.65 ID:??? AAS
オフセットの値ちがくね
525: 2023/04/16(日) 23:55:17.64 ID:??? AAS
>>524
630+30で660では?
readFloat("[game.exe+01016E44]+5d0")では狙い通りのアドレスの値を読み込んでいるため
writeFloat("[game.exe+01016E44]+660",v_default[1]+text1.text/1000)
の+660の部分は+0x660であり+630+30に変えても問題ないため
>>523
と判断しました。
んで結局うまく行ってないです。
上下前次1-新書関写板覧索設栞歴
あと 154 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.216s