From 2fa4f1398b6a05b12ef92aa4a83f1edb528e9e0c Mon Sep 17 00:00:00 2001 From: Zarh Date: Tue, 6 Nov 2018 14:25:24 +0100 Subject: [PATCH] v0.89 --- .gitignore | 4 ++++ ChangeLog.txt | 5 ++++- Makefile | 6 +++++- data/payload_483C.bin | Bin 0 -> 10936 bytes payload/source/Makefile | 2 +- payload/source/symbols.h | 10 ++++++++++ source/firmware.h | 13 +++++++++++++ source/main.c | 21 ++++++++++++++++++++- 8 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 .gitignore create mode 100644 data/payload_483C.bin diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..71f19c6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/build +*.elf +*.self +*.pkg diff --git a/ChangeLog.txt b/ChangeLog.txt index 7cda448..b40d0df 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,6 +1,9 @@ +v0.89 +-Add : Support fw 4.83C + v0.88 -Add : Support IDPS from latest ps3 models --Add : Dupport fw to dump the eid_root_key +-Add : eid_root_key dumper is working on almost every cfw v0.87 -Added : fw independant diff --git a/Makefile b/Makefile index 413bab2..ec2661a 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ include $(PSL1GHT)/ppu_rules # SOURCES is a list of directories containing source code # INCLUDES is a list of directories containing extra header files #--------------------------------------------------------------------------------- -VERSION := 0.88 +VERSION := 0.89 NAME := IDPSet TARGET := $(NAME)_v$(VERSION) @@ -139,6 +139,10 @@ run: #--------------------------------------------------------------------------------- pkg: $(BUILD) $(OUTPUT).pkg +#--------------------------------------------------------------------------------- +payloads: + @rm -fr data/payload* + @$(MAKE) -C payload/source --no-print-directory #--------------------------------------------------------------------------------- else diff --git a/data/payload_483C.bin b/data/payload_483C.bin new file mode 100644 index 0000000000000000000000000000000000000000..bb581d8ab03a4337693f2c504404e8ba24fbe9ae GIT binary patch literal 10936 zcmbta3s@6p);>c*2sM@{SXr?e1Xom@8Y4KjQRBH`JRMhsTt(Q@TKLb*$ zR$bKU>Q*rnrFiKsTIwAIwcdJ>TI+gcLD`ysuBg~1pv<0cGM}b4H=mv78D{3Z?|IMp z&iBp9I3uU@E3q-4wuKAt+S6f?JrQ_&IIwmGvTSuQ%~k~lTM?w$a$$rm9a3zGpx5ew zVUui%$w^=`B$YO$K<7Y$SrD_3BXTY1V?kdFYFJUrikeo`wqguzI22egCa08@4C6rq z9=4p=q!Pro^ZLWB+-W)%`&Kr;X#&I2r7#a$_P&Q)=ZeDH2_#=0K{wq7+MG# z%M9QtZpnlcEr1`#Fq0p%fdP0wP9xt=F;1#aoB?(X2I#>ph+v&_cfxlQoWym;F)tu7 zYzqK5=)QdjFwyjy9JvKOLRh0Bl8eyj^*nUtAao`N7+>OQjlic0LOtPPO(9wapwER+ zE>l(#-4h@&5AB-)l0ayduGN+dP-~6Ced0s%5#!K#t`lr_M!1dR0dYLWfO4DREuN2fc^?6|0wED$Bajd?Q5|HwYEm_c;4R5Z7l+*maF&}E6@x6lo!067hL59 zZ|?;U@`88pgxk`^`RGVF-sS`A5lp#m>J{ns6dNiMPsMm$^F}B9rT)K%FMm5~v zUA^GXdcnJS!Ml6GqrKn*J>l5Pr(vDqCmB3CA@+`am+}cw2YUI(^AkK5D;0xvs`1>Agxh-r}R)P|9_w z=NQj0%JD&OIOV$1!+7I7;n)Xl_HeOBkEcA0>1+Rgllr)cJ;4)>b7#YT+=Ttuf_c

0aCK`XZ}CxY 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 USG%!Cxv}fr*cZ96|0d7>0>znx82|tP literal 0 HcmV?d00001 diff --git a/payload/source/Makefile b/payload/source/Makefile index 6426fbb..b4aff69 100644 --- a/payload/source/Makefile +++ b/payload/source/Makefile @@ -16,7 +16,7 @@ endif LDFLAGS = -Tldscript.ld -nostartfiles -nostdlib -nodefaultlibs -Wl,--gc-sections -Wl,-Map=$(TARGET)_$@.map PAYLOADS := 421C 421D 430C 430D 431C 440C 441C 441D 446C 446D 450C 450D 453C 453D 455C 455D 460C \ - 465C 465D 470C 470D 475C 475D 476C 476D 478C 478D 480C 480D 481C 481D 482C 482D + 465C 465D 470C 470D 475C 475D 476C 476D 478C 478D 480C 480D 481C 481D 482C 482D 483C define do_payload $(CC) $(ASFLAGS) -DFIRMWARE_$@ -c start.S -o start.S.o diff --git a/payload/source/symbols.h b/payload/source/symbols.h index 389e153..ddeece8 100644 --- a/payload/source/symbols.h +++ b/payload/source/symbols.h @@ -333,5 +333,15 @@ #define GAMEOS_LPAR_SIZE_PTR 0x80000000003A1240ULL #endif +#ifdef FIRMWARE_483C + #define KERNEL_TOC 0x34FBB0 + #define KERNEL_SYMBOL_EXTEND_KSTACK 0x0700A4 + #define KERNEL_SYMBOL_COPY_TO_USER 0x00F86C + #define KERNEL_SYMBOL_MEMSET 0x04D66C + #define KERNEL_SYMBOL_MEMCPY 0x07E92C + #define GAMEOS_LPAR_BASE_PTR 0x800000000037A638ULL + #define GAMEOS_LPAR_SIZE_PTR 0x800000000037A640ULL +#endif + #endif /* __SYMBOLS_H__ */ diff --git a/source/firmware.h b/source/firmware.h index 45eae9c..c88b9a2 100644 --- a/source/firmware.h +++ b/source/firmware.h @@ -431,4 +431,17 @@ #define OFFSET_1_IDPS_482D 0x8000000000409A30ULL #define OFFSET_2_IDPS_482D 0x800000000049CAF4ULL +#define HTAB_OFFSET_483C 0x2DD70C +#define MMAP_OFFSET1_483C 0x2DCF54 +#define MMAP_OFFSET2_483C 0x2DD284 +#define SPE_OFFSET_483C 0x2F9EB8 +#define HV_START_OFFSET_483C 0x370F28 +#define TOC_OFFSET_483C 0x800000000034FBB0ULL +#define SYSCALL_TABLE_483C 0x8000000000363BE0ULL +#define FW_DATE_OFFSET_483C 0x80000000002FCB68ULL +#define FW_DATE_1_483C 0x323031382F30392FULL +#define FW_DATE_2_483C 0x30322031353A3233ULL +#define OFFSET_1_IDPS_483C 0x80000000003E2E30ULL +#define OFFSET_2_IDPS_483C 0x8000000000474AF4ULL + #endif /* __FIRMWARE_H__ */ diff --git a/source/main.c b/source/main.c index 3164a97..953f95a 100644 --- a/source/main.c +++ b/source/main.c @@ -78,6 +78,7 @@ #include "payload_481D_bin.h" #include "payload_482C_bin.h" #include "payload_482D_bin.h" +#include "payload_483C_bin.h" #include "NOT_PNG_bin.h" @@ -1015,7 +1016,25 @@ int init_IDPSet() payload = (u64 *) payload_482D_bin; payload_size = payload_482D_bin_size; - } + } else + if(( lv2peek(FW_DATE_OFFSET_483C )==FW_DATE_1_483C) && + ( lv2peek(FW_DATE_OFFSET_483C + 8)==FW_DATE_2_483C) ) + { + firmware = 0x482D; + + TOC_OFFSET = TOC_OFFSET_483C; + HV_START_OFFSET = HV_START_OFFSET_483C; + HTAB_OFFSET = HTAB_OFFSET_483C; + SYSCALL_TABLE_OFFSET = SYSCALL_TABLE_483C; + MMAP_OFFSET1 = MMAP_OFFSET1_483C; + MMAP_OFFSET2 = MMAP_OFFSET2_483C; + SPE_OFFSET = SPE_OFFSET_483C; + OFFSET_1_IDPS = OFFSET_1_IDPS_483C; + OFFSET_2_IDPS = OFFSET_2_IDPS_483C; + + payload = (u64 *) payload_483C_bin; + payload_size = payload_483C_bin_size; + } else { // firmware inconnu u64 n; for(n=0x350000; n<0x4A0000; n++) {