チート初心者スレpart3 (679レス)
1-

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
と判断しました。
んで結局うまく行ってないです。
526
(1): 2023/04/17(月) 00:14:00.51 ID:??? AAS
10進数と16進数で違うが合ってると判断してるのなら原因わからんわ
すまんな
527
(1): 2023/04/17(月) 00:51:42.16 ID:??? AAS
>>526
いえ、相談にのって頂きありがとうございました。

改めて検証した所こうなりました。
writeFloat("[game.exe+01016E44]+660",v_default[1]+text1.text/1000)
→うまくいく
writeFloat("[game.exe+01016E44]+0x630+0x30",v_default[1]+text1.text/1000)
→うまくいく
offset_1=0x630
writeFloat("[game.exe+01016E44]+offset_1+0x30",v_default[1]+text1.text/1000)
→うまくいく

function f2(offset)
writeFloat("[game.exe+01016E44]+offset+0x30",v_default[1]+text1.text/1000)
end
offset_1=0x630
f2(offset_1)
→うまくいかない(errorはでない)

うまくいかない理由が分かる方いらっしゃいませんか?
528: 2023/04/17(月) 01:34:48.57 ID:VG702j39(1)調 AAS
こういうことはやめようね
外部リンク[php]:forum.cheatengine.org

外部リンク[php]:forum.cheatengine.org
529: 2023/04/17(月) 04:12:40.37 ID:??? AAS
開発者に向かってstupidは草
文句だけじゃなくて改善案くらい一緒に書いとけよw
自分で暗に文字列はオブジェクトじゃないとか言っておきながら参照渡しにならないって文句いってるのも草だよな
530: 2023/04/17(月) 05:50:22.94 ID:??? AAS
ipアドレスばれてるだろうから、日本人アホだと思われてるぞ
531: 2023/04/18(火) 20:41:40.83 ID:??? AAS
>>527
さらに検証して
function f2(offset)
local o1=offset
writeFloat("[game.exe+01016E44]+o1+0x30",v_default[1]+text1.text/1000)
end
offset_1=0x630
f2(offset_1)
→うまくいく

でうまくいきました。マジでなんで。
本当に意味不明ですがとりあえず目的は達成しました。
532
(1): 2023/04/18(火) 22:38:53.42 ID:yRvVNGuH(1)調 AAS
function f1(offset,vector)
local o1 =offset
vector[1]=readFloat("[game.exe+01016E44]+o1+30")
end
vector1={0, 0, 0}
offset1=0x630
f1(offset1,vctor1)
→うまくいかない

ためしに下記をしてみると
function f2(offset,vector)
local o1 =offset
vector[1]=readFloat("[game.exe+01016E44]+o1+30")
print(vector[1])
print(vector1[1])
end
vector1={0, 0, 0}
offset1=0x630
f1(offset1,vector1)

0.086963586509228
0
で(本来参照渡しであるはずなのに)値渡し状態になってることがわかったんですけど
これどうすればいいでしょうか。
533: 2023/04/19(水) 04:34:38.04 ID:??? AAS
コンパイル必要な言語だとf2の中に出てくるvector1って未定義なんでエラーになるんじゃね?
luaが未定義だからよろしくやってくれて0にしてるとかじゃね?
その書き方だったらf2の前にvector1宣言しとくべきじゃね?
値渡しになってっるってのであれば、f2でreturnして、その値を受け取りゃいいだけじゃね?
534
(1): 2023/04/19(水) 08:05:01.52 ID:??? AAS
readFloatとwriteFloatは内部で文字列を解釈してる
そもそもluaの変数名を入れて動いてる事自体が奇跡
たぶんローカル変数しか解釈できないんじゃないの
local address = string.format("[game.exe+0x01016E44]+0x%X+0x30", offset)
local result = readFloat(address)
こうすれば絶対動く
535: 2023/04/19(水) 09:14:42.42 ID:??? AAS
覚えたてのcall by referenceって言いたいだけとか?
call by valueだったとすると型がわからないから何をどこまでコピーすればいいかのコストが高そうな気がする
536: 2023/04/19(水) 19:36:16.14 ID:??? AAS
>>534
cheatengineformで >>534 さんの言う通りだと教えてもらいました。
>>534 さんのコードの方が私のより可読性が高いものの行数が増えるなぁどうしようと思っていた所、
function f2(offset)
writeFloat(readPointer"game.exe+01016E44"+offset+0x30,v_default[1]+text1.text/1000)
end
というコードを教えてもらいました。一番シンプルでわかりやすいのでこれでいこうと思います。
537: 2023/04/19(水) 20:39:20.76 ID:??? AAS
こんな適当なことしか言わない所で聞かずに本家に行ったほうがいいんじゃね?
538: 2023/04/19(水) 21:01:02.50 ID:??? AAS
>>532
この件ですが
function f1(offset,vector)
vector={0, 0, 0}
vector[1]=readFloat(readPointer("game.exe+01016E44")+offset+0x30)
end
vector1={0, 0, 0}
offset1=0x630
f1(offset1,vctor1)
→うまくいかない
ってのが正しくて試しに
function f3(offset,vector)
vector[1]=readFloat(readPointer("game.exe+01016E44")+offset+0x30)
end
vector1={0, 0, 0}
offset1=0x630
f1(offset1,vctor1)
→うまくいく
となりました。

