
أداة تراكب خارجي للقراءة فقط للألعاب على لينكس. إزاحات مشتقة، هياكل عظمية مركّبة، وحدة نواة اختيارية لقراءات الذاكرة المستقلة عن ptrace وإدخال على مستوى المؤشر.
تراكب خارجي للعبة THE FINALS على لينكس.
يقرأ ذاكرة اللعبة من عملية منفصلة، ويرسم نافذة شفافة قابلة للنقر من خلالها فوقها، ويوفر مساعدة تصويب و triggerbot. لا يتم حقن أي شيء في اللعبة ولا يتم كتابة أي شيء مرة أخرى أبدًا؛ الأداة تقرأ الذاكرة وتحرك الماوس، وهذا كل شيء.
مبني من الصفر على لينكس: كل إزاحة (offset) خاصة باللعبة في هذا المستودع تم اشتقاقها بمراقبة العملية الجارية، وليس بنسخها من تفريغ 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 # must be 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
جزءان من ذلك يستحقان الإشارة، لأنهما الحالتان الصعبتان:
هذا هو جهاز التطوير، لذا فهو الإعداد الوحيد الذي تم التحقق منه فعليًا. التوزيعات الأخرى وأسطح المكتب والنوى المبنية بـ GCC متوقع أن تعمل وهي غير مختبرة.
chmod +x build.sh run.sh # a zip download drops the executable bit
./build.sh # configure and build
./build.sh clean # from a fresh build directory
يُكتب الثنائي إلى 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 يقرأ ذلك من إعداد النواة نفسه ويضبط سلسلة الأدوات بنفسه، لذا فإن make العادي صحيح على نواة GCC وعلى نواة clang على حد سواء:
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.
اضبط اللعبة على وضع Windowed أولاً. في Fullscreen تمتلك اللعبة الشاشة بالكامل ولا يمكن لأي شيء الرسم فوقها، لذا سيعمل التراكب بشكل صحيح ويظل غير مرئي.
يجد التراكب نافذة اللعبة ويطابق موضعها وحجمها، ويعيد الفحص أثناء تقدمك، لذا يتبع النافذة إذا نقلتها أو غيّرت حجمها، ويتكيف مع أي دقة.
./run.sh # finds the game PID by itself
./run.sh 12345 # or give it one
./run.sh -q # quiet: a few status lines only
ابدأه متى شئت، بما في ذلك في القائمة. يعيد حل كائناته عندما تبدأ مباراة أو تنتهي، لذا لا يحتاج إلى إعادة تشغيل بين الجولات.
| المفتاح | الإجراء |
|---|---|
INSERT | تبديل قائمة الإعدادات. أثناء فتحها، يلتقط التراكب نقرات الماوس؛ أثناء إغلاقها، تمر النقرات إلى اللعبة. |
HOME | تبديل مساعدة التصويب. |
End | الخروج، مع تركيز التراكب. Ctrl-C في الطرفية يعمل أيضًا. |
تُعدَّل الإعدادات في القائمة وتُحفظ إلى settings.cfg عند خروج الأداة، لذا تعود كما تركتها.
صناديق، هياكل عظمية، أسماء، أشرطة صحة، مسافات وخطوط ربط. ألوان الفرق تميز الفرق، ومنزلق شفافية رئيسي يتحكم في كل ما يُرسم.
يتكون الهيكل العظمي من التسلسل الهرمي للعظام الخاص بالشبكة نفسها، لذا يتبع الحركة بدلاً من التقريب من كبسولة.
تسحب نحو هدف أثناء الضغط على زر الماوس المختار.
يطلق النار عندما تكون نقطة التصويب على الهدف.
اللاعبون الذين لا ترسمهم اللعبة حاليًا يُشطب عليهم ويُبهتون، ويمكن إخبار مساعدة التصويب وtriggerbot كلاهما بتجاهلهم.
هذا مشتق من الطابع الزمني للعرض الخاص بمحرك اللعبة، لذا فهو متحفظ بطبيعته: اللعبة تحذف على صندوق محيط، وهو أكبر من اللاعب، واستعلامات الإخفاء تتأخر إطارًا أو إطارين. توقع أن يُعلَّم عدو مرئيًا قبل قليل من خروجه الكامل من خلف زاوية. يتحكم منزلق التسامح في مدى سرعة خروج شخص من المرئي بعد كسر خط الرؤية.
كل عنوان خاص باللعبة موجود في offsets.cfg، يُقرأ عند بدء التشغيل من دليل العمل أو مستوى واحد فوقه.
الأداة ترفض البدء بدونه وتسمي أي شيء مفقود. هذا متعمد: إزاحة صفرية بصمت تنتج شاشة فارغة بلا تفسير، وهو أسوأ بكثير في التشخيص من فشل واضح.
تحديث اللعبة يحرك هذه. عندما يحدث ذلك تبدأ الأداة لكنها لا تجد شيئًا. أعد اشتقاق الإزاحات وانسخ 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: الإزاحات التي يسميها صفرية. اللعبة على الأرجح حُدِّثت؛ أعد اشتقاقها.
لا يظهر شيء على الشاشة، لكن السجل يبدو سليمًا: اللعبة على الأرجح في Fullscreen، الذي لا يسمح لأي شيء بالرسم فوقها. بدّلها إلى وضع Windowed. سطر السجل 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.
لا يُرسم شيء أثناء المباراة: الإزاحات قديمة بعد تحديث اللعبة.
مساعدة التصويب لا تفعل شيئًا: تحقق من أن القائمة تبلغ عن واجهة خلفية للماوس. إذا كان "visible only" مفعلًا وكل عدو خلف غطاء، فلا يوجد هدف عمدًا.
وحدة النواة لن تُبنى: يجب ترجمتها بنفس سلسلة الأدوات مثل نواتك الجارية. على نواة مبنية بـ clang: make LLVM=1.
هذا يقرأ ذاكرة عملية أخرى ويحقن إدخال الماوس. لا يعدل اللعبة، لكن استخدامه في مباراة عبر الإنترنت يخالف شروط خدمة اللعبة ويمكن أن يكلفك الحساب. هذا قرارك أنت لاتخاذه؛ اتخذه بعلم.
رخصة جنو العمومية العامة، الإصدار 2. انظر LICENSE.
يمكنك استخدام هذا ودراسته وتعديله وإعادة توزيعه. إذا وزعت نسخة معدلة يجب عليك شحن مصدرها تحت نفس الترخيص، حتى يحتفظ كل من يستلمها بنفس الحريات. لا يوجد ضمان.
GPLv2 وليس v3 عمدًا: وحدة النواة في kmod/ هي وحدة نواة لينكس، والنواة GPL-2.0-only، وMODULE_LICENSE("GPL") تعني الإصدار 2. ترخيص المشروع بأكمله بنفس الطريقة يبقي أداة مساحة المستخدم والوحدة متوافقتين مع بعضهما ومع النواة، دون انقسام للتفكير فيه.
حقوق النشر © 2026 Ymsniper.