Hackers Succeeded in Reducing Load Time in Grand Theft Auto: Online by 70%


by

downloadsource.fr

Up to 30 people can play 'Grand Theft Auto: Online (GTA Online) ', the online mode of the super popular game 'Grand Theft Auto 5 ', which features violent content such as stealing vehicles and shooting and killing passers-by. At the same time, in addition to the messy content of rampaging in the city, 'the length of the loading time' was also famous. For such a notorious loading problem, a hacker succeeded in reducing the loading time by 70% on his own. I publish the method on my blog.

How I cut GTA Online loading times by 70%
https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by-70/

Hacker reduces GTA Online load times by roughly 70 percent | Ars Technica
https://arstechnica.com/gaming/2021/03/hacker-reduces-gta-online-load-times-by-over-70-percent/

Hacker T0ST has succeeded in reducing the load time of GTA Online by as much as 70%. Mr. T0ST decided to analyze 'Why is the loading time so long?' By himself after noticing that the loading time of GTA Online, which started for the first time in 7 years, has not improved at all. thing.

T0ST, who used Task Manager to find out which resource was the bottleneck, blames the CPU. GTA Online has a mysterious behavior of occupying only one CPU core after loading common resources with single mode when reading, during which time disk read / write, network communication, GPU processing, memory processing I rarely used it.



Mr. T0ST uses the CPU profiler

Luke Stackwalker to output the stack of running processes and the position of the current instruction pointer, and disassemble the GTA code processed in memory. As a result, I found a function that parses a JSON file larger than 10MB with a total of 63,000 entries.

This function was obfuscated, but T0ST broke through it with the reverse engineering tool Process Dump. Then I realized that the JSON file in question was 'a list of all items that can be purchased in GTA Online game currency'.



With the processing speed of modern PCs, it does not take much time to analyze a JSON file of about 10MB. However, according to T0ST, there were two implementation issues when parsing the JSON file, creating the infamous load time issue.

The first problem was that it was performing a time-consuming check after reading the data one by one. Mr. T0ST succeeded in reducing the load time by 50% or more just by replacing it with a simple implementation that caches the length of the character string. The second problem is that every time the array loaded with data becomes large, it checks for duplicates. By simply replacing it with a hashtable that can quickly check for duplicates, T0ST reduced load times by an additional 25%.



With the above improvements, T0ST notes that the load time, which used to take 6 minutes, has been reduced to just under 2 minutes. Mr. T0ST has released an improved version of the DLL on GitHub, but it is clearly stated that 'use is at your own risk' because problems may occur due to fraud prevention functions.

GitHub-tostercx / GTAO_Booster_PoC
https://github.com/tostercx/GTAO_Booster_PoC

Mr. T0ST mentioned this problem as 'a level that even one engineer can handle within a day.' We are urging the developer Rockstar Games to fix the issue as soon as possible.

・ Continued
The developer adopts the 'GTA online load speed improvement DLL' originally developed by the hacker, and the dream 'load time reduction of 70%' is officialized --GIGAZINE


by strelkin

in Game, Posted by darkhorse_log