Join Us and become a Member for a Verified Badge to access private areas with the latest PS4 PKGs.
PS4 CFW and Hacks       Thread starter PSXHAX       Start date Sep 21, 2020 at 12:15 AM       110      
Status
Not open for further replies.
Earlier this month @2much4u (Twitter) shared a GTA V Native Caller PS4 Port to GTA 1.32 WIP Pack via @Andrew Marques (Twitter), and today he extended the invitation to anyone else interested in finishing his work-in-progress (WIP) for Grand Theft Auto V PS4 scene fans. :geek:

Download: PS4-GTA-V-Native-Caller.bin (1 MB - US) / PS4-GTA-V-Native-Caller.bin (1 MB - EU - Crashes) / PS4-GTA-V-Native-Caller.zip (515 KB - WIP Pack) / PS4-GTA-V-Menu-Base-6.72-1.00.zip / ArabicGuy-1.0-6.72-1.32.zip via cspencer49519 (GraFfiX49519) / PS4 GTA V Native Caller GIT / PS4-GTA-V-Menu-Base-6.72-1.00.zip via Mustafa0436 / PS4 GTA V Menu Base GIT / ArabicGuy.rar (60 KB - 1.27 bin) / ArabicGuy-1.0-132.bin.zip (70 KB - 1.32 bin) / GTA ArabicGuy Menu.zip (201 KB - includes ArabicGuy100.bin, ArabicGuy127.bin and ArabicGuy132.bin) / Lamance_672_132_.bin (1.02 MB - Lamance Menu v0.8 for 1.32 on PS4 6.72) via david1337hax / Lamance_672_132_fixed.bin (1.02 MB - Lamance Menu v0.8.1 for 1.32 on PS4 6.72) via david1337hax / GTAV Mods 7.02 Ports via @karo218 / BeefQueefMod-672-702-v133.zip (323 KB) / GTAV 75X.zip (7.1 MB - GTAV 75X Payload Ports) / BeefQueefMod-PS4-900-133.zip (165 KB - includes BeefQueefMod-PS4.bin)

From 2much4ux's Tweet below, to quote: "I mostly ported GTA V Native Caller to GTA 1.32, but didn't have time to finish before school hit. I tossed the unfinished source at Andrew a while back. If anyone wants to try to complete it, go for it!"

This latest Grand Theft Auto V pack comes following the previously released GTA V Native Caller, GTA 5 Native Caller Updates, GTA V Menu Base PS4 Mod Menu GUI, more GTA V Native Caller Updates, another GTA V Native Caller / Invoker, GTA V PS4 5.05 LTS Menu Base 1.27 with Native Caller and GTA 5 Mod Menus from earlier this year.

From the README.md: PS4 GTA V Native Caller

A simple example of calling natives on PS4 GTA V using Vortex's adaptation of CTurt's PS4 ***.

Brief Explanation

Purpose


A large part of GTA V is controlled by custom script files Rockstar writes in their own format. A virtual processor is included in each version of the game to interpret these scripts. The main way for them to interact with and control the game is to invoke natives.

Natives are functions defined within the game's executable. In the same way that scripts use natives to control the game, arbitrarily calling them will allow the caller to control the game to his/her desire. The purpose of this payload is to provide an easy way of doing just that. It includes a few small examples: making the player invincible, giving the player super jump, and teleporting the player when a button combination is pressed.

Setting Up Execution

First, a kernel payload is executed to escape the sandbox, escalate the web browser's privileges, and make appropriate kernel patches. The kernel payload also disables ASLR for newly created processes, making it easier to modify them. Afterward, the browser payload constantly checks the running processes waiting for one called eboot.bin.

Once a game process is found, the syscall ptrace is used to read and write to it. With ASLR disabled, the EBOOT always starts at 0x400000 in memory. A few bytes are read from the EBOOT to verify that the game is GTA V and to detect the region. A small function for setting up the execution environment is copied into free executable space in the EBOOT and IS_PLAYER_ONLINE is hooked to call it.

This function allocates more memory within GTA's process since the EBOOT has limited space. Once the setup is complete, the GTA payload is copied into the newly allocated space, the setup function starts executing it, and the browser payload exits.

Executing Inside GTA V

The GTA payload will execute any time the native IS_PLAYER_ONLINE is called by one of Rockstar's scripts. GTA V has a native lookup table that allows for quickly obtaining a native's address from its hash. However, on newer versions of the game, that table is obfuscated. Therefore, this payload calls natives directly by address rather than using the lookup table.

Native functions are the same as they are on the PC version of the game, meaning the documentation on NativeDB can be used. The majority of the code in the GTA payload is filtered to only execute once a frame (IS_PLAYER_ONLINE is called multiple times a frame), in order to keep things smooth. This will be more important for any drawing.

Miscellaneous Notes

Building


The GTA payload is automatically built and included in the browser payload, so you only need to run make in the main directory.

Buttons

An official documentation of button indices is included in gtaPayload/include/types.h, however it uses XBOX names. So, Y is triangle, X is square, etc.

Testing

Since this injects a payload into GTA's process, multiple versions can be tested without having to restart the game. Each instance will replace the previous one, so multiple payloads cannot be run at once.