関数内で引数の型指定のためにゼロベクトルを代入していたのを辞めた結果うまくいくようになったのですが、
これはどういうことなんでしょうか。ゼロベクトルを代入した結果、vectorとvector1の関係が切れたと見て
いいんでしょうか
539
(1): 2023/04/19(水) 23:25:41.98 ID:??? AAS
別オブジェクトの参照で上書きしちゃったんで元オブジェクトが書き変わらないのは当然じゃね?
540: 2023/04/20(木) 19:59:46.88 ID:??? AAS
>>539
ということは
function f1(offset,vector)
vector[1]=0
vector[2]=0
vector[3]=0
vector[1]=readFloat(readPointer("game.exe+01016E44")+offset+0x30)
end
vector1={0, 0, 0}
offset1=0x630
f1(offset1,vctor1)
だとうまくいくということでしょうか。
さらに言えばvector={0, 0, 0}は単純に値を書き換えるという意味ではない何かで
vector[1]=0は単純に値を書き換えるという意味でしょうか
python辺りだと一括代入できて楽なんだけどめんどくさい感ある
541: 2023/04/20(木) 20:58:24.85 ID:??? AAS
Python知らんけどLuaでも{0, 0, 0}で初期化された新しいオブジェクト(インスタンス)作ってんじゃねーの?
一括代入っつーなら長さ10くらいの配列に{0, 0, 0}代入して配列の長さ確認してみりゃいいだけじゃね?
542
(1): 2023/04/21(金) 04:48:17.91 ID:??? AAS
CEだとオブジェクトのアドレス表示できない?
アドレス比較はできるのでどんな結果になるか確認してみれば?
a={0, 0, 0}
b=a
if a == b then print("1") end
b[1]=1
if a == b then print("2") end
b={0, 0, 0}
if a == b then print("3") end
543: 2023/04/21(金) 20:41:04.87 ID:??? AAS
>>542 さんのを実行すると
1
2
とでました。また
a=0
b=a
if a == b then print("1") end
b=1
if a == b then print("2") end
b=c
if a == b then print("3") end
を実行すると
1
とでました。ということは基本的に代入すると参照関係が切れるけど
配列の成分に値を入れる場合は特別に参照関係が切れないということで
いいんでしょうか。
544
(1): 2023/04/21(金) 22:10:08.66 ID:??? AAS
ただ単に参照って言いたかっただけで実際は何もわかっていなかった人で草
オブジェクトの変数は簡単に言うとデータが入ってるメモリの先頭アドレス
配列の各要素は先頭アドレスからのオフセットでアクセスする(正確には違うけど)
その変数に別データの先頭アドレス入れちゃったらどうなるよ?ってことだよ

あとは、自分で試したのがオブジェクトじゃなくて数値使ってるのも理解できてない証拠
そこはb=cじゃなくてb=0だろ
545: 2023/04/22(土) 17:55:17.42 ID:??? AAS
>>544
>オブジェクトの変数は簡単に言うとデータが入ってるメモリの先頭アドレス
>配列の各要素は先頭アドレスからのオフセットでアクセスする(正確には違うけど)
それとb=1をするとbとaの参照関係切れる切れない関係なくないですか?
配列の構造についての解説自体はありがたいですが…
546
(1): 2023/04/22(土) 20:13:40.89 ID:??? AAS
論点ずらすなよ
オブジェクトの話してんのにb=1とか値の話を持ち込んで混乱させてるのはそっちだろ

a={0,0,0}って内部では下のような処理してる
 a={} ←どこかのメモリを新規に確保、aにアドレス返す、仮にaddr1とする
 a[1]=0 ←writeFloat(addr1+offset+0, 0)
 a[2]=0 ←writeFloat(addr1+offset+4, 0)
 a[3]=0 ←writeFloat(addr1+offset+8, 0)
