Special K „Special K wird liebevoll als das Schweizer Taschenmesser des PC-Gamings bezeichnet und kann von allem etwas. Es ist vor allem für die Reparatur und Verbesserung von Grafiken, seine vielen detaillierten Leistungsanalyse- und Korrektur-Mods und eine ständig wachsende Palette an Tools bekannt eine Vielzahl von Problemen lösen, die PC-Spiele betreffen.“
Inhalt des Repositorys
Dieses Repository enthält Quellcode für die Code-Injection-Nutzlast von Special K (
SpecialK(32|64).dll
).Unterstützende Dienstprogramme wie SKIF ( Special Kinjection Frontend ) und das inzwischen veraltete SKIM ( Special Install Manager ) werden als separate Projekte verwaltet . Darüber hinaus existieren einige ältere Mods, die mit Special K erstellt wurden, als eigenständige Plug-in-DLLs; Plug-Ins und SKIM werden nicht mehr aktiv gepflegt, sind aber über das GitHub-Profil von Kaldaien zugänglich.
Erstellen Sie AbhängigkeitenAlle Build-Abhängigkeiten von Special K sind enthalten, wenn Sie das Repo ab 23.5.7 klonen. Ältere Versionen weisen eine zusätzliche Abhängigkeit vom DirectX SDK vom Juni 2010 auf.
Special K erfordert zum Kompilieren Visual C++ 2022 oder neuer, da Sprachfunktionen in älteren Compilern nicht vorhanden sind.
PlattformabhängigkeitenSpecial K wird auf älteren Betriebssystemen als Windows 8.1 nicht unterstützt, kann jedoch (ab 23.5.7) weiterhin unter Windows 7 (Plattform-Update) erstellt und ausgeführt werden (stark eingeschränkte Funktionen).
Es läuft zwar in WINE und ist mit DXVK kompatibel, muss aber mit
UsingWINE=true
in der spielspezifischen INI-Datei konfiguriert werden, um unter Linux zu funktionieren.
VerschiedenesEs besteht eine gute Chance, dass das Projekt nicht korrekt kompiliert wird, wenn Sie die Debug-Build-Konfiguration verwenden. Special K ist darauf ausgelegt, debuggbare Release-Builds zu erstellen.
Spezielle K-DLLs können ihren Code auf zwei Arten einfügen:
Lokaler Injektions- Proxy/Wrapper-DLL
SpecialK(32|64).dll
in (dxgi|d3d11|d3d9|d3d8|ddraw|dinput8|OpenGL32).dll
um und fahren Sie über statische Importe oder Aufrufe von LoadLibrary (...)
mit.Globale Injektion Win32 Global Hookchain
Dies ist die bevorzugte Technik, und die DLL ist in der Lage, den Hook ohne fremde Hilfe über
RunDLL_InjectionManager (...)
zu booten ( rundll32.exe hostet die DLL als normalen Win32-UI-Prozess).
Es gibt viele weitere Möglichkeiten, die DLLs einzuschleusen. Die beiden oben beschriebenen sind ohne zusätzliche Tools nutzbar.
Special K fügt sich gerne in ein Spiel ein, das bereits läuft, wenn Sie Ihr eigenes Tool mit etwas wie CreateRemoteThread (...)
erstellen möchten. Beachten Sie jedoch, dass eine späte Injektion einige der Funktionen von Special K verhindert (insbesondere diejenigen im Zusammenhang mit D3D). Overrides und Shader-/Textur-Mods) nicht mehr funktionieren.
CBT-Haken wurden aufgrund der Reihenfolge der Hakenketten ausgewählt. Da die meisten Grafik-APIs unter Windows ein Fenster benötigen, bevor sie eine nicht triviale Initialisierung durchführen können, bringt uns ein CBT-Hook zuverlässig in die Anwendung, bevor die D3D9/11/12-Swapchain erstellt wird.