-
Notifications
You must be signed in to change notification settings - Fork 6
Interesting Funcs and Props ja JP
手作業で数千個のUFunctionとUPROPERTYフィールドをスキャンする代わりに、Interesting FuncsとInteresting Propsタブはキーワードスコアリングと構造的なヒューリスティックによって高価値なものを抽出します。つまり、Cheat Engineテーブル製作者はテレポート/ダメージ/金銭関数、あるいは非従来的な場所のHP/ゴールド/ステータスプロパティなど、候補となるものに即座にアクセスできます。
Interesting Funcsパネルは、読み込まれたUClasssの全UFunctionをスキャンし、キーワードマッチ(例:「Teleport」「GiveMoney」「Kill」)、リフレクションからのフラグ(Native、Static、Exec)、クラスメンバーシップボーナスでそれぞれをスコア化してから、スコアの降順でランク付けします。高スコア関数はデフォルトで非表示になっており(閾値5以下)、Show Allトグルで低スコア関数を含めることができます。
- Loadをクリックして全UFunctionをスキャンします(1M+オブジェクトを持つ大規模ゲームでは2~10秒かかります)。スコアはクライアント側で計算され、ステータス行に全関数数、スキャン済みクラス数、閾値を超えたものの数が表示されます。
- 以下を使用して結果をフィルタリングします。
- Game Only – /Script/Engineおよび他のエンジンパッケージをスキップ(典型的なゲームではセット結果が約5分の1になります)。
- Filterテキストボックス – 関数名またはクラス名に対する部分文字列マッチ(大文字小文字を区別しない。例:「Money」ならAddMoneyとPlayerInventory::AddMoneyの両方を見つけます)。
- Categoryドロップダウン – Stats / Inventory / Movement / Combat / Utility / Other(カテゴリは関数ごとに最も高スコアのキーワードから選ばれます)。
- Show All – 閾値以下のものを含む全関数を含める(関数が存在することは知っているが、スコアが高くランク付けされていない場合に有用)。
- Class filter – ノイズが多いクラス(UIウィジェット、システムコンポーネント)をファセットピッカーで除外。
- 1行以上を選択(Ctrl/Shift+クリック)して、Cheat Tableをバッチ生成するか、個別の関数を検査します。
| コントロール | 目的 |
|---|---|
| Game Only | エンジンパッケージ(/Script/Engine、/Script/CoreUObject)を除外。再チェックして適用するように再度読み込みます。 |
| Filter | 関数またはクラス名での部分文字列マッチ(大文字小文字を区別しない)。 |
| Category | Stats > Inventory > Movement > Combat > Utility(最も高スコアのキーワードから選ばれます)。 |
| Show All | スコア閾値(5)をバイパスして全関数を表示。 |
| Clear | Filter、Category、Show Allをデフォルトにリセット。 |
| Class filter | 右クリックでファセットピッカーを開く。チェックして除外するクラスを選択。 |
- Score – ランク付けに使用される数値スコア。ホバーすると内訳が表示(キーワードヒット、クラスボーナス、フラグボーナス)。
- Cat – カテゴリラベルと色(Stats、Inventory、Movement、Combat、Utility、Other)。
- Class – 所有するUClassの名前。
- Function – UFunctionの名前。
- Flags – リフレクションフラグ(Native、Static、Exec等)。
- Params – パラメータ数。
- Uses – この関数が読み書きするプロパティ(バッチ「Props」スキャンで入力。ネイティブ関数またはアクセス不可関数は「0」、プレビューは「2 · Health, Mana, …」のように表示)。
| ボタン | アクション |
|---|---|
| inst | この関数のクラスをInstance Finder タブで開く(クラス名を事前入力して検索を実行)。 |
| Props | この関数のバイトコードが読み書きするプロパティを一覧表示(モーダルダイアログ。ネイティブ関数は何も表示しません)。 |
| Live | Live Walkerで開く。ライブ(非CDO)インスタンスが存在しない場合はClass Structにフォールバック。自動的にFunctions セクションを展開して行を選択。 |
| 🌍 | GWorldに配置 — この関数のクラスのライブインスタンスを見つけ、GWorldからへのポインタパスを表示(親モード)。GWorldが解決されるまで無効。 |
| ⚙ | GameEngineに配置 — この関数のクラスのライブインスタンスを見つけ、ライブUGameEngineからへのポインタパスを表示。エンジン層オブジェクトに到達できます。ほとんどのワールドアクターには🌍を使用。 |
| AA(B) | Copy AA Script (Baked) — この関数のBaked Invokeダイアログを開く。Tools → Export CE Helper Lua FileでCEテーブルに埋め込まれたue5_invoke_helper.luaが必要。 |
| Name | 裸の関数名をクリップボードにコピー(クラスプリフィックスなし。CEスクリプトに直接貼り付け可能)。 |
- ⤋ Props – 選択行(未選択の場合は全行)のUsesカラムを入力して、行ごとのダイアログを開かずにフィールド参照を表示。高速です。各呼び出しは1つの関数のバイトコードのみを読み取ります。進度を表示し、キャンセル可能です。フィルタ変更間でキャッシュ(再バッチでは未完了の行のみを含める)。
- 📦 Generate CT – すべての選択行のbaked-invokeエントリを含む.CTファイルを生成(まず複数選択するにはCtrl/Shift+クリック)。パラメータを持つ関数については、生成されたスクリプトのヘルパーがPARAMSバッファをゼロ埋めします。Cheat Engineで有効にする前に、baked PARAMSテーブルを編集します。行は有効なクラスと関数名を持つ必要があります。
- プログレスバー – 読み込み中に表示。段階的ステータスは読み込みフェーズを表示(「Loading all UFunctions (2–10s on large games)…」)。
- ステータステキスト – 最終カウント、スキャン済みクラスカウント、閾値適格行、スキャン済みオブジェクトカウントを表示。フィルタ変更時に再計算。
- Class filterメモ – クラス除外で非表示にされた行のカウントを表示(空のグリッドが古いフィルタが原因かどうかを区別するのに役立つ)。
- AOBMakerメモ – Cheat Engine AOBMakerプラグインに到達不可の場合に表示(「AOBMaker plugin not found — AA Script export will fall back to clipboard」)。AA(B)はクリップボードフォールバック経由でも機能します。ワークフローは単に劣化しています。
Interesting Propsパネルはキーワード駆動アプローチを使用して高価値プロパティを検索します。シード キーワード(HP、Damage、Gold、Speedなど)に対する並列クエリを発行し、キーワードマッチと構造的ヒューリスティックでスコア化し、重複排除してスコア順にランク付けされたものを表示します。注目すべき機能:Unusual Locationバッジ(⚠)は、所有クラスが従来のCharacter/Pawn/PlayerState階層(LocalPlayer、HUD、GameViewportClient、CheatManager等)の外に位置するプロパティを強調しています。これはCE製作者が見逃すかもしれないが、チートはしばしば隠しています。
- Loadをクリックしてシードキーワードリスト全体でクエリを展開して結果をスコア化。ステータステキストは生ヒットカウント、スキャン済みクラス、スコアリングフェーズの進度、最終的なユニークプロパティカウント+閾値/異常な内訳を表示。
- 以下を使用して結果をフィルタリングします。
- Game Only – エンジンパッケージをスキップ(推奨 —ゲーム固有プロパティはチートテーブルのターゲット)。
- Filterテキストボックス – プロパティ名またはクラス名での部分文字列マッチ(大文字小文字を区別しない)。
- Categoryドロップダウン – Stats / Combat / Resources / Movement / Utility / Other。
- ⚠ Unusual Only – 所有クラスがUnusual Locationリスト(LocalPlayer / GameViewportClient / HUD / CheatManager)にあるプロパティのみを表示。これは通常のProperty Searchからの主な違い:隠れた宝石を表面化。
- Show All – 閾値以下のものを含む全プロパティを含める(閾値は4)。
- Class filter – ノイズが多いクラスを除外。
- 行を選択(Ctrl/Shift+クリック)して、それらを参照する関数をバッチ検索するか、フリーズベースのCheat Tableを生成。
| コントロール | 目的 |
|---|---|
| Game Only | エンジンパッケージを除外。推奨ON。再チェックして適用するように再度読み込みます。 |
| Filter | プロパティまたはクラス名での部分文字列マッチ(大文字小文字を区別しない)。 |
| Category | Stats、Combat、Resources、Movement、Utility、Other。 |
| ⚠ Unusual Only | 異常な場所(LocalPlayer、HUD、GameViewportClient、CheatManager)にあるプロパティのみを表示。 |
| Show All | スコア閾値(4)をバイパスして全プロパティを表示。 |
| Clear | Filter、Category、Unusual Only、Show Allをデフォルトにリセット。 |
| Class filter | 右クリックでファセットピッカーを開く。チェックして除外するクラスを選択。 |
- Score – ランク付けに使用される数値スコア。ホバーすると内訳を表示。
- Cat – カテゴリラベルと色。
- ⚠ Location – プロパティがUnusual Location(LocalPlayer、HUD、GameViewportClient、CheatManager)にある場合のバッジ。ソート可能。ホバーするとスコアの詳細を表示。
- Class – 所有または定義するUClassの名前。
- Property – UPROPERTYの名前。
- Type – UEタイプ(BoolProperty、IntProperty、FloatProperty等)。
- Offset – クラスインスタンス内の16進オフセット。
- Funcs – このプロパティを参照する関数(バッチ「Find Funcs」スキャンで入力。「2 · AddHealth, TakeDamage, …」のようなカウントを表示)。
| ボタン | アクション |
|---|---|
| inst | このプロパティのクラスをInstance Finder タブで開く(クラス名を事前入力して検索を実行)。 |
| Find Funcs | このプロパティを読み書きするUFunctionを一覧表示(静的バイトコードクロスリファレンススキャン)。モーダルダイアログを開く。時間を要します(行ごとに全ゲームワイドバイトコードスイープ)。バッチ「⤋ Funcs」の方が高速です。 |
| Live | Live Walkerでこのプロパティのクラスを開く(ライブインスタンス検索)、またはライブインスタンスが存在しない場合はClass Structにフォールバック。 |
| Name | 裸のプロパティ名をクリップボードにコピー。 |
| 🌍 | GWorldに配置 — このプロパティのクラスのライブインスタンスを見つけ、GWorldからへのポインタパスを表示(親モード)。GWorldが解決されるまで無効。 |
| ⚙ | GameEngineに配置 — このプロパティのクラスのライブインスタンスを見つけ、ライブUGameEngineからへのポインタパスを表示。エンジン層オブジェクトに到達できます。ほとんどのワールドアクターには🌍を使用。 |
- Find functions using this field – 行ごとの「Find Funcs」ボタンと同じ。
- Pivot this property… (実験的) – このフィールドを Class Pivot タブに、所有クラスのインスタンス全体で検証する**射影値(projected value)**として送ります(Class Pivot は同一性または別途選んだ key フィールドでグループ化し、このフィールドではしません)。実験的 Class Pivot タブが利用可能なときのみ表示。
- ⤋ Funcs – 選択行(未選択の場合は全行)を参照する関数を見つけます。各呼び出しは全ゲームワイドバイトコードスイープを実行(各数百ms)するため、25+行に対して警告が表示されます。Funcsカラムをインラインで入力。キャンセル可能。フィルタ変更間でキャッシュ。
- 📦 Generate CT – すべての選択行のフリーズエントリを含む.CTファイルを生成(まず複数選択するにはCtrl/Shift+クリック)。フリーズサポート型のみが含まれます(数値、bool、列挙型、文字列風)。構造体/配列/非スカラー行はスキップおよびステータスラインメモ。各エントリはue5_freeze_helper.luaを使用します。Tools → Inject Freeze Helper in Cheat Engineを通じて結果のCTに埋め込むか、有効にする前にCFG.valueを開いて編集します。
- プログレスバー – 読み込み中に表示。
- ステータステキスト – 最終的なユニークプロパティカウント、閾値適格カウント、異常な場所カウントを表示(例:「523 unique properties (threshold 4+: 108, ⚠ unusual: 12)」)。
- Class filterメモ – クラス除外で非表示にされた行のカウントを表示。
両パネルはクライアント側スコアリングテーブルを使用して結果をランク付けします。スコアリングコンポーネントは以下を含みます。
- キーワードヒット – キュレートされたシードキーワードリスト(例:「Teleport」「Health」「Gold」)に対するマッチ。より多くのキーワード一致=より高いスコア。
- クラスボーナス – 所有クラス名もスコア化(例:PlayerCharacter、GameMode)。ボーナスは関数/プロパティごとに1回適用されます。キーワードごとではありません。
- フラグボーナス(Funcsのみ) – Native、Static、Execのようなリフレクションフラグがポイントを追加。
- 異常な場所ボーナス(Propsのみ) – LocalPlayer / HUD / GameViewportClient / CheatManager / UCheatManagerのプロパティはブーストと⚠バッジを受け取ります。
閾値:Funcsはデフォルト5、Propsはデフォルト4。Show Allトグルで調整可能。
| アクション | 先 | 事前入力 |
|---|---|---|
| instボタン | Instance Finder タブ | クラス名。検索を実行 |
| Liveボタン | Live Walkerまたはclass Struct | クラスインスタンスまたはメタデータ。Functions/Propertiesセクションを展開 |
| 🌍ボタン | Live Walker | GWorldからライブインスタンスへのポインタパス(親モード) |
| ⚙ボタン | Live Walker | GameEngineからライブインスタンスへのポインタパス |
| Props(Funcs)/ Find Funcs(Props) | モーダルダイアログ | バイトコードクロスリファレンス結果(タブ変更なし) |
| 📦 Generate CT | 保存ダイアログ | 生成された.CTファイル(baked-invokeまたはフリーズ形式) |
| Pivot this property…(Props、右クリック)(実験的) | Class Pivot タブ | そのフィールド、そのクラスのインスタンス全体で射影される値として(Class Pivot が利用可能なときのみ表示) |
- キーワード漏れ:シードキーワードリストは有限(HP、Damage、Gold、Speed等)。そのリストの外のプロパティまたは関数は、ゲーム関連の場合でも高スコアしません。対処法:Filterボックスで手作業で検索するか、Show Allをチェックしてすべてを表示。
- ネイティブ関数はPropsを表示しない:ネイティブ(非Blueprint)UFunctionはバイトコードがないため、PropsモーダルおよびUsesカラムは何も表示しません。Blueprint関数のみクロスリファレンス可能。
- 異常な場所フィルタリングは強力:チートを追跡する場合、⚠ Unusual Onlyをトグルして、開発者がLocalPlayer、GameViewportClient、またはHUDに詰め込んだプロパティを強調表示します。生のクラス階層検索では見逃すような場所です。
- バッチ「Find Funcs」は遅い:各プロパティは全ゲームワイドバイトコードスキャンをトリガー(~数百ms)。事前に5~10の高信頼度の行を選択するか、それが時間がかかっている場合はキャンセル。
- フリーズスクリプト生成は複雑な型をスキップ:構造体、配列、およびその他の非スカラープロパティはCheat Tableバッチから静かに削除されます。Property SearchタブまたはClass Structを使用してディープ手作業検査。
- Live-Funcs — 挙動ベースの対になる機能:名前を推測する代わりに、アクションを 実行 して何が発火したかで関数を見つけます。
- Live-Walker — GWorldグラフ内のライブオブジェクトをウォークして検査。ここで発見された関数/プロパティターゲットをドリルダウンするのに使用。
- Value-Search — 生メモリ値スキャナ。プロパティ名は知らないがあなたが知っている値を見つけることでInteresting Propsを補完。
- Instances — インスタンスファインダー。行ごとinstハンドオフで使用してクラス名を事前入力してライブオブジェクトを検索。
- Quick-Start — 全体的なワークフローガイド。
- UE5CEDumper README — プロジェクト概要と機能概要。