b=a ←bにもaの参照であるアドレスaddr1が入る
b[1]=1 ←writeFloat(addr1+offset+0, 1)
ここでは参照先のアドレスaddr1の指す先のデータ書き換えてるだけで、bのアドレス変える操作しとらんだろ?
b={0,0,0} ←aと同じように新規にメモリ確保、別メモリなのでaddr1とは違うaddr2がbに入る
ここでbはaの参照ではなく別データの参照に置き換わったってだけ
参照切れたとか言ってるけど参照切ってるのは君が書いたコード

参照って君が思ってるような選ばれた人しか使えないような高度な考えじゃなくて単なるデータが格納されているメモリのアドレスを指してるだけのものだよ?
547: 2023/04/22(土) 23:51:19.07 ID:??? AAS
>>546
じゃあ結局基本基本的に代入すると参照関係が切れるけど
配列の成分に値を入れる場合は特別に参照関係が切れないということですね
あと配列のパターンじゃなくて
b=1などの数値のパターンだとどうなるんですか?
548: 2023/04/23(日) 00:47:44.80 ID:??? AAS
基本的とか特別って何だよ?
配列の要素に値を設定する処理はbが指してるアドレスにあるデータを更新してるだけで、b自身のアドレスは変更してないだろ?
549
(1): 2023/04/23(日) 11:16:35.59 ID:??? AAS
もう数値とか参照関係ないだろ?
値がコピーされるだけで変数の間には何の関係もない
参照になるのはオブジェクトだけって自分で言ってただろ
550
(1): 2023/04/25(火) 14:13:40.06 ID:??? AAS
>>549
じゃあ結局代入すると参照関係が切れるけど
配列の成分に値を入れる場合は参照関係が切れないということですね

b=1の場合でもメモリ確保して1の値がそこで保持されてb自体にはアドレスを返す
であってますか?
551: 2023/04/25(火) 18:12:00.70 ID:??? AAS
lua言語の実装としてはデータの入ったアドレスとして管理してるんだろうよ
処理の中で変数bに数値入れたの知ってるから、変数bが指定されたら数値で返してるってだけ
使う側としては0入れたのにアドレスの数値が入ってたらおかしいだろ?

