Post: Former PS4 Hacker CTurt Has Now Updated His PS4SDK!
03-31-2017, 01:33 PM #1
Hydrogen
Super Mod
(adsbygoogle = window.adsbygoogle || []).push({}); We all know who You must login or register to view this content. is, a well-known former prestigious hacker that has worked on the PlayStation 4 console for a while. He recently quit the PS4 Scene a while ago, but a couple of hours ago, he has now updated his PS4SDK for other developers if this gets useful for anyone. You can find all the resources and code down below. Enjoy.

GitHub: You must login or register to view this content.
Libc.c: You must login or register to view this content.
Libc.h: You must login or register to view this content.


Libc.h Code

     #pragma once

#include "types.h"
#include "file.h"

typedef struct DIR DIR;
typedef int FILE;

#define SEEK_SET 0
#define SEEK_CUR 1
#define SEEK_END 2

extern void *(*malloc)(size_t size);
extern void (*free)(void *ptr);
extern void *(*calloc)(size_t num, size_t size);
extern void *(*realloc)(void* ptr, size_t size);
extern void *(*memset)(void *destination, int value, size_t num);
extern void *(*memcpy)(void *destination, const void *source, size_t num);
extern int (*memcmp)(const void *s1, const void *s2, size_t n);
extern char *(*strcpy)(char *destination, const char *source);
extern char *(*strncpy)(char *destination, const char *source, size_t num);
extern char *(*strcat)(char *dest, const char *src);
extern char *(*strncat)(char *dest, const char *src, size_t n);
extern size_t (*strlen)(const char *s);
extern int (*strcmp)(const char *s1, const char *s2);
extern int (*strncmp)(const char *s1, const char *s2, size_t n);
extern int (*sprintf)(char *str, const char *format, ...);
extern int (*snprintf)(char *str, size_t size, const char *format, ...);
extern int (*sscanf)(const char *str, const char *format, ...);
extern char *(*strchr)(const char *s, int c);
extern char *(*strrchr)(const char *s, int c);
extern char *(*strstr)(char *str1, char *str2);

extern void (*srand)(unsigned int seed);
extern int (*rand)(void);

extern char *(*asctime)(const struct tm *tm);
extern char *(*asctime_r)(const struct tm *tm, char *buf);
extern char *(*ctime)(const time_t *timep);
extern char *(*ctime_r)(const time_t *timep, char *buf);
extern struct tm *(*gmtime)(const time_t *timep);
extern struct tm *(*gmtime_r)(const time_t *timep, struct tm *result);
extern struct tm *(*localtime)(const time_t *timep);
extern struct tm *(*localtime_r)(const time_t *timep, struct tm *result);
extern time_t (*mktime)(struct tm *tm);

extern DIR *(*opendir)(const char *filename);
extern struct dirent *(*readdir)(DIR *dirp);
extern int (*readdir_r)(DIR *dirp, struct dirent *entry, struct dirent **result);
extern long (*telldir)(const DIR *dirp);
extern void (*seekdir)(DIR *dirp, long loc);
extern void (*rewinddir)(DIR *dirp);
extern int (*closedir)(DIR *dirp);
extern int (*dirfd)(DIR *dirp);
extern char *(*getprogname)();

extern FILE *(*fopen)(const char *filename, const char *mode);
extern size_t (*fread)(void *ptr, size_t size, size_t count, FILE *stream);
extern size_t (*fwrite)(const void * ptr, size_t size, size_t count, FILE *stream );
extern int (*fseek)(FILE *stream, long int offset, int origin);
extern long int(*ftell)(FILE *stream);
extern int (*fclose)(FILE *stream);
+extern int (*fprintf)(FILE *stream, const char *format, ...);

void initLibc(void);


Libc.c Code

     #include "kernel.h"
#include "module.h"

#include "libc.h"

