PS4ME (PS4 Memory Editor)

Descripción

Como ya dije en mi anterior post sobre RTM en PS4, mi principal objetivo es desarrollar un sistema similar a PS3TMAPI/PS3CCAPI pero para PS4 que sea sencillo de usar y que así los desarrolladores puedan crear sus propias tools.
Este proyecto quiero que sea un proyecto comunitario y que toda la gente que quiera colaborar a mejorar el sistema cotacte conmigo y asi poder crear un equipo.

PS4ME.dll es una librería para Windows con todas las funciones necesarias para poder vincularnos a una PS4 (Version 1.76 por ahora) y poder leer/escribir la memoria de los procesos.

Por ahora solamente tiene las funciones siguientes:

  • Conectarse a la PS4 con la IP especificada.
Connect(string ip)
  • Desconectar de la PS4.
Disconnect()
  • Obtener un array de los procesos que se estan ejecutando actualmente en la PS4.
string[] getProcesses()
  • Vincular a un proceso determinado devolviendo un mensaje de error en caso de fallo.
string AttachProcess(string ProcessName)
  • Realizar un volcado de memoria del tamaño especificado y que comienza en la direccion de memoria especificada por el offset devolviendo el array de bytes.
byte[] dumpMemory(string Offset, string size)
  • Escribir en la direccion de memoria especificada por Offset un byte especificado por value.
writeMemory(string Offset, string value)
  • Leer el byte de la posicion de memoria especificada por Offset.
string readMemory(string Offset)



En cuanto tenga tiempo iré añadiendo más funciones para poder obtener mas datos sobre los procesos (tamaño, direcciones, permisos, etc).

También incluyo un Payload complementario a PS4ME.dll que es lo que se ejecutará en la PS4 permitiendo que todas las funciones de PS4ME puedan realizarse con exito. Es recomendable que eñ payload se ejecute antes de iniciar ningun juego ya que este desactiva el ASLR y realiza un spoof a la consola para evitar que se realicen actualizaciones al iniciar los juegos.


PS4METool

He creado esta sencilla aplicación para Windows que funciona con PS4ME.dll a modo de demostración.

Una vez iniciada la aplicación, tenemos que activar la ejecucion de código en la PS4 desde PS4 Playground y en la barra de opciones abrir el desplegable de la derecha y darle a Send. Esto enviará el payload a la PS4 que se empezará a ejecutar.

Una vez hecho esto podemos darle a conectar y a actualizar la lista de procesos con el boton Get Process cuando estemos dentro del juego para que podamos ver el proceso correspondiente a nuestro juego (eboot.bin/default_mp.elf).

Una vez que hemos seleccionado el proceso le damos a Attach para vincularnos y ya podemos seleccionar una direccion de memoría y un tamaño y darle a Dump para ver la memoria. Podemos marcar el check box de Auto Update para que se actualice la memoria cada 0,4 segundos. Si queremos escribir en una direccion de memoria escribimos el valor del byte abajo a la izquierda y hacemos doble click en el valor que queremos sobreescribir.

Por ahora esto es lo que me ha dado tiempo a hacer con PS4ME.

Espero que os sirva y que desarrolleis vuestras propias tools para PS4.

Cualquier fallo o bug contactar conmigo por Twitter o YouTube.

Descarga

PS4METool with PS4ME.dll and Payload