もう悔しくて屁理屈こねて突っ掛かってるだけにしか見えんよ
ソース読めば仕様もバグも全て書かれてるよ
552
(1): 2023/04/26(水) 16:18:36.91 ID:??? AAS
>>550
実装によるとしか言えない
いちいち4バイトのメモリを確保してアドレスを保持しているかもしれないし
4バイトではなく8バイトかもしれないし
スタックに保持しているかもしれないし
起動時に予め確保しておいたメモリ領域を使っているかもしれないし
高速化のためにメモリを使わずにレジスタだけを使っているかもしれない
わからんけど動けばよくね
553: 2023/04/26(水) 18:58:50.59 ID:??? AAS
lua実装側の変数のメモリ管理とlua利用側の変数の見え方が混乱しているっぽい
あとは参照というキーワードにこだわりを持ってる
554: 2023/04/26(水) 21:49:26.37 ID:??? AAS
イキりくさってて草
555
(2): 2023/04/28(金) 23:43:47.10 ID:??? AAS
>>552
実装によるというのは実行するアプリ(この場合ではcheatengine)という意味ですか?
556: 2023/04/29(土) 08:25:15.56 ID:??? AAS
君は実装とか言い出す前にluaの言語仕様理解しなさい
実装知りたかったらソース読みなさい
557
(2): 2023/04/29(土) 09:19:10.08 ID:??? AAS
>>555
質問を読み直してみたけど変数はすべてアドレスの別名だと思って構わない
aという変数を宣言するとLuaが勝手に0x1000000を割り当ててくれるみたいな
その前提があったうえで、さらにaがテーブルの場合は0x1000000に実データが存在する別のアドレス0x2000000を書き込むということ
0x1000000にすべてのデータを書き込めばいいと思うかもしれない
けど0x1000004にはbという変数が割り当てられてるかもしれないから、そのばあい上書きすることになる
そして上書きを避けるために代入のたびに再割当てをすると処理が重くなってしまう
だから妥協の結果としてテーブルの代入で奇妙な挙動が生まれる
直感どおりの代入がしたいならDeepcopyで調べるといい
たしかPythonも同じ問題を抱えてたはず
558: 2023/04/29(土) 09:35:17.40 ID:??? AAS
質問に答え忘れてたからもうひとつ
>>555
そう
けどテーブル代入の奇妙な振る舞いを理解するためにはそこまで考える必要はない
559: LC Production 2023/04/29(土) 18:53:43.55 ID:Wp8DYy46(1)調 AAS
c++でメモリにアクセスして、
敵の情報を取得し、
そのあとメモリを書き換えて視点を移動させる。
コードは教えれないけどそんな感じでチート作れまっせ
560
(1): 2023/04/29(土) 21:32:38.26 ID:??? AAS
>>557
deepとかshallowとかの話じゃない
テーブルを関数に渡して、引数の変数を関数内で{0,0,0}で初期化したら呼び出し元に反映されなくなったってのが始まり
その引数をbとすると、b={0,0,0}の代入では参照無くなるのに同じ代入のb[1]=1をすると呼び出し元にも反映されるが違いが理解できないって話
そこで変数はアドレスだという話をしたら、参照は関係ない数値の話を持ち出して数値の変数もアドレスなら~みたいなluaとしての振る舞いと実装が入り雑じった話になってる
561: 2023/04/30(日) 01:44:56.64 ID:??? AAS
なるほどね
こだわりがないならreturnに返り値を乗せて呼び出し元で代入すればいい
どうしても参照渡しがしたいならこうするとか?
function f(offset, pVector)
pVector[1] = {0,0,0}
pVector[1][1]=readFloat(readPointer("game.exe+01016E44")+offset+0x30)
end
offset1 = 0x630
vector1 = {0, 0, 0}
f(offset1, {vector1})
今テストできる環境にいないから動くか知らんけど
562: 2023/05/01(月) 21:29:11.09 ID:??? AAS
>>557
わかりました
563: 2023/05/01(月) 21:34:01.79 ID:??? AAS
>>560
質問した側がこういうのも失礼なのは承知してますが
あなたはもう質問に応えないでください。
自然言語でのコミュニケーションに難があるのか、質問が終わって次の質問に移行したことを理解してないし
藁人形論法で私のレスを歪曲した上で罵倒してくるのは不愉快です(参照参照一番わめいてるのはあなた自身であることに気付きましょう)
色々ためになった部分がありますが意思疎通が困難でとてもしんどいのでもうこれ以上反応して頂かなくても結構です。
564: 2023/05/02(火) 07:11:20.61 ID:??? AAS
悪意を持ってミスリードしてたから無視で正解
565: 2023/05/14(日) 14:28:30.85 ID:3mWaNf6U(1/3)調 AAS
てすと
566
(1): 2023/05/14(日) 14:28:57.87 ID:3mWaNf6U(2/3)調 AAS
こんにちは。androidエミュレータでCheatEngineのデバッグに成功した方いますか?
windows10環境でCheatEngine7.5のデバッガをbluestacks5(nougat 32bit)で起動している
fgoというアプリにアタッチしても、設定したブレークポイントで止まりません。
そこで、
外部リンク[php]:www.cheatengine.org
このサイトの通りにroot化したbluestacks側でceserverX86を起動し、windows側の
チートエンジンからネットワーク越しにfgoのプロセスを開きました。メモリスキャン&書き換えは
ceserver非使用時同様問題なくできます。しかしデバッガをアタッチするとfgoがクラッシュします。
ceserverのログはptrace errorなどがでます。
ceserverArm32などすべてのバージョンを試しましたが、デバッグアタッチ時に
今度は全部のレジスタが使われているなどのエラーがでます。有識者いますでしょうか?
567
(1): 2023/05/14(日) 14:41:17.94 ID:3mWaNf6U(3/3)調 AAS
>>566
続きです。
チートエンジンのデバッガの種類を変更したりはしました。
色々調べているとバージョンによってうまくいくいかないがあるそうです。
また、自分でCEサーバーをコンパイルして成功した人もいるようです。
レジスタall usedエラーはANDROID実機では起きず、仮想CPUだから起きるとの見解もありました。
しかし上記サイトの人は間違いなくエミュレータで成功してます。
これからceserverを自分でビルドしたものに変更したり、
過去のチートエンジン、サーバーのバージョンに変えたり、
androidバージョンを9や11に変えたりしようとは思っています。
最悪安い実機の購入も考えてます。
最近チートエンジンに手を出したので色々手探りでやってますが、わかる方いましたら是非教えてほしいです。
568: 2023/05/20(土) 15:11:53.95 ID:jhXCnLLY(1)調 AAS
>>567
成功しました。お騒がせしました。
569
(2): 2023/05/20(土) 15:40:26.97 ID:??? AAS
どうやって成功しました?
自分も過去にやってうまくいかなかったのでよければ教えてください
570: 2023/05/22(月) 13:26:46.68 ID:RqMx9qsL(1/2)調 AAS
>>569
test
571
(1): 2023/05/22(月) 13:30:25.44 ID:RqMx9qsL(2/2)調 AAS
>>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起動できないかもです。
572
(1): 2023/06/08(木) 23:03:00.77 ID:??? AAS
ポインターを指定する際にマイナスのオフセットってありえますか?
ありえるのであればどういうデータ構造だとありえるんですか?
573: 2023/06/09(金) 07:08:49.89 ID:??? AAS
構造体の配列をポイントしている時など
574: 2023/06/09(金) 11:18:05.76 ID:??? AAS
外部リンク:yu-nix.com
構造体の配列自体はここでわかったんだけど
構造体の葉いt列がメモリーにどのように格納されるかとかは
どこら辺のサイトで勉強したらいいですか?
575: 2023/06/09(金) 12:04:45.72 ID:??? AAS
自分でサンプル書いてコンパイルしてみれば?
576: 2023/06/11(日) 04:36:01.68 ID:??? AAS
メモリアライメントで調べれ
577: 2023/06/11(日) 09:15:58.50 ID:??? AAS
データサイズ的に奇数になるような構造体だと分かりやすいね
自分でサンプル書いてアドレスや内容ダンプするのが理解が早いな
sizeof使ってみれば一発でわかるし
578: 2023/06/17(土) 06:10:15.82 ID:??? AAS
構造体の配列自体はなんとなく
メモリアライメント自体はある程度きちんと
理解しました。ただこれらがどうマイナスのオフセットに繋がるかよくわかりませんでした。ごめんなさい。

