Post: Basic PS4API Open Sourced
06-26-2017, 01:15 AM #1
Black Panther
Former Staff
(adsbygoogle = window.adsbygoogle || []).push({}); THIS IS FOR 1.76 ONLY!!!

I'm releasing my PS4API that I wrote because there were no other APIs released when I made this. I want to thank 2much4u and Bad ChoicesZ for their help with this. They helped me out a lot. As long as all the other big dogs in the PS4 community such as CTurt, Z80, and Zecaxco.

You can find the code over on my Github:

You must login or register to view this content.
You must login or register to view this content.

The code is not the best, but I just don't have the time or the interest to work on this anymore, hopefully someone else will build upon this and make it gr8.
The api is very similar to PS3API by imcsx, with most of the same functions, etc. I made it that way so it would be relatively easy to port projects from PS3 to PS4, etc.


How to use the API

  • Add the dll as a resource to your project
  • Include the namespace in your project


Common function usage

    
PS4API.ConnectTarget(string ip) - Connects to the supplied local ip address. This will only work obviously if the payload is still running on the ps4...
PS4API.AttachProcess(string processName) - Attaches to the supplied procName. Most games use eboot.bin or default.elf or something like that.
PS4API.ReadMemory(UInt32 address, int readLength) - Reads x amount of bytes from the supplied address
PS4API.SetMemory(UInt32 address, byte[] memory) - Writes the byte array memory, to the supplied address
PS4API.Extension.[] - This is a subclass that holds many extra memory functions such as Read/Write Int16/32/64, Floats, Doubles, Strings, etc. Similar to PS3LIB


You can also call the commands that the server can process directly by using:

    
PS4API.Commands.[] - Here has all the raw command calls, such as ReadMemory, GetPID, VSH Notification, etc.


Known bugs:

One of the biggest bugs that I have found, and am too lazy to debug, is a bug in which if you call the ReadMemory command to read a large chunk of memory too fast, it will crash the payload. This tells me the error lies in the payload code. But as I said, I have no interest in this project anymore.



Feel free to use this api as long as you do not use it for anything malicious or for anything commercial.


Again, thanks to the following people for all their hardwork:
2much4u, Bad ChoicesZ, CTurt, qwertyoruiop, kr105rlz, Z80, and Zecaxco
Last edited by Black Panther ; 06-26-2017 at 01:20 AM.

The following 19 users say thank you to Black Panther for this useful post:

/SneakerStreet/, 2much4u, anxify, BurtE, DMAAR-7777, Dog88Christian, Eddie Mac, gluesniffinpete, Hydrogen, Je Modz, John, MODDED_WARFARE, Pianist Prodigy, RebugBypass, Reyz, saeed19971, seb5594, TER152, WILDEMODZ
06-26-2017, 02:58 AM #2
2much4u
1337 H4X0R
Originally posted by Black
UInt32 address


hmmmmmm
06-26-2017, 02:59 AM #3
Black Panther
Former Staff
Originally posted by 2much4u View Post
hmmmmmm


What? Lol
06-26-2017, 03:02 AM #4
2much4u
1337 H4X0R
Originally posted by Black
What? Lol


Bit of a technicality, but addresses may need up to 64 bits on PS4.

The following user thanked 2much4u for this useful post:

ErasedDev
06-26-2017, 03:04 AM #5
Black Panther
Former Staff
Originally posted by 2much4u View Post
Bit of a technicality, but addresses may need up to 64 bits on PS4.

Yeah I know you're right, but I don't think any process that people will use this API for will require a 64bit int. However I should probably add that in there just incase I suppose :p
06-26-2017, 03:08 AM #6
2much4u
1337 H4X0R
Originally posted by Black
Yeah I know you're right, but I don't think any process that people will use this API for will require a 64bit int. However I should probably add that in there just incase I suppose :p


Well yeah, the EBOOT won't be in a memory range that needs that (unless ASLR isn't disabled), but any memory that has been allocated by a process will.
06-26-2017, 06:30 AM #7
Originally posted by 2much4u View Post
Well yeah, the EBOOT won't be in a memory range that needs that (unless ASLR isn't disabled), but any memory that has been allocated by a process will.


at least he doesn't use string
06-26-2017, 08:05 AM #8
Hydrogen
Super Mod
Originally posted by Marbella View Post
at least he doesn't use string


Lmfao!

The following user thanked Hydrogen for this useful post:

Marbella
06-26-2017, 11:39 PM #9
Doesn't seem to work all that well for me at least. Unless I'm missing something important.

I load the payload that's all good then once on the game I run:

ConnectTarget("192.168.137.40");
AttachProcess("default_mp.elf");

Then check the isConnected function and half the time it will return false as if it hasn't connected even though the connect and attach processes didn't crash or cause an error.
On the rare occasion when it does return true I try to read one byte in the game memory and it freezes the whole game. Also yes I am reading a game address that doesn't have any kind of read/write protection etc.

Any suggestions?

EDIT: Okay never mind I have it working now but it seems I have to connect it a few times before it actually connects properly.
Last edited by MODDED_WARFARE ; 06-26-2017 at 11:56 PM.
06-27-2017, 03:54 AM #10
Black Panther
Former Staff
Originally posted by WARFARE View Post
Doesn't seem to work all that well for me at least. Unless I'm missing something important.

I load the payload that's all good then once on the game I run:

ConnectTarget("192.168.137.40");
AttachProcess("default_mp.elf");

Then check the isConnected function and half the time it will return false as if it hasn't connected even though the connect and attach processes didn't crash or cause an error.
On the rare occasion when it does return true I try to read one byte in the game memory and it freezes the whole game. Also yes I am reading a game address that doesn't have any kind of read/write protection etc.

Any suggestions?

EDIT: Okay never mind I have it working now but it seems I have to connect it a few times before it actually connects properly.


Never had that problem before using it, I could release the source to the program I built using this API it's fairly stable with no problems like you're talking about. But thanks for letting me know, however I have no plans on fixing these bugs as I have no interest anymore.

Copyright © 2024, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo