Issuer Check Bypass Against SocialClub (for b2060 to b2802)
-
9 Juli 20231.0issuer-check-bypass-against-socialclub_1688929077_348594.zip
Important Not for the Mod Name
Dieser Mod ändert seinen Namen von „EXE Integrity Bypass Against RGL“ (der nächste Name wurde noch nicht entschieden, lasst mich das Problem zuerst genauer untersuchen), der ab v1.1 auch auf Archive angewendet wird. alloc8or hat uns genauere Informationen darüber gegeben, warum GTA5.exe die Integrität von socialclub.dll in Versionen vor dem Game-Build 2824 nicht überprüfen kann.
Über
Dieses ASI-Programm umgeht/deaktiviert die Issuer-Prüfung von GTA5.exe, die durch die Kommunikation mit socialclub.dll erfolgt. Dadurch können Sie vermeiden, dass das Spiel mit dem Fehlercode 16 nicht gestartet wird, weil Sie eine ältere Version der EXE als den Game-Build 2824 verwenden. Mit diesem Plugin können Sie GTA5.exe für b2699 oder älter disassemblieren und gleichzeitig funktionierende Spielumgebungen für eine der Versionen ausführen, in denen Compiler-RTTI-Informationen vorhanden sind. Sie müssen diese ASI nicht für v1.0.2824.0 oder neuere Versionen verwenden, da das Spiel den Issuer in diesen Versionen überhaupt nicht überprüft.
Zu Ihrer Information: Sie können die EXE-Datei überhaupt nicht mit einem Hex-Editor patchen, da fast der gesamte Spielcode vor dem Start des Spiels verschlüsselt wird. Dieses ASI deaktiviert keine Social-Club-Funktionen, sodass Sie diese verwenden können (z. B. Ihre Charaktere für GTA Online im Director Mode). Sie sollten diesen Mod mit dem neuesten RGLverwenden!
Sie können mit dem installierten ASI-Loader seit v1.0.1032.1 (v1.3.9) nicht mehr auf GTA Online zugreifen, sodass Sie sich keine Sorgen machen müssen, versehentlich darauf zuzugreifen.
Ohne den Spielcode zu ändern, testet das Spiel in einem früheren Stadium, ob der Aussteller von socialclub.dll entweder „Entrust Code Signing Certification Authority — L1D, Entrust Code Signing CA — OVCS1“ oder „DigiCert SHA2 Assured ID Code Signing CA“ ist (wird während des ersten Rockstar-Logo-Films und nur einmal aufgerufen, die Ausstellerprüfung wird in neueren Game-Builds nicht durchgeführt). Dieses Plugin verhindert lediglich, dass das Spiel das Abfrageergebnis abhört. Anscheinend hat Rockstar Games spätestens ab dem 4. April 2023 (UTC) auch in Steam- und EGS-Versionen mit dem Testen begonnen.
Warum hast du das erstellt und nicht alloc8or?
Erstens hätte alloc8or diese Art von Tool erstellen können, wenn dieses Problem für jeden aufgetreten wäre, der bis zur ersten Hälfte des Jahres 2022 versucht, eine Nicht-Aktuelle-Version zu verwenden, aber er ist seit Anfang 2023 nicht mehr so aktiv im GTA-Modding. Ein anderer brillanter Entwickler, der sich so gut mit Informatik auskennt, ist inaktiv geworden, genau wie MulleDK19 (einer der Entwickler, die RAGE Plugin Hook erstellt haben und seit Mai 2021 inaktiv sind). Keiner von beiden stellte Quellcode für seine Arbeiten zur Verfügung oder verschleierte seinen Code (bei der Verschleierung bin ich mir sicher, dass die Arbeiten von MulleDK19 oder LMS betroffen sind, aber vielleicht nicht bei alloc8or).
Zweitens ist das Besprechen von Raubkopien in 5Mods nicht erlaubt und ein Moderator hat stillschweigend eine meiner Massagen gelöscht, die unschuldig enthielt, wie man diese Überprüfung mit Raubkopien umgehen kann im 5Mods Discord.
Aus diesen Gründen dachte ich, ich sollte dieses Programm erstellen, um einen sauberen Weg zu bieten, über den diskutiert werden darf, und dies wird es uns erleichtern, alte Versionen mit einem Disassembler ohne die Hilfe von verunreinigtem/schmutzigem Zeug zu untersuchen (und ich werde dieses Tool benötigen, um Tonnen von erweiterten Funktionen in ScriptHookVDotNet hinzuzufügen, wo ich seit Mai 2023 Projektleiter bin). Ich habe versucht, dies zu erstellen und es in etwa 6 Stunden geschafft, einschließlich des einfachen Protokollsystems und eines einfachen Tests auf Kompatibilität.
Installation
Legen Sie ExeIntegrityBypassAgainstRGL.asi einfach in Ihren Grand Theft Auto V-Ordner.
Sie sehen, dass ExeIntegrityBypassAgainstRGL.log erstellt oder aktualisiert wurde, wenn die ASI ausgeführt wird und die EXE die Berechtigung hat, in den Stammordner zu schreiben (das Protokoll wird nicht aktualisiert, wenn die Berechtigung nicht ausreicht, da die Protokollierung nicht obligatorisch ist).
Sie benötigen die entsprechenden update.rpf-Dateien (mindestens die entsprechenden YSC-Skriptdateien) für die GTA5.exe, die Sie verwenden möchten (z. B. update.rpf für Game-Build 2699 für die b2699 von GTA5.exe), da Hashes für native Funktionen in den meisten Updates tatsächlich geändert werden (aber mindestens kein natives Hash-Update zwischen b2612 und b2699).
Anforderungen
Der ASI-Loader. Script Hook V wird nicht benötigt.
Obwohl dies Visual C++ Redistributable 2019+ erfordert, sollten Sie Visual C++ Redistributable 2019 bereits installiert haben, als Sie Rockstar Games Launcher installiert haben.
Hinweis
Um die Ausführung des ungepatchten Codes zu vermeiden, versucht dieses Programm, mit einem anderen Thread zu patchen, und der erstellte Thread hält den Hauptthread so lange an, bis der Patch abgeschlossen ist (eigentlich von GTAVLauncherBypass übernommen, aber ich habe den Code geändert, um nur einen Thread anzuhalten). Wenn der Patch also halb fertig fehlschlägt, wird das Spiel möglicherweise nicht unendlich gestartet.
Wenn Rockstar dieses Tool patchen würde, indem es nicht einmal einen Prozess von GTA5.exe startet, wenn die EXE nicht die neueste ist, kann dieses Tool nichts tun, da das Tool in diesem Fall nicht geladen werden kann (ich bezweifle, dass dies passieren wird, da die Ausstellerprüfung in späteren Game-Builds weniger eingeschränkt ist, wie alloc8or im obigen Zustand sagte).
Nachdem der Patch-Job abgeschlossen ist, trennt sich die ASI von GTA5.exe und belegt weder den Speicher noch hat sie die Sperre für die ASI-Datei (Ninja-Stil!), sodass Sie die ASI-Datei entfernen können, während das Spiel ausgeführt wird, falls Sie sich das fragen.
Dieses Tool unterstützt alle Versionen, die Rockstar Games Launcher verwenden (getestet in b2060, b2372, b2699 und b2802 der Steam-Version), aber es unterstützt keine Versionen, die das alte Social Club-System verwenden (d. h. dieses Tool funktioniert nicht in b1868 oder früher). Sie können dieses Tool in v2824 oder neuer verwenden, aber dieses Tool bietet in diesem Fall nichts Sinnvolleres als das vollständige Vanilla-Spiel, da die Ausstellerprüfung in diesen Versionen überhaupt nicht vorhanden ist.
Quellcode
Kann auf GitHubgefunden werden, das unter der BSD Zero Clause License lizenziert ist, wo Sie grundsätzlich alles gegen den Quellcode tun können, aber keine Public-Domain-Widmung (sodass einige Parteien wie Google etwas Code verwenden können) und ohne Haftung und Gewährleistung.
Ich möchte diese Sache nicht geheim halten oder mit Urheberrechten schützen. Ein Teil des Quellcodes ist redundant (in v1.0), da ich dieses Tool in etwas Eile erstellt habe.
Von kagikn
Important Not for the Mod Name
This mod will be changing its name from "EXE Integrity Bypass Against RGL" (the next name has not been decided actually, let me dig into the issue more first), which will also be applied to archives since v1.1. alloc8or told us more accurate info about why GTA5.exe fails to check the integrity against socialclub.dll in versions older than the game build 2824.
About
This ASI program bypasses/disables the issuer check that GTA5.exe does, which is done by communicating with socialclub.dll. As a result, you can avoid the game refusing to start with the error code 16 for using a version of the exe older than the game build 2824. With this plugin, you can disassemble GTA5.exe for b2699 or older while running working game environments for one of the versions, where compiler's RTTI info is present. You don't need to use this ASI for v1.0.2824.0 or newer ones, because the game don't check the issuer at all in those versions.
For your information, you cannot patch the exe file with a hex editor at all because almost all part of the game code is encrypted before the launch of the game. This ASI does not disable any social club features, so you can use them (e.g. using your characters for GTA Online in the Director Mode). You should use this mod with the latest RGL!
You can't access GTA Online with the ASI loader installed since v1.0.1032.1 (v1.3.9), so you don't need to worry about accessing it by accident.
Without modifying the game code, the game tests if the issuer of socialclub.dll is either "Entrust Code Signing Certification Authority — L1D, Entrust Code Signing CA — OVCS1", or "DigiCert SHA2 Assured ID Code Signing CA" at a earlier stage (will be called during the first Rockstar logo movie and only once, the issuer check won't be done in newer game builds). This plugin just prevents the game from listening to the query result. Looks like Rockstar Games started testing even in Steam and EGS versions starting from April 4th 2023 (in UTC) at the latest.
What made you create this and not alloc8or?
Firstly, alloc8or could make this kind of tool if this issue started to happen for everyone who tries to use a non-latest version until the first half of 2022, but he hasn't been active in GTA modding that much since the beginning of 2023. Another brilliant dev who is familiar with computer science so much got inactive, just like MulleDK19 (who is one of the developers who made RAGE Plugin Hook and has been inactive since May 2021). Neither of them provided source codes of their works or obfuscated their code though (for obfuscation I'm sure works of MulleDK19 or LMS are affected but maybe not the case for alloc8or's).
Secondly, discussing pirating stuff is not allowed in 5Mods and some moderator silently deleted one of my massage that innocently included how to bypass this check with pirated stuff in the 5Mods Discord.
For those reasons, I thought I should create this program to provide a clean way that will be allowed to discuss and this will make us easier to inspect old versions using a disassembler without the help of tainted/dirty stuff (and I will need this tool to add tons of advanced features in ScriptHookVDotNet too, where I am the project lead since May 2023). I tried to create this and managed to do like in 6 hours including the simple log system and a simple testing for compatibility.
Installation
Simply drop ExeIntegrityBypassAgainstRGL.asi into your Grand Theft Auto V folder.
You can see ExeIntegrityBypassAgainstRGL.log created or updated if the ASI runs and the exe has the permission to write to the root folder (won't update the log if the permission is insufficient as logging is not mandatory).
You will need appropriate update.rpf files (at least appropriate ysc script files) for the GTA5.exe you are planning to use (e.g. update.rpf for game build 2699 for the b2699 of GTA5.exe) because hashes for native functions are actually changed in most updates (but no native hash update between b2612 and b2699 at least).
Requirements
The ASI loader. Script Hook V is not needed.
Although this requires Visual C++ Redistributable 2019+ to run, You should have Visual C++ Redistributable 2019 installed already when you installed Rockstar Games Launcher.
Note
To avoid executing the unpatched code, this program will try to patch with another thread and the created thread will keep the main thread suspended until the patch completes (actually yoinked from GTAVLauncherBypass but I changed the code to suspend only one thread). So if the patch fails half done, the game may not get started infinitely.
If Rockstar patch this tool by not even launching a process of GTA5.exe if the exe is not the latest one, this tool can do nothing since the tool can't be loaded in that case (I doubt that will happen since the issuer check is less restricted in later game builds according to what alloc8or said in the above state).
After the patch job is finished, the ASI will detach itself from GTA5.exe and will not occupy the memory or have the lock for the ASI file any longer (Ninja style!), letting you remove the ASI file while the game is running in case you are wondering.
This tool supports all the versions that use Rockstar Games Launcher (tested in b2060, b2372, b2699, and b2802 of Steam version), but this does not support any versions that use the old Social Club system (so this tool doesn't do the job in b1868 or earlier). You can use this tool in v2824 or newer, but this tool does not offer anything meaningful than the complete vanilla game in that case since the issuer check doesn't exist at all in those versions.
Souce Code
Can be found on GitHub, which is licensed under BSD Zero Clause License, where you can do basically anything against the source code but not a public domain dedication (so some parties such as Google can use some piece of code) and without liability and warranty.
I don't want to keep this thing secret or protected with copyright. Some part of source code is redundant (in v1.0) since I made this tool in a bit of a hurry.
By kagikn