あと別件ですが12*7*4byte=336byteのメモリの状態をネット掲示板でたやすく交換できるような
シリアルコード的な短い暗号にする方法って何かありませんか?
579
(1): 2023/06/17(土) 06:25:32.16 ID:??? AAS
Linked listとか?
Base64とかBase85とかBase65536とか
580: 2023/06/17(土) 06:40:16.61 ID:??? AAS
すいません間違えました
14*12個のfloatなんで672byteです
581: 2023/06/17(土) 07:11:23.74 ID:??? AAS
>>579
>base85
アスキーコード
これでやってみます
582: 2023/06/17(土) 19:06:37.74 ID:RWatc04Z(1)調 AAS
逆アセってなんのことかって思ったらそういうことか
画像リンク

画像リンク

583: 2023/06/17(土) 23:02:48.47 ID:??? AAS
>>571
返信遅れましたが詳しくありがとうございます
参考にさせてもらいます
584: 2023/06/23(金) 22:04:58.03 ID:??? AAS
チートエンジンのCEMファイルってどういうものなんですか?
585
(1): 2023/06/27(火) 18:01:18.28 ID:vEbqGmyr(1/3)調 AAS
初心者はツールに頼る前に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]で触るとかね。
586: 2023/06/27(火) 18:03:31.85 ID:vEbqGmyr(2/3)調 AAS
>>585
の安価より下が
>>572
への返信ね。

バカすぎて安価の書き方間違えた。
587: 2023/06/27(火) 18:05:01.70 ID:vEbqGmyr(3/3)調 AAS
> 例えば、int * hoge = &fuga->b;だと、fugaのbはhoge[-1]で触るとかね。
あとfugaのbじゃなくてfugaのa。頭回ってないなぁ...
連投ごめんね
588
(3): 2023/06/27(火) 22:37:05.71 ID:??? AAS
まぁボチボチ調べながらやってます。

話は変わりますが
浮動小数点の演算で、任意の小数を引数にした演算、を考えているのですが
誤差が出にくい演算のコーディングのコツってありますか?
なるべく整数演算にするってのは常道だとは思いますが今回考えているのは
任意の小数を引数にした演算なのでそれ以外の方法でコツ があれば教えてください
589: 2023/06/28(水) 00:10:34.77 ID:wvfY4N8I(1)調 AAS
>>588
スレチだしそのくらいググレカス。
精度は型に依るので、単、倍、四倍と扱える桁数は変わってくる。

そもそも小数精度の意味間違えてる。最初から0.9100..00じゃなくて0.91000035..82みたいなのを扱えばズレるわけで。コーディングとかの問題じゃあない。

高精度な浮動小数点を自前で実装するしかないね。

リサーチ癖付けな〜
590
(1): 2023/06/29(木) 11:19:25.66 ID:??? AAS
Javaが使えるならプロセス間通信で引数を受け取ってBigDecimalで計算して返すツールを作って常駐させればよさそう
結果を浮動小数点に落とし込むまでは誤差ゼロ
処理速度はだいぶ犠牲になるだろうけど
591: 2023/06/29(木) 11:32:46.32 ID:n3XgK3mH(1/2)調 AAS
>>590
別に任意精度小数はJavaの専売じゃないからどの言語にも実装はあるよ…
あとどっちも浮動小数点ね。2進数に落とし込むまでは、が正解。