void *(*malloc)(size_t size);
void (*free)(void *ptr);
void *(*calloc)(size_t num, size_t size);
void *(*realloc)(void* ptr, size_t size);
void *(*memset)(void *destination, int value, size_t num);
void *(*memcpy)(void *destination, const void *source, size_t num);
int (*memcmp)(const void *s1, const void *s2, size_t n);
char *(*strcpy)(char *destination, const char *source);
char *(*strncpy)(char *destination, const char *source, size_t num);
char *(*strcat)(char *dest, const char *src);
char *(*strncat)(char *dest, const char *src, size_t n);
size_t (*strlen)(const char *s);
int (*strcmp)(const char *s1, const char *s2);
int (*strncmp)(const char *s1, const char *s2, size_t n);
int (*sprintf)(char *str, const char *format, ...);
int (*snprintf)(char *str, size_t size, const char *format, ...);
int (*sscanf)(const char *str, const char *format, ...);
char *(*strchr)(const char *s, int c);
char *(*strrchr)(const char *s, int c);
char *(*strstr)(char *str1, char *str2);

void (*srand)(unsigned int seed);
int (*rand)(void);

char *(*asctime)(const struct tm *tm);
char *(*asctime_r)(const struct tm *tm, char *buf);
char *(*ctime)(const time_t *timep);
char *(*ctime_r)(const time_t *timep, char *buf);
struct tm *(*gmtime)(const time_t *timep);
struct tm *(*gmtime_r)(const time_t *timep, struct tm *result);
struct tm *(*localtime)(const time_t *timep);
struct tm *(*localtime_r)(const time_t *timep, struct tm *result);
time_t (*mktime)(struct tm *tm);

DIR *(*opendir)(const char *filename);
struct dirent *(*readdir)(DIR *dirp);
int (*readdir_r)(DIR *dirp, struct dirent *entry, struct dirent **result);
long (*telldir)(const DIR *dirp);
void (*seekdir)(DIR *dirp, long loc);
void (*rewinddir)(DIR *dirp);
int (*closedir)(DIR *dirp);
int (*dirfd)(DIR *dirp);
char *(*getprogname)();

FILE *(*fopen)(const char *filename, const char *mode);
size_t (*fread)(void *ptr, size_t size, size_t count, FILE *stream);
size_t (*fwrite)(const void * ptr, size_t size, size_t count, FILE *stream );
int (*fseek)(FILE *stream, long int offset, int origin);
long int(*ftell)(FILE *stream);
int (*fclose)(FILE *stream);
+int (*fprintf)(FILE *stream, const char *format, ...);

void initLibc(void) {
int libc = sceKernelLoadStartModule("libSceLibcInternal.sprx", 0, NULL, 0, 0, 0);

RESOLVE(libc, malloc);
RESOLVE(libc, free);
RESOLVE(libc, calloc);
RESOLVE(libc, realloc);
RESOLVE(libc, memset);
RESOLVE(libc, memcpy);
RESOLVE(libc, memcmp);
RESOLVE(libc, strcpy);
RESOLVE(libc, strncpy);
RESOLVE(libc, strcat);
RESOLVE(libc, strncat);
RESOLVE(libc, strlen);
RESOLVE(libc, strcmp);
RESOLVE(libc, strncmp);
RESOLVE(libc, sprintf);
RESOLVE(libc, snprintf);
RESOLVE(libc, sscanf);
RESOLVE(libc, strchr);
RESOLVE(libc, strrchr);
RESOLVE(libc, strstr);

RESOLVE(libc, srand);
RESOLVE(libc, rand);

RESOLVE(libc, asctime);
RESOLVE(libc, asctime_r);
RESOLVE(libc, ctime);
RESOLVE(libc, ctime_r);
RESOLVE(libc, gmtime);
RESOLVE(libc, gmtime_r);
RESOLVE(libc, localtime);
RESOLVE(libc, localtime_r);
RESOLVE(libc, mktime);

RESOLVE(libc, opendir);
RESOLVE(libc, readdir);
RESOLVE(libc, readdir_r);
RESOLVE(libc, telldir);
RESOLVE(libc, seekdir);
RESOLVE(libc, rewinddir);
RESOLVE(libc, closedir);
RESOLVE(libc, dirfd);

RESOLVE(libc, getprogname);

RESOLVE(libc, fopen);
RESOLVE(libc, fread);
RESOLVE(libc, fwrite);
RESOLVE(libc, fseek);
RESOLVE(libc, ftell);
RESOLVE(libc, fclose);
+ RESOLVE(libc, fprintf);
}
(adsbygoogle = window.adsbygoogle || []).push({});
03-31-2017, 09:27 PM #2
ExIIL
AstroCFG
hey, thats pretty good

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo