
Linux向けの外部読み取り専用ゲームオーバーレイ。派生オフセット、合成スケルトン、ptrace非依存のメモリ読み取りとポインターレベル入力のためのオプションのカーネルモジュールを備えています。
Linux向けTHE FINALS用の外部オーバーレイです。
別プロセスからゲームのメモリを読み取り、その上に透明なクリックスルーウィンドウを描画し、エイムアシストとトリガーボットを提供します。ゲームへのインジェクションは一切行わず、書き戻しも一切ありません。このツールはメモリを読み取り、マウスを動かすだけです。
Linux上でゼロから構築されています。このリポジトリ内のすべてのゲームオフセットは、公開されたSDKダンプからコピーしたものではなく、実行中のプロセスを観察して導き出したものです。
https://github.com/user-attachments/assets/674baa52-3006-4767-a263-29178bed3a31
Arch / CachyOS
sudo pacman -S --needed base-devel cmake sfml libx11 libxext
paru -S imgui-sfml
Ubuntu 24.04+ / Debian 13+
sudo apt install build-essential cmake libsfml-dev libx11-dev libxext-dev
pkg-config --modversion sfml-graphics # 3.xである必要があります
ImGui-SFMLはそこではパッケージ化されておらず、ソースからビルドする必要があります。
REQUIREMENTS.md では残りの部分を説明しています:SFML 3とImGui-SFMLのソースからのビルド、モジュール用のカーネルヘッダ、Secure Boot、ptrace_scope、および動作するセットアップの確認方法について。
CachyOS kernel 7.1.2-3-cachyos, built with clang 22.1.6
KDE Plasma 6.7.2 Wayland session, overlay running through XWayland
SFML 3.1.0 CMake 4.3.4, GCC 16.1.1
Intel UHD + RTX 4060 game under Proton, Windowed
そのうちの2つの部分は、厄介なケースであるため、特筆に値します:
これは開発マシンであるため、実際に検証された唯一の構成です。他のディストリビューション、デスクトップ環境、GCCビルドのカーネルは動作すると予想されますが、未テストです。
chmod +x build.sh run.sh # zipダウンロードでは実行ビットが落ちます
./build.sh # 設定とビルド
./build.sh clean # 新しいビルドディレクトリから
バイナリは build/TheFinals に書き込まれます。
CMakeは絶対ソースパスをキャッシュに保存するため、移動または名前変更されたビルドディレクトリは動作しなくなります。build.sh はそれを検出して自動的に再設定するため、プロジェクトの移動について考える必要はありません。
kmod/ は、システム上でツールをかなり静かにする小さなモジュールをビルドします。これは完全にオプションです。これがなくても、以下に記載するユーザースペースのフォールバックを使用して、すべてが引き続き動作します。
access_process_vm() を経由するため、ptrace_scope は適用されません。ツールに sudo は不要で、ゲームにアタッチするものは何もなく、yamaをシステム全体に対して緩める必要もありません。/proc/bus/input/devices に表示されます。モジュールを使用すると、追加のデバイスはまったく存在しません。cd kmod && make
sudo insmod suite_kmod.ko
モジュールは、ロード先のカーネルと同じコンパイラでビルドする必要があります。Makefileはそれをカーネル自身の設定から読み取り、ツールチェーンを自分で設定するため、GCCカーネルでもclangカーネルでも、単純な make が正しいです:
kernel 7.1.2-3-cachyos
toolchain clang (LLVM=1)
誤って推測した場合は、make LLVM=0 または make LLVM=1 で上書きします。カーネルヘッダがない場合は、その旨を表示し、ディストリビューションのインストールコマンドを出力します。
Secure Bootが有効な場合、署名のないモジュールはロードされません。署名するか、Secure Bootを無効にするか、単にモジュールをスキップしてください。
ツールを起動する前にロードしてください。バックエンドは起動時に一度だけ選択されます。
メニューまたはログで、どのバックエンドが稼働しているかを確認します:
[mem] kernel backend: /dev/suite_kmod
[vmouse] kernel injection into the real pointer
sudo rmmod suite_kmod でアンロードします。
最初にゲームをウィンドウモードに設定してください。 フルスクリーンでは、ゲームがディスプレイを完全に所有し、その上に何も描画できないため、オーバーレイは正しく実行されていても見えなくなります。
オーバーレイはゲームのウィンドウを見つけ、その位置とサイズに一致し、移動中も再チェックするため、ウィンドウを移動またはリサイズすると追従し、あらゆる解像度に適応します。
./run.sh # ゲームのPIDを自動的に見つけます
./run.sh 12345 # またはPIDを指定します
./run.sh -q # クワイエットモード:ステータス行のみ数行表示
メニュー画面を含め、いつでも起動できます。マッチの開始または終了時にオブジェクトを再解決するため、ラウンド間で再起動する必要はありません。
| キー | アクション |
|---|---|
INSERT | 設定メニューの表示/非表示を切り替えます。開いている間はオーバーレイがマウスクリックを受け取り、閉じている間はクリックがゲームに通過します。 |
HOME | エイムアシストのオン/オフを切り替えます。 |
End | オーバーレイにフォーカスがある状態で終了します。ターミナルでの Ctrl-C も機能します。 |
設定はメニューで編集され、ツール終了時に settings.cfg に保存されるため、前回の状態で復元されます。
ボックス、スケルトン、名前、ヘルスバー、距離、スナップライン。分隊カラーでチームを区別し、マスター不透明度スライダーが描画されるすべてのものを制御します。
スケルトンはメッシュ自身のボーン階層から構成されるため、カプセルから近似するのではなく、アニメーションに追従します。
選択したマウスボタンが押されている間、ターゲットに向かって引っ張ります。
クロスヘアがターゲット上にあるときに発射します。
現在ゲームによって描画されていないプレイヤーは取り消し線とフェードで表示され、エイムアシストとトリガーボットはそれぞれそれらを無視するように設定できます。
これはエンジン自身のレンダリングタイムスタンプから導出されるため、本質的に保守的です。ゲームはプレイヤーよりも大きいバウンディングボックスでカリングし、オクルージョンクエリは1〜2フレーム遅れます。敵がコーナーを完全に通過する少し前に可視とマークされることを期待してください。許容誤差スライダーは、視線が切れた後に誰かが可視状態から外れる速さを制御します。
ゲーム固有のすべてのアドレスは offsets.cfg にあり、起動時に作業ディレクトリまたはその1つ上のレベルから読み取られます。
ツールはそれがなければ起動を拒否し、不足しているものを指定します。これは意図的です。黙ってゼロになるオフセットは、説明のない空の画面を生成し、明確な失敗よりも診断がはるかに困難です。
ゲームのアップデートでこれらが移動します。その場合、ツールは起動しますが、何も見つかりません。オフセットを再導出し、新しい offsets.cfg をここにコピーしてください。再ビルドは不要です。
README.md this file
REQUIREMENTS.md dependencies and how to install them
LICENSE GPL-2.0
build.sh build script
run.sh launcher
banner.txt startup banner
offsets.cfg game offsets (required)
CMakeLists.txt
src/
main.cpp entry point, overlay window, render loop
mem.hpp process memory reads
cheat.hpp reader thread, entity list
render.hpp ESP drawing, aim assist, triggerbot, menu
global.hpp state shared between reader and render threads
structs.hpp engine types and world-to-screen projection
skeleton.hpp bone hierarchy composition
settings.hpp settings.cfg load and save
vmouse.hpp mouse output
offsets.hpp fixed engine layout constants
runtime_offsets.hpp offsets.cfg loader
gobjects_direct.hpp object array decoding
kmod/
suite_kmod.c kernel module: memory reads and mouse injection
suite_kmod.h shared ioctl contract
Makefile
settings.cfg はツールが初めて終了したときに作成されます。
offsets.cfg not found: プロジェクトディレクトリから実行するか、ファイルをバイナリの隣に置いてください。
offsets.cfg is present but incomplete: 指定されたオフセットがゼロです。ゲームがおそらくアップデートされています。再導出してください。
画面に何も表示されないが、ログは正常に見える: ゲームがおそらくフルスクリーンであり、その上に何も描画できません。ウィンドウモードに切り替えてください。ログ行 game window at X,Y WxH - overlay will match は、オーバーレイがウィンドウを見つけて一致したことを確認します。
オーバーレイがマウスクリックを消費する: ビルド時にlibXextがなかったため、クリックスルーがコンパイルから除外されています。設定ステップでこれについて警告されます。XShape click-through: enabled を探してください。libxext/libxext-dev をインストールして再ビルドしてください。
オーバーレイが間違った場所にある、またはクリックが通過しない: オーバーレイはX11を必要とします。Waylandでは、XWaylandを強制します:
DISPLAY=:0 WAYLAND_DISPLAY= ./run.sh
ゲームが見つからない: PIDを直接渡してください。Protonでは、プロセスは Discovery-d.exe であり、正しいスレッドは GameThread です。
マッチ中に何も描画されない: ゲームのアップデート後、オフセットが古くなっています。
エイムアシストが機能しない: メニューがマウスバックエンドを報告しているか確認してください。「可視のみ」が有効で、すべての敵がカバーの後ろにいる場合、意図的にターゲットはありません。
カーネルモジュールがビルドできない: 実行中のカーネルと同じツールチェーンでコンパイルする必要があります。clangビルドのカーネルでは:make LLVM=1。
これは別のプロセスのメモリを読み取り、マウス入力を注入します。ゲームを変更することはありませんが、オンラインマッチで使用することはゲームの利用規約に違反し、アカウントを失う可能性があります。それはあなたが下す決断です。認識した上で下してください。
GNU General Public License、バージョン2。 LICENSE を参照してください。
使用、研究、変更、再配布が可能です。変更版を配布する場合は、同じライセンスの下でそのソースを同梱する必要があります。これにより、受け取るすべての人が同じ自由を保持できます。保証はありません。
GPLv2ではなくv3を意図的に選択:kmod/ のカーネルモジュールはLinuxカーネルモジュールであり、カーネルはGPL-2.0のみであり、MODULE_LICENSE("GPL") はバージョン2を意味します。プロジェクト全体を同じ方法でライセンスすることで、ユーザースペースツールとモジュールが互いに、そしてカーネルと互換性を保ち、分割を考慮する必要がなくなります。
Copyright © 2026 Ymsniper.