自分が重箱したいだけだけど、"演算のコーディングのコツ"と聞かれたら計算そのものの話。
>>588はそもそも自分が何をしてるのか理解してないから日本語もガタガタ。

チート板で聞くような用途でそんな精度いらないと思うけどね。
592: 2023/06/29(木) 11:48:52.90 ID:??? AAS
よく知らないけどその手の演算ライブラリのDLLをCEのプロセスにロードしてAPI叩くのでは?
593: 2023/06/29(木) 15:46:52.13 ID:??? AAS
画像リンク

コンポーネントの並びの順序を変更するにはどうすればいいですか?
594
(1): 2023/06/29(木) 15:49:10.58 ID:??? AAS
有効数字は変わらんって言えばいいことをそこまでぐだぐだいう奴が”日本語がガタガタ”笑
595
(1): 2023/06/29(木) 16:49:21.90 ID:??? AAS
ツリーはグループとか階層確認だけっぽいけどな
一番裏側の部品から順番に最前面へ持ってけば希望通りに並ぶと思うぞ
あとはフォーム情報のファイル直接いじればZオーダー書いてあるんじゃねーか?
596
(1): 2023/06/29(木) 17:27:52.94 ID:n3XgK3mH(2/2)調 AAS
コーディングや計算の段階で誤差が出ると思う奴に"二進数の浮動小数点を使うなら有効桁は変わらないよ"とだけ言って正しく伝わるならそうする。

>>588にそこまで理解力あるならとっくに脱初心者してるんだよなぁ…>>594は人に教えるのうまいでちゅね〜ありがとう〜
597: 2023/06/29(木) 22:16:58.89 ID:??? AAS
>>595
一応できたっぽいんですけど
bring to frontで後ろに来て
send to backで前に来る上、
即時反映はされず一旦エディットモードを終わらせないと反映されませんでした。
これって仕様なんですかね?
598: 2023/06/29(木) 22:22:11.04 ID:??? AAS
バグ報告か改善要望でも出しとけよ
599: 2023/06/30(金) 18:25:14.00 ID:??? AAS
自分より出来ない奴を見下してマウント取るのに必死で草
リアルでも後輩社員にこんな感じで接してるんやろなぁ
600: 2023/06/30(金) 21:57:45.04 ID:??? AAS
言葉の定義にこだわってる感じ社会人というより情報学科の一年生とかだろ
そいつに限らず細かいこと気にしすぎなやつ多すぎ
チーターはチーターらしく結果をでっち上げることだけに専念すればいいのに
601: 2023/07/01(土) 16:46:06.01 ID:??? AAS
>>596
すいませんがそういうのはスレチです
ここはチート初心者スレなんで
そういうレスはコミュニケーション初心者スレとかでお願いします
602: 2023/07/02(日) 13:18:20.12 ID:b/OSoTcu(1)調 AAS
三國無双に似たオフラインゲームで
チートコードを作りたいんだけど知見がある方いれば教えて。。

やりたいことは外伝限定で操作出来るキャラを本編で操作したい。

この場合「誰を操作するか」という情報と
外伝キャラクターのidを特定する必要があると思うんだけど、どうやって特定すれば良いのか、そもそもこの考え方が合ってるのか分からなくて。 
因みにドラッグオンドラグーン3っていうPS3のゲーム
603: 2023/07/05(水) 06:19:20.70 ID:Ip85qtpE(1)調 AAS
仕事でC使ってるのにこのスレの内容全く分からん
604: 2023/07/11(火) 01:30:38.33 ID:N7G3fNL2(1)調 AAS
専ブラ停止で人がいるかわからんけども
公式の衣装のバイナリ見るのに適したバイナリエディタとかあったら教えてほしい
605: 2023/07/11(火) 13:27:29.98 ID:??? AAS
何のゲームだよ?
606: 2023/07/13(木) 07:00:19.97 ID:??? AAS
Cのような高級言語知ってるだけじゃわからんよ
機械語レベルの知識がないと
607: 2023/07/13(木) 10:45:05.28 ID:??? AAS
いまどきCって何の仕事か気になる
組み込みとか?
608: 2023/07/13(木) 22:06:23.74 ID:??? AAS
unityroomでセーブデータをいじりたいのですがよくわからないので教えてください
Chromeのコンソールを開いて実行コンテキストセレクタをwebgl-frameに設定
IndexedDBからセーブデータを取得するところまではいけました
しかし改ざんしたセーブデータをputしてもゲーム内に反映されません
これといったエラーも表示されないので手詰まりです
609
(1): 2023/07/14(金) 00:06:59.07 ID:??? AAS
ネット越しに取得するデータだからデータ破損や改ざん防止でチェックサム的なデータを持ってるかハッシュ値みたいの別途取得して比較してるとか?
610: 2023/07/14(金) 07:37:14.16 ID:??? AAS
>>609
やっぱそうなんですかね
611: 2023/07/15(土) 16:31:03.53 ID:??? AAS
自己解決しました
セーブデータのサイズが変わったのにPlayerPrefsに記録されるデータ長を変更し忘れてたのが原因でした
612: 2023/07/15(土) 16:47:47.67 ID:??? AAS
自己解決じゃないですね
アドバイスありがとうございました
613: 2023/07/20(木) 18:48:14.79 ID:Tgz99W6M(1)調 AAS
サイズの異なるファイルのバイナリを比較したいんだけど
ファイルAのX行からY行、ファイルBのZ行からW行を比較する
みたいなのができるバイナリエディタ知りませんか
614: 2023/07/20(木) 21:14:37.02 ID:??? AAS
比較したい範囲を2つのテキストファイルにコピペしてWinMergeで比較すれば楽かもね
615: 2023/07/21(金) 00:55:20.33 ID:M7XcGNJj(1)調 AAS
あぁそうか
冷静に考えれば誰でも思いつく方策を思いついてなかった
ありがとうございますやってみます
616: 2023/07/31(月) 14:07:46.07 ID:jyz2T/zU(1)調 AAS
質問失礼致します。0〜9と.しか入力できない欄にプラスマイナスその他文字などを入力する方法ってありますかね?
617: 2023/08/01(火) 22:10:21.62 ID:??? AAS
適当な数字入れて文字列でメモリ検索してアドレス見つけたらメモリ側から書き換えるとか
618: 2023/08/03(木) 09:22:00.02 ID:??? AAS
OK押した時に文字種チェック入って弾かれることもあるのでチェックロジックNOPにする必要あるかも
619: 2023/08/03(木) 13:01:21.94 ID:CmsUI+Jz(1)調 AAS
回答頂きありがとうございます。
こちらの方法を試してみます
620
(1): 2023/09/09(土) 02:34:52.06 ID:??? AAS
cheatengineの値<スクリプト>の変えた数値を直接上書きできませんか?
それと上書きすると何か問題ありますか?
621: 2023/09/14(木) 20:55:30.05 ID:??? AAS
>>620
アドレス直接書き換えだと元の値に書き戻されたりするからスクリプトで書き戻す処理を無効にするとか良くあるよ
聞く前に試すのが早いと思う
622: 2023/09/20(水) 18:58:42.50 ID:??? AAS
(((p(>o<)q))) ギャアアア!!!
623: 2023/09/21(木) 18:45:35.88 ID:??? AAS
失敗は成功のもとだ!
624: 2023/10/14(土) 13:44:54.35 ID:??? AAS
CheatEngineのCode Filterに相当することをIDAでどうやりますか?
625: 2023/10/15(日) 11:12:09.60 ID:??? AAS
スタンディングオベーションって・・
626: 2023/11/21(火) 08:34:19.33 ID:h/5+2ZaP(1)調 AAS
本当の本当に素人なのですが、質問をさせてください。
キャラクターの表情、関節の角度など、画面上で数値が表示されない値を変更したいと考えています。
アドレスの特定がかなり難しい話のような気がするのですが、もし参考になりそうな情報が載っているところをご存知であれば教えていただけないでしょうか。
627: 2023/11/21(火) 09:45:53.50 ID:??? AAS
float型を「Unknown initial value」からサーチ始めて少し移動したのち「Changed value」を繰り返す、時折ストップさせた状態で「Unchanged value」を何度か繰り返す
これをやればすぐ見つかるけど大抵は複数のシャドウコピーがあるので一旦すべてテーブルに追加して一つづつ値を変更してキャラが移動するかを試しどれが実体化を割り出す必要がある
628: 2023/11/26(日) 02:13:27.38 ID:DTR8VAyr(1)調 AAS
dead by daylightのチート作りたいのですが、メモリ読み取りするためにカーネルドライバを使う必要があります。EACに検出されない方法知っている方いますか?現在kdmapperというツールを使用しようとしていますがインテルドライバが既にあるとかいうエラーで立ち往生しています。ちなみに自分で脆弱なドライバを見繕う場合、kdmapperがやってくれてる痕跡削除等も自力で実装する必要があるので面倒くさいです。
629
(1): 2023/11/26(日) 12:22:56.39 ID:??? AAS
EACはBattleEyeなんかと並んで一応は世界最先端のアンチチート技術だからその辺は自力で出来ないと無理だよ
誰かの作ったもん利用して一時的に動いたとしても彼らはどんどんアプデ繰り返してくるからすぐ使えなくなる
630
(1): 2023/11/27(月) 12:50:11.31 ID:+4G6I6qw(1)調 AAS
>>629
それは承知の上で、現在のEACバージョンで未検出のメモリ読み取り方法を知っている方を探しています。例えばvalorantに関しては、現在僕が使っているAIエイムボットは1年間未検出です。EACでもそのような対策されていない脆弱性があるのではないかと思います。BE用でも構いかません。DMAやドライバ公式署名などお金がかかるものでもいいです。もちろん無料でとは言いません。動作の保証があればお金を払います。
631: 2023/11/27(月) 18:18:38.00 ID:??? AAS
>>630
AIエイムボットって要するに画像認識系?
であればそれは技術的にはチートとは言い難いものだからまあ検出されなくても不自然ではないが
632: 2023/11/28(火) 10:40:57.31 ID:11HBW4P2(1)調 AAS
メモリにはアクセスしません。画像認識です。エイムボットは目的であり、その手段としてメモリ読み取り、他の方法がある場合リスクが最小のものを選びます。今回の目的はACに保護されたメモリ領域へのアクセスであり、その手段としてカーネルドライバ、DMA、ハイパーバイザー、それ以外の方法がありますが、検出可能性が最小のものを選びたいです。有識者いましたら是非お願いします
633
(1): 2023/11/28(火) 14:58:51.36 ID:??? AAS
オンラインゲームでそこまでして欲しい情報とか書き換えたい情報ってあるの?
敵味方の位置情報とかそんなの?
634: 2023/11/29(水) 12:52:51.43 ID:kig3ZHW8(1)調 AAS
>>633
まさしくそれです。敵の座標(x,y,z)、自分のカメラ座標(x,y,z)、カメラ回転(x,y,z)、カメラ視野角、これらの情報がbox型のウォールハックに必要です。それらの情報はメモリにアクセスする必要があり、ACに保護されている場合それを突破する必要があります。その他にもクライアント側で管理している面白い情報が見つかります。
635
(1): 2023/11/30(木) 11:22:41.51 ID:??? AAS
クライアントのプロセス側からメモリへのアクセスはほとんどの場合blockされないから
そっちにコードっ突っ込んでメモリを読み取ればいい
アンチチート類は外部プロセスからのメモリ読み取りくらいしか制限しないです
636: 2023/12/04(月) 12:53:35.18 ID:+bZ4Nc8f(1)調 AAS
>>635
情報あざます。全然詳しくないですが、obsやdiscordのdllからフックみたいなやつですかね。ただ、ブロックされないに関してはカーネルかハイパーバイザーで読み取るでクリアしていますが、問題は検出されないかどうかです。discord等のdllを変更すると署名が失効して検出されるそうです。とりあえず今オープンソースのapex linuxチート見てたらハイパーバイザーで読み取ってるぽいので、それを流用してみます。
637: 2023/12/12(火) 05:12:16.21 ID:cGvUlraF(1)調 AAS
独自の署名付きドライバー(ev or ov)は何人ぐらいに配布したらブラックリストに登録される可能性がありますか?主にヴァンガードで使用します。
638
(1): 2023/12/28(木) 22:34:00.95 ID:/gCTshn8(1)調 AA×

