From 4c1e0e964bea2990e0471b5ce5ca8ed61dd02232 Mon Sep 17 00:00:00 2001 From: Maschell Date: Sat, 3 Apr 2021 20:45:29 +0200 Subject: [PATCH] Use raw2c instead of xxd --- ios_bsp/.gitignore | 6 ++++++ ios_bsp/Makefile | 11 +++++++++-- ios_fs/.gitignore | 6 ++++++ ios_fs/Makefile | 11 +++++++++-- ios_kernel/.gitignore | 6 ++++++ ios_kernel/Makefile | 11 +++++++++-- ios_mcp/.gitignore | 6 ++++++ ios_mcp/Makefile | 11 +++++++++-- ios_usb/.gitignore | 6 ++++++ ios_usb/Makefile | 13 ++++++++++--- src/ios_exploit.c | 18 +++++++++--------- 11 files changed, 85 insertions(+), 20 deletions(-) create mode 100644 ios_bsp/.gitignore create mode 100644 ios_fs/.gitignore create mode 100644 ios_kernel/.gitignore create mode 100644 ios_mcp/.gitignore create mode 100644 ios_usb/.gitignore diff --git a/ios_bsp/.gitignore b/ios_bsp/.gitignore new file mode 100644 index 0000000..1499354 --- /dev/null +++ b/ios_bsp/.gitignore @@ -0,0 +1,6 @@ +build/ +*.bin +*.bin.h +ios_bsp.c +ios_bsp.h +*.elf \ No newline at end of file diff --git a/ios_bsp/Makefile b/ios_bsp/Makefile index eaa8bc0..7f047ab 100644 --- a/ios_bsp/Makefile +++ b/ios_bsp/Makefile @@ -26,6 +26,12 @@ OFILES += $(SFILES:source/%.s=build/%.o) PROJECTNAME = ${shell basename "$(CURDIR)"} CWD = "$(CURDIR)"" +#--------------------------------------------------------------------------------- +# path to tools +#--------------------------------------------------------------------------------- +DEVKITPATH=$(shell echo "$(DEVKITPRO)" | sed -e 's/^\([a-zA-Z]\):/\/\1/') +export PATH := $(DEVKITPATH)/tools/bin:$(DEVKITPATH)/devkitPPC/bin:$(PATH) + #--------------------------------------------------------------------------------- # canned command sequence for binary data, taken from devkitARM #--------------------------------------------------------------------------------- @@ -49,7 +55,8 @@ $(PROJECTNAME).bin: $(PROJECTNAME).elf @$(OBJCOPY) -j .text -j .rodata -j .data -O binary $(PROJECTNAME).elf $@ $(PROJECTNAME).bin.h: $(PROJECTNAME).bin - @xxd -i $< | sed "s/unsigned/static const unsigned/g;s/$(PROJECTNAME)$*/$(PROJECTNAME)/g" > $@ + @raw2c $< + @cp $(PROJECTNAME).c $@ $(PROJECTNAME)_syms.h: @echo "#ifndef $(PROJECTNAME)_SYMS_H" > $@ @@ -60,7 +67,7 @@ $(PROJECTNAME)_syms.h: clean: @rm -f build/*.o build/*.d - @rm -f $(PROJECTNAME).elf $(PROJECTNAME).bin $(PROJECTNAME)_syms.h $(PROJECTNAME).bin $(PROJECTNAME).bin.h + @rm -f $(PROJECTNAME).elf $(PROJECTNAME).bin $(PROJECTNAME)_syms.h $(PROJECTNAME).bin $(PROJECTNAME).bin.h $(PROJECTNAME).h $(PROJECTNAME).c @echo "all cleaned up !" -include $(DFILES) diff --git a/ios_fs/.gitignore b/ios_fs/.gitignore new file mode 100644 index 0000000..fe62fc7 --- /dev/null +++ b/ios_fs/.gitignore @@ -0,0 +1,6 @@ +build/ +*.bin +*.bin.h +ios_fs.c +ios_fs.h +*.elf \ No newline at end of file diff --git a/ios_fs/Makefile b/ios_fs/Makefile index 2969d9f..209a8e4 100644 --- a/ios_fs/Makefile +++ b/ios_fs/Makefile @@ -28,6 +28,12 @@ OFILES += $(SFILES:source/%.s=build/%.o) PROJECTNAME = ${shell basename "$(CURDIR)"} CWD = "$(CURDIR)"" +#--------------------------------------------------------------------------------- +# path to tools +#--------------------------------------------------------------------------------- +DEVKITPATH=$(shell echo "$(DEVKITPRO)" | sed -e 's/^\([a-zA-Z]\):/\/\1/') +export PATH := $(DEVKITPATH)/tools/bin:$(DEVKITPATH)/devkitPPC/bin:$(PATH) + #--------------------------------------------------------------------------------- # canned command sequence for binary data, taken from devkitARM #--------------------------------------------------------------------------------- @@ -51,7 +57,8 @@ $(PROJECTNAME).bin: $(PROJECTNAME).elf @$(OBJCOPY) -j .text -j .rodata -j .data -O binary $(PROJECTNAME).elf $@ $(PROJECTNAME).bin.h: $(PROJECTNAME).bin - @xxd -i $< | sed "s/unsigned/static const unsigned/g;s/$(PROJECTNAME)$*/$(PROJECTNAME)/g" > $@ + @raw2c $< + @cp $(PROJECTNAME).c $@ $(PROJECTNAME)_syms.h: @echo "#ifndef $(PROJECTNAME)_SYMS_H" > $@ @@ -63,7 +70,7 @@ $(PROJECTNAME)_syms.h: clean: @rm -f build/*.o build/*.d - @rm -f $(PROJECTNAME).elf $(PROJECTNAME).bin $(PROJECTNAME)_syms.h $(PROJECTNAME).bin $(PROJECTNAME).bin.h + @rm -f $(PROJECTNAME).elf $(PROJECTNAME).bin $(PROJECTNAME)_syms.h $(PROJECTNAME).bin $(PROJECTNAME).bin.h $(PROJECTNAME).h $(PROJECTNAME).c @echo "all cleaned up !" -include $(DFILES) diff --git a/ios_kernel/.gitignore b/ios_kernel/.gitignore new file mode 100644 index 0000000..a2d2288 --- /dev/null +++ b/ios_kernel/.gitignore @@ -0,0 +1,6 @@ +build/ +*.bin +*.bin.h +ios_kernel.c +ios_kernel.h +*.elf \ No newline at end of file diff --git a/ios_kernel/Makefile b/ios_kernel/Makefile index 083d180..a352de8 100644 --- a/ios_kernel/Makefile +++ b/ios_kernel/Makefile @@ -26,6 +26,12 @@ OFILES += $(SFILES:source/%.s=build/%.o) PROJECTNAME = ${shell basename "$(CURDIR)"} CWD = "$(CURDIR)"" +#--------------------------------------------------------------------------------- +# path to tools +#--------------------------------------------------------------------------------- +DEVKITPATH=$(shell echo "$(DEVKITPRO)" | sed -e 's/^\([a-zA-Z]\):/\/\1/') +export PATH := $(DEVKITPATH)/tools/bin:$(DEVKITPATH)/devkitPPC/bin:$(PATH) + #--------------------------------------------------------------------------------- # canned command sequence for binary data, taken from devkitARM #--------------------------------------------------------------------------------- @@ -49,7 +55,8 @@ $(PROJECTNAME).bin: $(PROJECTNAME).elf @$(OBJCOPY) -j .text -j .rodata -j .data -O binary $(PROJECTNAME).elf $@ $(PROJECTNAME).bin.h: $(PROJECTNAME).bin - @xxd -i $< | sed "s/unsigned/static const unsigned/g;s/$(PROJECTNAME)$*/$(PROJECTNAME)/g" > $@ + @raw2c $< + @cp $(PROJECTNAME).c $@ $(PROJECTNAME)_syms.h: @echo "#ifndef $(PROJECTNAME)_SYMS_H" > $@ @@ -60,7 +67,7 @@ $(PROJECTNAME)_syms.h: clean: @rm -f build/*.o build/*.d - @rm -f $(PROJECTNAME).elf $(PROJECTNAME).bin $(PROJECTNAME)_syms.h $(PROJECTNAME).bin $(PROJECTNAME).bin.h + @rm -f $(PROJECTNAME).elf $(PROJECTNAME).bin $(PROJECTNAME)_syms.h $(PROJECTNAME).bin $(PROJECTNAME).bin.h $(PROJECTNAME).h $(PROJECTNAME).c @echo "all cleaned up !" -include $(DFILES) diff --git a/ios_mcp/.gitignore b/ios_mcp/.gitignore new file mode 100644 index 0000000..5aaf490 --- /dev/null +++ b/ios_mcp/.gitignore @@ -0,0 +1,6 @@ +build/ +*.bin +*.bin.h +ios_mcp.c +ios_mcp.h +*.elf \ No newline at end of file diff --git a/ios_mcp/Makefile b/ios_mcp/Makefile index 083d180..8f66d38 100644 --- a/ios_mcp/Makefile +++ b/ios_mcp/Makefile @@ -26,6 +26,12 @@ OFILES += $(SFILES:source/%.s=build/%.o) PROJECTNAME = ${shell basename "$(CURDIR)"} CWD = "$(CURDIR)"" +#--------------------------------------------------------------------------------- +# path to tools +#--------------------------------------------------------------------------------- +DEVKITPATH=$(shell echo "$(DEVKITPRO)" | sed -e 's/^\([a-zA-Z]\):/\/\1/') +export PATH := $(DEVKITPATH)/tools/bin:$(DEVKITPATH)/devkitPPC/bin:$(PATH) + #--------------------------------------------------------------------------------- # canned command sequence for binary data, taken from devkitARM #--------------------------------------------------------------------------------- @@ -49,7 +55,8 @@ $(PROJECTNAME).bin: $(PROJECTNAME).elf @$(OBJCOPY) -j .text -j .rodata -j .data -O binary $(PROJECTNAME).elf $@ $(PROJECTNAME).bin.h: $(PROJECTNAME).bin - @xxd -i $< | sed "s/unsigned/static const unsigned/g;s/$(PROJECTNAME)$*/$(PROJECTNAME)/g" > $@ + @raw2c $< + @cp $(PROJECTNAME).c $@ $(PROJECTNAME)_syms.h: @echo "#ifndef $(PROJECTNAME)_SYMS_H" > $@ @@ -60,7 +67,7 @@ $(PROJECTNAME)_syms.h: clean: @rm -f build/*.o build/*.d - @rm -f $(PROJECTNAME).elf $(PROJECTNAME).bin $(PROJECTNAME)_syms.h $(PROJECTNAME).bin $(PROJECTNAME).bin.h + @rm -f $(PROJECTNAME).elf $(PROJECTNAME).bin $(PROJECTNAME)_syms.h $(PROJECTNAME).bin $(PROJECTNAME).bin.h $(PROJECTNAME).c $(PROJECTNAME).h @echo "all cleaned up !" -include $(DFILES) diff --git a/ios_usb/.gitignore b/ios_usb/.gitignore new file mode 100644 index 0000000..2cf8015 --- /dev/null +++ b/ios_usb/.gitignore @@ -0,0 +1,6 @@ +build/ +*.bin +*.bin.h +ios_usb.c +ios_usb.h +*.elf \ No newline at end of file diff --git a/ios_usb/Makefile b/ios_usb/Makefile index 083d180..c366c3d 100644 --- a/ios_usb/Makefile +++ b/ios_usb/Makefile @@ -26,6 +26,12 @@ OFILES += $(SFILES:source/%.s=build/%.o) PROJECTNAME = ${shell basename "$(CURDIR)"} CWD = "$(CURDIR)"" +#--------------------------------------------------------------------------------- +# path to tools +#--------------------------------------------------------------------------------- +DEVKITPATH=$(shell echo "$(DEVKITPRO)" | sed -e 's/^\([a-zA-Z]\):/\/\1/') +export PATH := $(DEVKITPATH)/tools/bin:$(DEVKITPATH)/devkitPPC/bin:$(PATH) + #--------------------------------------------------------------------------------- # canned command sequence for binary data, taken from devkitARM #--------------------------------------------------------------------------------- @@ -49,8 +55,9 @@ $(PROJECTNAME).bin: $(PROJECTNAME).elf @$(OBJCOPY) -j .text -j .rodata -j .data -O binary $(PROJECTNAME).elf $@ $(PROJECTNAME).bin.h: $(PROJECTNAME).bin - @xxd -i $< | sed "s/unsigned/static const unsigned/g;s/$(PROJECTNAME)$*/$(PROJECTNAME)/g" > $@ - + @raw2c $< + @cp $(PROJECTNAME).c $@ + $(PROJECTNAME)_syms.h: @echo "#ifndef $(PROJECTNAME)_SYMS_H" > $@ @echo "#define $(PROJECTNAME)_SYMS_H" >> $@ @@ -60,7 +67,7 @@ $(PROJECTNAME)_syms.h: clean: @rm -f build/*.o build/*.d - @rm -f $(PROJECTNAME).elf $(PROJECTNAME).bin $(PROJECTNAME)_syms.h $(PROJECTNAME).bin $(PROJECTNAME).bin.h + @rm -f $(PROJECTNAME).elf $(PROJECTNAME).bin $(PROJECTNAME)_syms.h $(PROJECTNAME).bin $(PROJECTNAME).bin.h $(PROJECTNAME).h $(PROJECTNAME).c @echo "all cleaned up !" -include $(DFILES) diff --git a/src/ios_exploit.c b/src/ios_exploit.c index f457945..9323a0b 100644 --- a/src/ios_exploit.c +++ b/src/ios_exploit.c @@ -236,7 +236,7 @@ static const int final_chain[] = { 0x0, // 0x1F0 0x101063db, // 0x1F4 POP {R1,R2,R5,PC} 0x0, // 0x1F8 - sizeof(ios_kernel_bin), // 0x1FC our code size + sizeof(ios_kernel), // 0x1FC our code size 0x0, // 0x200 0x10123983, // 0x204 POP {R1,R3,R4,R6,PC} 0x00140000, // 0x208 our code source location @@ -309,7 +309,7 @@ static void uhs_exploit_init(int dev_uhs_0_handle, cfw_config_t * config) memcpy((char*)(0xF4120000), second_chain, sizeof(second_chain)); memcpy((char*)(0xF4130000), final_chain, sizeof(final_chain)); - memcpy((char*)(0xF4140000), ios_kernel_bin, sizeof(ios_kernel_bin)); + memcpy((char*)(0xF4140000), ios_kernel, sizeof(ios_kernel)); payload_info_t *payloads = (payload_info_t*)0xF4148000; @@ -317,14 +317,14 @@ static void uhs_exploit_init(int dev_uhs_0_handle, cfw_config_t * config) memcpy(payloads->data, config, payloads->size); payloads = (payload_info_t*)( ((char*)payloads) + ALIGN4(sizeof(payload_info_t) + payloads->size) ); - payloads->size = sizeof(ios_usb_bin); - memcpy(payloads->data, ios_usb_bin, payloads->size); + payloads->size = sizeof(ios_usb); + memcpy(payloads->data, ios_usb, payloads->size); payloads = (payload_info_t*)( ((char*)payloads) + ALIGN4(sizeof(payload_info_t) + payloads->size) ); //if(config->redNAND) //{ - payloads->size = sizeof(ios_fs_bin); - memcpy(payloads->data, ios_fs_bin, payloads->size); + payloads->size = sizeof(ios_fs); + memcpy(payloads->data, ios_fs, payloads->size); payloads = (payload_info_t*)( ((char*)payloads) + ALIGN4(sizeof(payload_info_t) + payloads->size) ); // if(config->seeprom_red) @@ -335,8 +335,8 @@ static void uhs_exploit_init(int dev_uhs_0_handle, cfw_config_t * config) // } //} - payloads->size = sizeof(ios_mcp_bin); - memcpy(payloads->data, ios_mcp_bin, payloads->size); + payloads->size = sizeof(ios_mcp); + memcpy(payloads->data, ios_mcp, payloads->size); payloads = (payload_info_t*)( ((char*)payloads) + ALIGN4(sizeof(payload_info_t) + payloads->size) ); /*if(config->launchImage) @@ -365,7 +365,7 @@ static void uhs_exploit_init(int dev_uhs_0_handle, cfw_config_t * config) DCStoreRange(pretend_root_hub + 33, 200); DCStoreRange((void*)0xF4120000, sizeof(second_chain)); DCStoreRange((void*)0xF4130000, sizeof(final_chain)); - DCStoreRange((void*)0xF4140000, sizeof(ios_kernel_bin)); + DCStoreRange((void*)0xF4140000, sizeof(ios_kernel)); DCStoreRange((void*)0xF4148000, ((u32)payloads) - 0xF4148000); }