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 0000000..bb581d8 Binary files /dev/null and b/data/payload_483C.bin differ 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++) {