639: 2023/12/29(金) 10:06:32.36 ID:??? AAS
はい、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`を返しています。どちらかが返された時点で関数が終了し、それ以降の処理は実行されません。
640: 2023/12/29(金) 13:39:47.16 ID:??? AAS
>>638
スコープをちゃんと見よう
return trueは一つ上のifが真のときにしか呼ばれない
641: 2023/12/29(金) 22:13:07.74 ID:4KbVxu0X(1)調 AAS
わかりました
ありがとう
642: 2023/12/31(日) 00:11:11.39 ID:HEGI4ft5(1)調 AAS
また質問なんだけど
pythonで配列(行列みたいなデータ)の集合を考えているんだけど
重複を許さないような集合ってsetでできる?
適当にコード書いたらTypeError: unhashable type: 'list'て出た
643: 2024/02/06(火) 23:58:54.07 ID:??? AAS
CheatEngineのCTファイルで値を変更したメッシュの情報やファイルは抽出できません?
644
(1): 2024/02/12(月) 14:03:39.58 ID:j3pXkv3y(1)調 AAS
チートエンジンで所持アイテムの個数を一括変更するスクリプトはどうすれば良いのでしょうか
外のサイト見て、HP減らないとか、減算を加算に変更するとかは見たけど、複数の同時変更みたいな記事も見つからずで
現状では、静的アドレスが見つかっている状態で、32バイト先に次のアイテム個数が有るのは分かっています
1-
あと 35 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 1.333s*