fail0verflow / ps4-kexec Goto Github PK
View Code? Open in Web Editor NEWImplementation of the kexec system call for PS4
License: BSD 2-Clause "Simplified" License
Implementation of the kexec system call for PS4
License: BSD 2-Clause "Simplified" License
Not to say this would be OK to do or anything but?
Could you create a bot army of ps4's, decrypting the firmware private key? with a exploit?
We need this man and it should be done right!
Sorry if that sounds stupid but I know things are moving on with tech like the quantum computers, I need to catch up with what is out there. I am new to this and really enjoying thinking. LOL I wonder if that would work that is all.
Hello, I would like know if works with 5.01?
gcc -c -march=btver2 -masm=intel -std=gnu11 -ffreestanding -fno-common -fPIE -pie -fomit-frame-pointer -nostdlib -nostdinc -fno-asynchronous-unwind-tables -Os -Wall -Werror -Wl,--build-id=none,-T,kexec.ld,--nmagic -DPS4_5_05 -DKASLR -DNO_SYMTAB -mcmodel=small -mno-red-zone -o kernel.o kernel.c
kernel.c:1:0: error: code model 'small' not supported in the 32 bit mode
There is a Howto to install on firwmware 4.0.X?
Symbol table does not exists on latest ps4 (>3.15), and kaslr is introduced since 3.55, which makes current implementation of kernel_resolve
completely broken. Is there any solution working without hardcoding?
Works with 3.51?
kernel.c: In function 'resolve_symbols':
kernel.c:33:9: error: 'kern_off_printf' undeclared (first use in this function); did you mean 'early_printf'?
if (kern_off_ ## name == 0) {
^
kernel.c:114:5: note: in expansion of macro 'RESOLVE'
RESOLVE(printf);
^~~~~~~
kernel.c:33:9: note: each undeclared identifier is reported only once for each function it appears in
if (kern_off_ ## name == 0) {
^
kernel.c:114:5: note: in expansion of macro 'RESOLVE'
RESOLVE(printf);
^~~~~~~
kernel.c:33:9: error: 'kern_off_copyin' undeclared (first use in this function); did you mean 'kern_off_printf'?
if (kern_off_ ## name == 0) {
^
kernel.c:116:5: note: in expansion of macro 'RESOLVE'
RESOLVE(copyin);
^~~~~~~
kernel.c:33:9: error: 'kern_off_copyout' undeclared (first use in this function); did you mean 'kern_off_copyin'?
if (kern_off_ ## name == 0) {
^
kernel.c:117:5: note: in expansion of macro 'RESOLVE'
RESOLVE(copyout);
^~~~~~~
kernel.c:33:9: error: 'kern_off_copyinstr' undeclared (first use in this function); did you mean 'kern_off_copyin'?
if (kern_off_ ## name == 0) {
^
kernel.c:118:5: note: in expansion of macro 'RESOLVE'
RESOLVE(copyinstr);
^~~~~~~
kernel.c:33:9: error: 'kern_off_kernel_map' undeclared (first use in this function); did you mean 'kern_off_printf'?
if (kern_off_ ## name == 0) {
^
kernel.c:119:5: note: in expansion of macro 'RESOLVE'
RESOLVE(kernel_map);
^~~~~~~
kernel.c:33:9: error: 'kern_off_kernel_pmap_store' undeclared (first use in this function); did you mean 'kern_off_kernel_map'?
if (kern_off_ ## name == 0) {
^
kernel.c:120:5: note: in expansion of macro 'RESOLVE'
RESOLVE(kernel_pmap_store);
^~~~~~~
kernel.c:33:9: error: 'kern_off_kmem_alloc_contig' undeclared (first use in this function); did you mean 'kernel_alloc_contig'?
if (kern_off_ ## name == 0) {
^
kernel.c:121:5: note: in expansion of macro 'RESOLVE'
RESOLVE(kmem_alloc_contig);
^~~~~~~
kernel.c:33:9: error: 'kern_off_kmem_free' undeclared (first use in this function); did you mean 'kern_off_kernel_map'?
if (kern_off_ ## name == 0) {
^
kernel.c:122:5: note: in expansion of macro 'RESOLVE'
RESOLVE(kmem_free);
^~~~~~~
kernel.c:33:9: error: 'kern_off_pmap_extract' undeclared (first use in this function); did you mean 'kern_off_kmem_free'?
if (kern_off_ ## name == 0) {
^
kernel.c:123:5: note: in expansion of macro 'RESOLVE'
RESOLVE(pmap_extract);
^~~~~~~
kernel.c:33:9: error: 'kern_off_pmap_protect' undeclared (first use in this function); did you mean 'kern_off_pmap_extract'?
if (kern_off_ ## name == 0) {
^
kernel.c:124:5: note: in expansion of macro 'RESOLVE'
RESOLVE(pmap_protect);
^~~~~~~
kernel.c:33:9: error: 'kern_off_sysent' undeclared (first use in this function); did you mean 'kern_off_printf'?
if (kern_off_ ## name == 0) {
^
kernel.c:125:5: note: in expansion of macro 'RESOLVE'
RESOLVE(sysent);
^~~~~~~
kernel.c:33:9: error: 'kern_off_sched_pin' undeclared (first use in this function); did you mean 'kern_off_copyin'?
if (kern_off_ ## name == 0) {
^
kernel.c:126:5: note: in expansion of macro 'RESOLVE'
RESOLVE(sched_pin);
^~~~~~~
kernel.c:33:9: error: 'kern_off_sched_unpin' undeclared (first use in this function); did you mean 'kern_off_sched_pin'?
if (kern_off_ ## name == 0) {
^
kernel.c:127:5: note: in expansion of macro 'RESOLVE'
RESOLVE(sched_unpin);
^~~~~~~
kernel.c:33:9: error: 'kern_off_smp_rendezvous' undeclared (first use in this function); did you mean 'kern_off_sched_unpin'?
if (kern_off_ ## name == 0) {
^
kernel.c:128:5: note: in expansion of macro 'RESOLVE'
RESOLVE(smp_rendezvous);
^~~~~~~
kernel.c:33:9: error: 'kern_off_smp_no_rendevous_barrier' undeclared (first use in this function); did you mean 'kern_off_smp_rendezvous'?
if (kern_off_ ## name == 0) {
^
kernel.c:129:5: note: in expansion of macro 'RESOLVE'
RESOLVE(smp_no_rendevous_barrier);
^~~~~~~
kernel.c:33:9: error: 'kern_off_icc_query_nowait' undeclared (first use in this function); did you mean 'kern_off_sched_unpin'?
if (kern_off_ ## name == 0) {
^
kernel.c:130:5: note: in expansion of macro 'RESOLVE'
RESOLVE(icc_query_nowait);
^~~~~~~
kernel.c:25:9: error: 'kern_off_Starsha_UcodeInfo' undeclared (first use in this function); did you mean 'kern_off_pmap_protect'?
if (kern_off_ ## name == 0) {
^
kernel.c:131:5: note: in expansion of macro 'RESOLVE_NOERR'
RESOLVE_NOERR(Starsha_UcodeInfo);
^~~~~~~~~~~~~
kernel.c:25:9: error: 'kern_off_gpu_devid_is_9924' undeclared (first use in this function)
if (kern_off_ ## name == 0) {
^
kernel.c:132:5: note: in expansion of macro 'RESOLVE_NOERR'
RESOLVE_NOERR(gpu_devid_is_9924);
^~~~~~~~~~~~~
kernel.c:25:9: error: 'kern_off_gc_get_fw_info' undeclared (first use in this function); did you mean 'kern_off_sched_unpin'?
if (kern_off_ ## name == 0) {
^
kernel.c:133:5: note: in expansion of macro 'RESOLVE_NOERR'
RESOLVE_NOERR(gc_get_fw_info);
^~~~~~~~~~~~~
kernel.c: In function 'kernel_hook_install':
kernel.c:174:19: error: left shift count >= width of type [-Werror=shift-count-overflow]
if (!(t & (1L << 63))) {
^~
In file included from kernel.h:14:0,
from kernel.c:11:
types.h:41:5: error: static assertion failed: "size of struct jmp_t != 14"
_Static_assert(sizeof( struc ) == (size), "size of " #struc " != " #size )
^
kernel.c:196:9: note: in expansion of macro 'ASSERT_STRSIZE'
ASSERT_STRSIZE(struct jmp_t, 14);
^~~~~~~~~~~~~~
types.h:41:5: error: static assertion failed: "size of struct jmp_t != 5"
_Static_assert(sizeof( struc ) == (size), "size of " #struc " != " #size )
^
kernel.c:207:9: note: in expansion of macro 'ASSERT_STRSIZE'
ASSERT_STRSIZE(struct jmp_t, 5);
^~~~~~~~~~~~~~
kernel.c: In function 'kernel_init':
kernel.c:278:43: error: 'kern_off_printf' undeclared (first use in this function); did you mean '_early_printf'?
kern.kern_base = (u64)(early_printf - kern_off_printf);
^~~~~~~~~~~~~~~
_early_printf
kernel.c:286:45: error: 'kern_off_dmpml4i' undeclared (first use in this function); did you mean 'kern_off_printf'?
u64 DMPML4I = *(u32 *)(kern.kern_base + kern_off_dmpml4i);
^~~~~~~~~~~~~~~~
kern_off_printf
kernel.c:287:44: error: 'kern_off_dmpdpi' undeclared (first use in this function); did you mean 'kern_off_dmpml4i'?
u64 DMPDPI = *(u32 *)(kern.kern_base + kern_off_dmpdpi);
^~~~~~~~~~~~~~~
kern_off_dmpml4i
In file included from kernel.c:11:0:
kernel.h:25:21: error: left shift count >= width of type [-Werror=shift-count-overflow]
((unsigned long)-1 << 47) |
^
kernel.c:296:22: note: in expansion of macro 'KVADDR'
kern.dmap_base = KVADDR(DMPML4I, DMPDPI, 0, 0);
^~~~~~
kernel.h:26:23: error: left shift count >= width of type [-Werror=shift-count-overflow]
((unsigned long)(l4) << PML4SHIFT) |
^
kernel.c:296:22: note: in expansion of macro 'KVADDR'
kern.dmap_base = KVADDR(DMPML4I, DMPDPI, 0, 0);
ok, so, win 10 x64, try mingw64 & mingw32, not work, what try now?
Tests performed with slim and pro resulted in black screen after the execution of the payload in firmware 4.05, this would be because of the chipset belize? Could any patch fix this problem?
Is there an thing in the PS4 that uses PPC and not X86 Architecture as there a fellow developer saying the The PS4 is a PowerPC
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.