Credits
  • Specter, CTurt, qwertyoruiopz, flatz, idc, SKFU, droogie, Xerpi, bigboss, Hunger, Takezo, and Proxima - PS4 research making all this possible
  • Alexander Blade and NativeDB Contributors - Native research making GTA V stuff relatively easy to port to PS4
  • EROOTIIK - Obtaining and parsing the vast majority of native addresses
Also from the README.md: LTS Menu Base Port

A simple menu base ported from PS3 LTS Menu using the source.

Credits:

2Much4u and EROOTIK, 2Much4u for the native caller and EROOTIK for everything for 1.27. Oh, and whoever leaked the LTS menu source.

And from the other README.md: PS4 GTA V Menu Base

A mod menu GUI for PS4 GTA V built on top of my native caller.

How to Activate
  • Press DPAD RIGHT + SQUARE
PAY ATTENTION PLEASE!

This mod menu is very unstable and will most likely crash GTA V many times before you get it to work. If you load ArabicGuy first, then close the game. Then load this mod menu, it will work. Also the mod menu will only work with Leeful's HEN

Pictures

GTA V Native Caller PS4 Port to GTA 1.32 WIP Pack by 2much4u 2.jpg GTA V Native Caller PS4 Port to GTA 1.32 WIP Pack by 2much4u 3.jpg GTA V Native Caller PS4 Port to GTA 1.32 WIP Pack by 2much4u 4.jpg GTA V Native Caller PS4 Port to GTA 1.32 WIP Pack by 2much4u 5.jpg
PAY ATTENTION PLEASE!

This mod menu is very unstable and will most likely crash GTA V many times before you get it to work. If you load ArabicGuy first, then close the game. Then load this mod menu, it will work.

Key Features
  • Unlimited submenus
  • Unlimited options
  • Option & submenu remembrance
  • Auto adjusting and scrolling background
  • Full customization
  • Simple keyboard input and handling
  • Support for numerous dynamic option types
  • Button instructions display
  • Example options and vehicle spawner
Notes

While the example submenus showcase much of the menu base's functionality, more is possible. Check out menu.cpp for all supported option types.

Menu::vehicleSpawn and Menu::vehicleToSpawn are only for the example vehicleSpawner submenu and are unnecessary to the overall menu base.

The UI is fairly simple and open to more advanced customization such as the addition of sprites.

Spoiler: Related Tweets / Videos

GTA V Native Caller PS4 Port to GTA 1.32 WIP Pack by 2much4u.jpg
 

Comments

@kevambert It definitely works, I've been using it all day. Sometimes it does shutdown the console when it gets to ~70% loading, but once you've got it loaded it seems to be really stable.
 
@Mustafa0436 I'm working on putting together exactly what I did, but basically it was this:
  • Altered the Makefile in the root directory to closely match the one from toomuch4u's ps4-gtav-menu-base, I didn't change anything with the Makefile for gtapayload.
  • Filled in the proper addresses as we already discussed here in include/kern.h
  • Altered kern.c to patch memcpy then do the additional ptrace patch, I got this info from installer.c in ps4debug from GiantPluto
  • Change the native payload address in gtaPayload/source/invoker.cpp
  • Change all the relevant information in include/gta.h
I'm trying to figure out exactly why this menu works though. It's just a base, but it seems simple enough to call the natives by referencing ArabicGuys code, still would take forever to code everything he did out. I added exploding ammo easily enough.

The problem is even with the same changes mod menus based on ps4-gtav-menu-base by 2much4u still aren't working. I spent a few hours on ArabicGuy 1.0 today and it's still not functional. I would really like to get ps4-gtav-menu-base working as it seems most menus are based on that.

@Mustafa0436 OK, I've got ArabicGuy 1.0 launching on 6.72/127 now, something hinky with the controls but I think it might need the button mapping redone, it looks like it might have changed across firmwares. Not sure if I will get to it tonight, it's late, but I should be able to finish it up tomorrow.

Here's ArabicGuy 1.00 for 6.72/127 for anyone that's interested. I didn't test everything but everything I did seemed to work. Hold on I want to remove a small thing, the hovering piece of text that says f* rockstar games. OK here's the link:
 
@GraFfiX420 If you are talking about the Arabicguy i shared, then this is only for 1.00. I appreciate the instructions of how you made it work, but i need it a little more detailed. That would be nice. :D

And thx for doing the all this stuff for the community. As i said, i am also working on this, and i have been working all the night long again lol. But as usual one of these nights with very little progress
 
@Mustafa0436 I ended up using the source for ArabicGuy 1.00 that was posted here, I wasn't sure if you had made any changes to the files you posted and I wanted to be sure I was starting clean. I have modified the ArabicGuy 1.00 to work with 6.72/1.27. I believe the source code is for 4.05/1.00?

I should have the menu from yesterday and the arabicguy menu posted to github tomorrow, then you can just grab both sources and diff the files to see exactly what was changed. I think PS4-GTAV-Native-Caller may actually be working, but there's no menu information whatsoever contained in the code.

Also thanks for thanking me, I'm not great with this type of code but I can usually make stuff work.

BTW ArabicGuy is traditionally activated by L1+R1, but I changed it to be Square+DPAD Right, like the other menu.
 
Does anyone have a utility for dumping the native tables? I'd like to dump 1.32 and work on that. I might be able to use ps4debug to do it, but I feel like it would take forever, unless there aren't too many new definitions, I might be able to just calculate the number of bytes offset and adjust.
 
Status
Not open for further replies.
Back
Top