From 003147affd515640e65a4c3dd29be5d5ce0d0394 Mon Sep 17 00:00:00 2001 From: Eljakim Herrewijnen Date: Fri, 2 Aug 2024 16:05:02 +0200 Subject: [PATCH] big update --- Makefile | 34 ++ README.md | 109 +++++ arm64_glitch_stub.S | 43 ++ arm64_stub.S | 416 ++++++++++++++++++ armT_stub.S | 187 ++++++++ arm_stub.S | 112 +++++ debugger.c | 227 ++++++++++ debugger_archs/ga_arm.h | 5 + debugger_archs/ga_arm64.h | 31 ++ debugger_archs/ga_arm_thumb.h | 5 + documentation/.gitignore | 1 + documentation/.vscode/settings.json | 3 + documentation/Makefile | 27 ++ documentation/make.bat | 35 ++ .../arm/debugger/arm_debugger_storage.rst | 59 +++ .../source/architectures/arm/index.rst | 5 + .../architectures/arm64/aarch64_mmu.rst | 31 ++ .../architectures/arm64/aarch64_vbar.rst | 58 +++ .../arm64/debugger/arm64_debugger_storage.rst | 147 +++++++ .../arm64/images/mmu/singlelevel_el3_pte.png | Bin 0 -> 54335 bytes .../images/vector_table/smc_call_arm64.png | Bin 0 -> 51205 bytes .../vector_table/smc_handling_arm64.jpg | Bin 0 -> 94953 bytes .../vector_table/vector_table_arm64.png | Bin 0 -> 62606 bytes .../source/architectures/arm64/index.rst | 9 + .../arm64/system_configuration.rst | 11 + .../debugger/armT_debugger_storage.rst | 95 ++++ .../source/architectures/arm_thumb/index.rst | 6 + documentation/source/conf.py | 32 ++ .../source/images/debugger_flow.drawio.svg | 1 + .../source/images/gupje_overview.drawio.svg | 1 + documentation/source/index.rst | 23 + documentation/source/overview.rst | 91 ++++ glitch_handler.h | 36 ++ null.d | 1 + simple_device.drawio.svg | 1 + simple_device_memory.drawio.svg | 1 + 36 files changed, 1843 insertions(+) create mode 100644 Makefile create mode 100644 README.md create mode 100644 arm64_glitch_stub.S create mode 100644 arm64_stub.S create mode 100644 armT_stub.S create mode 100644 arm_stub.S create mode 100644 debugger.c create mode 100644 debugger_archs/ga_arm.h create mode 100644 debugger_archs/ga_arm64.h create mode 100644 debugger_archs/ga_arm_thumb.h create mode 100644 documentation/.gitignore create mode 100644 documentation/.vscode/settings.json create mode 100644 documentation/Makefile create mode 100644 documentation/make.bat create mode 100644 documentation/source/architectures/arm/debugger/arm_debugger_storage.rst create mode 100644 documentation/source/architectures/arm/index.rst create mode 100644 documentation/source/architectures/arm64/aarch64_mmu.rst create mode 100644 documentation/source/architectures/arm64/aarch64_vbar.rst create mode 100644 documentation/source/architectures/arm64/debugger/arm64_debugger_storage.rst create mode 100644 documentation/source/architectures/arm64/images/mmu/singlelevel_el3_pte.png create mode 100644 documentation/source/architectures/arm64/images/vector_table/smc_call_arm64.png create mode 100644 documentation/source/architectures/arm64/images/vector_table/smc_handling_arm64.jpg create mode 100644 documentation/source/architectures/arm64/images/vector_table/vector_table_arm64.png create mode 100644 documentation/source/architectures/arm64/index.rst create mode 100644 documentation/source/architectures/arm64/system_configuration.rst create mode 100644 documentation/source/architectures/arm_thumb/debugger/armT_debugger_storage.rst create mode 100644 documentation/source/architectures/arm_thumb/index.rst create mode 100644 documentation/source/conf.py create mode 100644 documentation/source/images/debugger_flow.drawio.svg create mode 100644 documentation/source/images/gupje_overview.drawio.svg create mode 100644 documentation/source/index.rst create mode 100644 documentation/source/overview.rst create mode 100644 glitch_handler.h create mode 100644 null.d create mode 100644 simple_device.drawio.svg create mode 100644 simple_device_memory.drawio.svg diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a745a80 --- /dev/null +++ b/Makefile @@ -0,0 +1,34 @@ +ifeq ($(ANDROID_NDK_ROOT),) +$(error Error : Set the env variable 'ANDROID_NDK_ROOT' with the path of the Android NDK (version 20)) +endif + +CC := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android27-clang +AR := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar +OBJCOPY := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-objcopy +LD := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ld.bfd + +#ARM 32 bit +CC_32 := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi27-clang +AR_32 := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ar +OBJCOPY_32 := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-objcopy +LD_32 := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ld.bfd + +#ARM thumb mode +TOOLCHAIN_ARM_T := $(TOOLCHAINENV)/gcc-arm-none-eabi-10-2020-q4-major/bin/arm-none-eabi- +CC_T = $(TOOLCHAIN_ARM_T)gcc +AS_T = $(TOOLCHAIN_ARM_T)as +OBJCOPY_T = $(TOOLCHAIN_ARM_T)objcopy +LD_T = $(TOOLCHAIN_ARM_T)ld.bfd + +CFLAGS := -Werror -Wno-unused-variable -Os +LINKER := /system/bin/linker64 +DEBUG := -g + +#Thumb cflags +all: error + +error: + @echo "Please specify a target to build (-f devices/nvidia_shield_t)" + +clean: + rm -rf bin/* \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..13aeff5 --- /dev/null +++ b/README.md @@ -0,0 +1,109 @@ +# Gupje +Gupje is a bare metal architecture based stub debugger that helps in post-exploitation steps. Like booting a device after RCE has been achieved. Gupje is also capable of doing hardware-in-the-middle approaches as well as keeping control over a device while it is booting(Hijack trustzone etc.). + +Gupje currently supporting the following architectures: + * ARM64 (good support) + * ARM (minimal) + * ARM Thumb (decent support) + +The goal is to add support to more targets while I work on them. Because I mainly work on phones this list will probably not grow a lot in the short term. But if you have an interesting target and preferably a way to get into it(RCE), let me know and I will look into it. + +The only actual things the debugger can do is: + * Send/Receive (needs to be implemented by the user) + * Read/Write registers + +These functions are enough for a processor to run properly. The code size of the debugger is currently smaller than 4096 bytes(depends a bit on user setup) but will probably grow to include 1 extra page to support custom functionality. Like dumping extra registers and more specific VBAR setups. + +In the future it should also be possible to add fuzzing and same architecture rehosting. Once I find a project to implement this at least. + +## Overview +A simple overview of how Gupje is meant to be used can be seen below: + +![Simple Gupje Target](simple_device.drawio.svg) + +The user is responsible for gaining RCE and setting up Gupje. After this Gupje along with the ``Ghidra-Assistant`` can be used to interact with the device from within python and continue booting. + +### Gupje Setup +Because Gupje attempts to be a architecture based debugger the user only has to provide send/receive functionality to Gupje. Like sahara_tx/sahara_rx in Qualcomm based devices or a raw USB endpoint for the nvidia shield tablet. + +```c + +void send(void *buffer, uint32_t size, uint32_t *num_xfer){ + // TODO implement +} + +int recv(void *buffer, uint32_t size, uint32_t *num_xfer){ + // TODO implement + return 0; +} + +void recv_data(void *data, uint32_t len) { + uint32_t rx_err_code; + uint32_t xfer = 0; + while(1) { + recv(data, len, &xfer); + if(xfer >= len) { + break; + } + } +} + +int mystrlen(char *data) { + int i=0; + while(1) { + if(data[i++] == '\0'){ + break; + } + } + return i-1; +} + +void usb_log(char * msg, uint32_t * error){ + send(msg, mystrlen(msg), error); +} + +void concrete_main(uint32_t debugger){ + // TODO device specific code +} +``` + +Other protocols, like UART, are also possible. I will try to add more reference devices and implementations. + +### Memory layout +Overall 4 pages are always reserved for the debugger. I usually try to place them at the end of a memory region since the chance of the pages being corrupted/used by other functions is smaller. 3 pages are required at least for the debugger to function properly. + +![debugger memory layout](simple_device_memory.drawio.svg) + +## Documentation +The full documentation is covered in the ``documentation`` folder. To build it, navigate to the folder and run: +```bash +make livehtml +``` +Install the python dependencies if they are missing. (TODO add requirements) + +This code works in combination with the ``Ghidra Assistant``, which is another personal project to make Ghidra more instrumentable. + +## TODO + * ARM assembly needs to be completely rewritten + * Add code that allows the host to easily write and execute shellcode on the device. This will significantly decrease the size of the debugger. (extra page required) + * Add a more *minimal* approach to the debugger. That does not store data but can just be used to read/write memory. Usefull for exploitation when there is a very limited constraint on shellcode size. + * Implement code block stepping. + * Build an emulator to explain the debugger + +### ARM64 + * Allow restoring all registers by writing X15 to SP and jump to ELRn to create a *full* restored state. Figure out a way to branch without corrupting X15. + +### Thumb + * headless mode is not supported + * Figure out VBAR to implement single step debugging + +## Building +Download an Android NDK and set it's root path: +```bash +$ export ANDROID_NDK_ROOT=$TOOLCHAINENV/android-ndk-r21_Linux +``` + +Now you can build one of your targets: +```bash +$ make -f devices/pixel3a/Makefile +``` \ No newline at end of file diff --git a/arm64_glitch_stub.S b/arm64_glitch_stub.S new file mode 100644 index 0000000..b128b04 --- /dev/null +++ b/arm64_glitch_stub.S @@ -0,0 +1,43 @@ +.text +.global glitch_registers_loop +glitch_registers_loop: + BL trigger_high + BL trigger_low + BL glitch_dump_registers + RET + +.text +.global glitch_out_loop +glitch_out_loop: + BL trigger_high + MOV X0, #0x1 + glitch_loop: + MOV X1, #0x0 + CMP X1, X0 + b.ne glitch_loop + BL trigger_low + B debugger_main + +.text +.global glitch_dump_registers +glitch_dump_registers: + LDR X15, glitch_storage + STP X0, X1, [X15, #0x0] + STP X2, X3, [X15, #0x10] + STP X4, X5, [X15, #0x20] + STP X6, X7, [X15, #0x30] + STP X8, X9, [X15, #0x40] + STP X10, X11, [X15, #0x50] + STP X12, X13, [X15, #0x60] + STP X14, X15, [X15, #0x70] + STP X16, X17, [X15, #0x80] + STP X18, X19, [X15, #0x90] + STP X20, X21, [X15, #0xa0] + STP X22, X23, [X15, #0xb0] + STP X24, X25, [X15, #0xc0] + STP X26, X27, [X15, #0xd0] + STP X28, X29, [X15, #0xe0] + STP X30, X31, [X15, #0xf0] + RET + +glitch_storage: .quad glitch_storage \ No newline at end of file diff --git a/arm64_stub.S b/arm64_stub.S new file mode 100644 index 0000000..3a1fe34 --- /dev/null +++ b/arm64_stub.S @@ -0,0 +1,416 @@ +start: + LDR X15, addr_debugger_storage + + STR X0, [X15, #0] + STR X1, [X15, #8] + STR X2, [X15, #16] + STR X3, [X15, #24] + STR X4, [X15, #32] + STR X5, [X15, #40] + STR X6, [X15, #48] + STR X7, [X15, #56] + STR X8, [X15, #64] + STR X9, [X15, #72] + STR X10, [X15, #80] + STR X11, [X15, #88] + STR X12, [X15, #96] + STR X13, [X15, #104] + STR X14, [X15, #112] + STR X15, [X15, #120] + STR X16, [X15, #128] + STR X17, [X15, #136] + STR X18, [X15, #144] + STR X19, [X15, #152] + STR X20, [X15, #160] + STR X21, [X15, #168] + STR X22, [X15, #176] + STR X23, [X15, #184] + STR X24, [X15, #192] + STR X25, [X15, #200] + STR X26, [X15, #208] + STR X27, [X15, #216] + STR X28, [X15, #224] + STR X29, [X15, #232] + STR X30, [X15, #240] + MOV X0, SP + STR X0, [X15, #248] + + // Does not override the SP etc. TODO ELHER make configurable in debugger (during setup) + // B debugger_main + + // Overwrite SP and FP with the debugger stack location + LDR X0, addr_debugger_stack + MOV SP, X0 + MOV FP, X0 + + // See if we need to disable the MMU on entry + // LDR X0, [X15, #0xfd0] + // CMP X0, #0x777 //Disable the MMU + // BL disable_mmu + + // Compare to see if we need to jump into the debugger or need to continue the 'normal' execution flow + LDR X0, [X15, #4064] + CMP X0, #0x777 + B.NE debugger_main + + + # Continue 'normal' execution flow + BL sync_processor_state + + // Restore LR and FP + LDR X30, [X15, #240] + LDR X29, [X15, #232] + + // Restore the stack pointer + LDR X0, [X15, #248] + MOV SP, X0 + + // Also restore X0 + LDR X0, [X15, #0] + + LDR X15, [X15, #0xfd8] + BR X15 + +.text +.global disable_mmu +disable_mmu: + MRS X0, SCTLR_EL3 + AND X0, X0, #-0x2 + RET + +.text +.global enable_mmu +enable_mmu: + // TODO crashes on EL1? + MRS X0, SCTLR_EL3 + ORR X0, X0, #0x1 + RET + +.text +.global restore_and_jump +restore_and_jump: + BL sync_processor_state + + //See if we need to enable the MMU + // LDR X0, [X15, #0xfd0] + // CMP X0, #0x777 //Disable the MMU + // BL enable_mmu + + // Restore LR and FP + LDR X30, [X15, #240] + LDR X29, [X15, #232] + + // Restore the stack pointer + LDR X0, [X15, #248] + MOV SP, X0 + + // Also restore X0 + LDR X0, [X15, #0] + + // Load target address and branch to it without setting the LR + // JUMP_ADDR + LDR X15, [X15, #4088] + BR X15 + +.text +.global dump_special_el3 +dump_special_el3: + MRS X0, TTBR0_EL3 + STR X0, [X15, #256] + + MRS X0, SCTLR_EL3 + STR X0, [X15, #280] + + MRS X0, VBAR_EL3 + STR X0, [X15, #304] + + MRS X0, TCR_EL3 + STR X0, [X15, #328] + + MRS X0, ELR_EL3 + STR X0, [X15, #352] + + MRS X0, SPSR_EL3 + STR X0, [X15, #400] + + MRS X0, MAIR_EL3 + STR X0, [X15, #424] + + // Also dump el2, el1 + BL dump_special_el2 + BL dump_special_el1 + RET + +.text +.global dump_special_el2 +dump_special_el2: + MRS X0, TTBR0_EL2 + STR X0, [X15, #264] + + MRS X0, SCTLR_EL2 + STR X0, [X15, #288] + + MRS X0, VBAR_EL2 + STR X0, [X15, #312] + + MRS X0, TCR_EL2 + STR X0, [X15, #336] + + MRS X0, ELR_EL2 + STR X0, [X15, #360] + + MRS X0, SP_EL2 + STR X0, [X15, #376] + + MRS X0, SPSR_EL2 + STR X0, [X15, #408] + + MRS X0, MAIR_EL2 + STR X0, [X15, #432] + + // also dump EL1 + BL dump_special_el1 + RET + +.text +.global dump_special_el1 +dump_special_el1: + // EL1 registers dump + MRS X0, TTBR0_EL1 + STR X0, [X15, #272] + + MRS X0, SCTLR_EL1 + STR X0, [X15, #296] + + MRS X0, VBAR_EL1 + STR X0, [X15, #320] + + MRS X0, TCR_EL1 + STR X0, [X15, #344] + + MRS X0, ELR_EL1 + STR X0, [X15, #368] + + // see https://community.arm.com/support-forums/f/architectures-and-processors-forum/49184/difference-between-sp_el1-and-spsel-mov + // TODO for dumping with interactive shellcode? + // MRS X0, SP_EL1 + // STR X0, [X15, #384] + + MRS X0, SPSR_EL1 + STR X0, [X15, #416] + + MRS X0, MAIR_EL1 + STR X0, [X15, #440] + RET + +.text +.global dump_special_regs +dump_special_regs: + LDR X15, addr_debugger_storage + + MRS X0, CurrentEL + STR X0, [X15, #448] + + cmp X0, #0b1100 // EL3 + BEQ dump_special_el3 + + cmp X0, #0b1000 // EL2 + BEQ dump_special_el2 + + cmp X0, #0b0100 // EL1 + BEQ dump_special_el1 + + // EL0 registers + MRS X0, SP_EL0 + STR X0, [X15, #392] + + RET + +.text +.global write_special_el3 +write_special_el3: + LDR X0, [X15, #256] + MSR TTBR0_EL3, X0 + + LDR X0, [X15, #280] + MSR SCTLR_EL3, X0 + + LDR X0, [X15, #304] + MSR VBAR_EL3, X0 + + LDR X0, [X15, #328] + MSR TCR_EL3, X0 + + LDR X0, [X15, #352] + MSR ELR_EL3, X0 + + LDR X0, [X15, #376] + MSR SP_EL2, X0 + + LDR X0, [X15, #400] + MSR SPSR_EL3, X0 + + LDR X0, [X15, #424] + MSR MAIR_EL3, X0 + + BL write_special_el2 + BL write_special_el1 + + RET + +.text +.global write_special_el2 +write_special_el2: + LDR X0, [X15, #264] + MSR TTBR0_EL2, X0 + + LDR X0, [X15, #288] + MSR SCTLR_EL2, X0 + + LDR X0, [X15, #312] + MSR VBAR_EL2, X0 + + LDR X0, [X15, #336] + MSR TCR_EL2, X0 + + LDR X0, [X15, #360] + MSR ELR_EL2, X0 + + LDR X0, [X15, #384] + MSR SP_EL1, X0 + + LDR X0, [X15, #408] + MSR SPSR_EL2, X0 + + LDR X0, [X15, #432] + MSR MAIR_EL2, X0 + + BL write_special_el1 + + RET + +.text +.global write_special_el1 +write_special_el1: + LDR X0, [X15, #272] + MSR TTBR0_EL1, X0 + + LDR X0, [X15, #296] + MSR SCTLR_EL1, X0 + + LDR X0, [X15, #320] + MSR VBAR_EL1, X0 + + LDR X0, [X15, #344] + MSR TCR_EL1, X0 + + LDR X0, [X15, #368] + MSR ELR_EL1, X0 + + LDR X0, [X15, #392] + MSR SP_EL0, X0 + + LDR X0, [X15, #416] + MSR SPSR_EL1, X0 + + LDR X0, [X15, #440] + MSR MAIR_EL1, X0 + RET + +.text +.global write_special_regs +write_special_regs: + LDR X15, addr_debugger_storage + + MRS X0, CurrentEL + STR X0, [X15, #448] + + cmp X0, #0b1100 // EL3 + BEQ write_special_el3 + + cmp X0, #0b1000 // EL2 + BEQ write_special_el2 + + cmp X0, #0b0100 // EL1 + BEQ write_special_el1 + + RET + + +.text +.global debugger_sync_special_regs +debugger_sync_special_regs: + BL write_special_regs + B debugger_main + +.text +.global debugger_dump_special_regs +debugger_dump_special_regs: + BL dump_special_regs + B debugger_main + +.text +.global sync_processor_state +sync_processor_state: + //Corrupt X15 to use it to restore the rest of the state, except for the SP, LR and FP + LDR X15, addr_debugger_storage + + LDR X1, [X15, #8] + LDR X2, [X15, #16] + LDR X3, [X15, #24] + LDR X4, [X15, #32] + LDR X5, [X15, #40] + LDR X6, [X15, #48] + LDR X7, [X15, #56] + LDR X8, [X15, #64] + LDR X9, [X15, #72] + LDR X10, [X15, #80] + LDR X11, [X15, #88] + LDR X12, [X15, #96] + LDR X13, [X15, #104] + LDR X14, [X15, #112] + LDR X15, [X15, #120] + LDR X16, [X15, #128] + LDR X17, [X15, #136] + LDR X18, [X15, #144] + LDR X19, [X15, #152] + LDR X20, [X15, #160] + LDR X21, [X15, #168] + LDR X22, [X15, #176] + LDR X23, [X15, #184] + LDR X24, [X15, #192] + LDR X25, [X15, #200] + LDR X26, [X15, #208] + LDR X27, [X15, #216] + LDR X28, [X15, #224] + RET + +.text +.global restore_and_return +restore_and_return: + B sync_processor_state + + // Restore LR and FP + LDR X30, [X15, #240] + LDR X29, [X15, #232] + + // Restore the stack pointer + LDR X0, [X15, #248] + MOV SP, X0 + + // Also restore X0 + LDR X0, [X15, #0] + + RET + +.text +.global sync_debugger +sync_debugger: + BL sync_processor_state + B debugger_main + +.align 3 + + +addr_debugger_storage: .quad debugger_storage +addr_debugger_stack: .quad debugger_stack \ No newline at end of file diff --git a/armT_stub.S b/armT_stub.S new file mode 100644 index 0000000..fd12fcf --- /dev/null +++ b/armT_stub.S @@ -0,0 +1,187 @@ +.align 1 +.thumb +start: + @ Store R0 to the stack + push {r0} + + LDR R0, addr_debugger_storage + stmia r0, {r0-r7} + + @ Also store r0 by using r1 + ldr r1, addr_debugger_storage + pop {r0} + str r0, [r1, #0] + # Keep using r0 + LDR R0, addr_debugger_storage + + @ Store R8 to R15, not available directly in thumb mode + mov r1, r8 + str r1, [r0, #0x20] + mov r1, r9 + str r1, [r0, #0x24] + mov r1, r10 + str r1, [r0, #0x28] + mov r1, r11 + str r1, [r0, #0x2c] + mov r1, r12 //ip scratch + str r1, [r0, #0x30] + mov r1, sp //sp + str r1, [r0, #0x34] + mov r1, lr //lr + str r1, [r0, #0x38] + mov r1, pc //pc + str r1, [r0, #0x3c] + + // set debugger stack (r13 sp, r14 lr, r15 pc) + ldr r0, addr_debugger_stack + mov sp, r0 + + // Compare to see if we need to jump into the debugger or need to continue the 'normal' execution flow + // Default is jump in debugger + // CNT_EXEC 0x7f0 + ldr r1, addr_debugger_storage + ldr r0, =0x700 + add r0, #0xf0 + add r0, r0, r1 + + CMP r0, #0x77 + beq start_normal + + @ TODO, use r8, how can I clear it + ldr r2, addr_debugger_main + mov r12, r2 + bx r12 + + // Continue 'normal' execution flow +start_normal: + BL sync_processor_state + + // Restore LR, TODO + @ LDR LR, [r1, #240] + + @ // Restore the stack pointer + @ LDR R0, [r1, #248] + @ MOV SP, R0 + + // Also restore X0 + LDR R0, [r1, #0] + + // 0x7ec DBG_JUMP_TO + @ LDR r1, [r1, #0x7ec] + @ bx r1 + + +.text +.global restore_and_jump +restore_and_jump: + // Restores all registers except for LR and SP + BL sync_processor_state + + // restore SP, LR + ldr r0, addr_debugger_storage + ldr r1, [r0, #0x34] + mov sp, r1 //SP + ldr r1, [r0, #0x38] + mov lr, r1 //LR + + @ Load JUMP_ADDR 0x7fc into r12 + ldr r0, addr_debugger_storage + ldr r1, =0x7fc + add r1, r1, r0 + ldr r1, [r1] @ JUMP_ADDR + mov r12, r1 + + // Restore r0 and r1 + ldr r0, addr_debugger_storage + ldr r1, [r0, #4] + ldr r0, [r0] + + @ At this point everything is restored except for r12, which contains the jump address + bx r12 + +.text +.global debugger_sync_special_regs +debugger_sync_special_regs: + @ mov r4, #0x77 + // TODO, what special regs?? + bx LR + +.text +.global dump_special_regs +dump_special_regs: + // TODO, what special regs?? + bx LR + + +.text +.global debugger_dump_special_regs +debugger_dump_special_regs: + BL dump_special_regs + B debugger_main + + +.text +.global sync_processor_state +sync_processor_state: + @ Syncs general purpose registers back to the cpu and branches to the LR + + @ Load r8-r12 + ldr r0, addr_debugger_storage + ldr r1, [r0, #0x20] + mov r8, r1 + ldr r1, [r0, #0x24] + mov r9, r1 + ldr r1, [r0, #0x28] + mov r10, r1 + ldr r1, [r0, #0x2c] + mov r11, r1 + ldr r1, [r0, #0x30] + mov r12, r1 + + @ Not restoring SP, LR and PC. Left here as reference + @ ldr r1, [r0, #0x34] + @ mov r13, r1 //sp + @ ldr r1, [r0, #0x38] + @ mov r14, r1 //lr + @ ldr r1, [r0, #0x3c] + @ mov r15, r1 //pc + + @ load r0-r7 + ldr r0, addr_debugger_storage + ldmia r0, {r0-r7} + + bx lr + + +.text +.global restore_and_return +restore_and_return: + B sync_processor_state + + // restore SP, LR + ldr r0, addr_debugger_storage + ldr r1, [r0, #0x30] + mov r12, r1 //IP + ldr r1, [r0, #0x34] + mov sp, r1 //SP + ldr r1, [r0, #0x38] + mov lr, r1 //LR + + // Restore r0 and r1 + @ ldr r0, addr_debugger_storage + ldr r1, [r0, #4] + ldr r0, [r0] + + @ At this point everything is restored including the LR. Return to it + BX LR + +.text +.global sync_debugger +sync_debugger: + BL sync_processor_state + b debugger_main + +.align 4 +addr_debugger_storage: .word debugger_storage +addr_debugger_stack: .word debugger_stack +addr_debugger_main: .word debugger_main \ No newline at end of file diff --git a/arm_stub.S b/arm_stub.S new file mode 100644 index 0000000..40c5695 --- /dev/null +++ b/arm_stub.S @@ -0,0 +1,112 @@ +start: + // TODO there is an ARM instruction that pushes all values to the stack + // LDR R15, addr_debugger_storage + STR R0, [R15, #0] + STR R1, [R15, #4] + STR R2, [R15, #8] + STR R3, [R15, #12] + STR R4, [R15, #16] + STR R5, [R15, #20] + STR R6, [R15, #24] + STR R7, [R15, #28] + STR R8, [R15, #64] + STR R9, [R15, #72] + STR R10, [R15, #80] + STR R11, [R15, #88] + STR R12, [R15, #96] + STR R13, [R15, #104] + STR R14, [R15, #112] + MOV R0, SP + STR R0, [R15, #248] + + // Overwrite SP and FP with the debugger stack location + // LDR R0, addr_debugger_stack + MOV SP, R0 + MOV FP, R0 + + B debugger_main + +.text +.global restore_and_jump +restore_and_jump: + BL sync_processor_state + + // Restore the stack pointer + LDR R0, [R15, #248] + MOV SP, R0 + + // Also restore R0 + LDR R0, [R15, #0] + + // Load target address and branch to it + LDR R15, [R15, #4088] + B debugger_main + +.text +.global dump_special_regs +dump_special_regs: + B debugger_main + +.text +.global write_special_regs +write_special_regs: + B debugger_main + + +.text +.global debugger_sync_special_regs +debugger_sync_special_regs: + BL write_special_regs + B debugger_main + +.text +.global debugger_dump_special_regs +debugger_dump_special_regs: + BL dump_special_regs + B debugger_main + +.text +.global sync_processor_state +sync_processor_state: + //Corrupt R15 to use it to restore the rest of the state, eRcept for the SP, LR and FP + // R13 == SP, R14 == LR, R15 == PC (oops) + // LDR R15, addr_debugger_storage + + LDR R1, [R15, #8] + LDR R2, [R15, #16] + LDR R3, [R15, #24] + LDR R4, [R15, #32] + LDR R5, [R15, #40] + LDR R6, [R15, #48] + LDR R7, [R15, #56] + LDR R8, [R15, #64] + LDR R9, [R15, #72] + LDR R10, [R15, #80] + LDR R11, [R15, #88] + LDR R12, [R15, #96] + LDR R13, [R15, #104] + LDR R14, [R15, #112] + bx lr + +.text +.global restore_and_return +restore_and_return: + B sync_processor_state + + // Restore the stack pointer + LDR R0, [R15, #248] + MOV SP, R0 + + // Also restore R0 + LDR R0, [R15, #0] + + BX LR + +.text +.global sync_debugger +sync_debugger: + BL sync_processor_state + B debugger_main + +.align 3 + diff --git a/debugger.c b/debugger.c new file mode 100644 index 0000000..0aca46c --- /dev/null +++ b/debugger.c @@ -0,0 +1,227 @@ +#include +#include "device.h" + + +// These functions must be included in your device.h and device.c files +// extern void send(void*addr, uint32_t size, void *return_addr); //from device to host +// extern int recv(void *data, uint32_t len, uint32_t max_len, uint32_t *err_code, uint32_t type); //from host to device +// extern void recv_data(void *data, uint32_t len); +// extern int mystrlen(char *data); +// extern void usb_log(char * msg, uint32_t * error); + +#ifdef __aarch64__ +#include "debugger_archs/ga_arm64.h" +#elif __arm__ +#include "debugger_archs/ga_arm.h" +#elif __thumb__ +#include "debugger_archs/ga_arm_thumb.h" +#else +#include "debugger_archs/ga_arm64.h" +#endif + +#ifdef GLITCH_ENABLE +#include "glitch_handler.h" +#endif + +// Functions that are implemented in assembly, based on the architecture +extern void restore_and_jump(); +extern void debugger_dump_special_regs(); +extern void sync_debugger(); +extern void debugger_sync_special_regs(); +extern void restore_and_return(); + +extern int debugger_storage; +// uint64_t debugger_storage_values[] = &debugger_storage; +#define GUPJE_BLOCK_SIZE 0x100 + +__attribute__((section(".init"))) +int debugger_main(void){ + #ifdef DEVICE_SETUP + #ifdef __aarch64__ + uint64_t *val = (uint64_t *)((uint64_t)debugger_storage); + + // 0xfc0 + if(val[504] == (uint64_t)0x77){ + void (*custom_func)() = (void*)val[505]; //0xfc8 + // custom_func(); + } + else{ + device_setup(); + } + #endif + // TODO other architectures + #endif + + #ifdef __aarch64__ + uint64_t mem_off; + #else + uint32_t mem_off; + #endif + uint32_t tx_err_code; + uint32_t mem_sz; + uint32_t blk_sz; + char cmd[12]; + char data[0x20]; + usb_log("GiAs", &tx_err_code); + + while(1){ + recv_data(&data, 4); + if(data[0] == 'P' && data[1] == 'I' && data[2] == 'N' && data[3] == 'G'){ + data[1] = 'O'; + send(&data, 4, &tx_err_code); + } + else if(data[0] == 'P' && data[1] == 'E' && data[2] == 'E' && data[3] == 'K') { + // peek, dump memory + recv_data(&data, 12); // Receive uint64_t size and and uint32_t offset + #ifdef __aarch64__ + mem_off = *(uint64_t *)data; + mem_sz = *(uint32_t *)(data+8); + #else + // For ARM and Thumb Mode + // Receive uint32_t size and and uint32_t offset + mem_off = *(uint32_t *)data; + mem_sz = *(uint32_t *)(data+4); + #endif + + for(unsigned int i=0;i<=mem_sz;i+=GUPJE_BLOCK_SIZE) { + if((mem_sz - i) < GUPJE_BLOCK_SIZE) { + blk_sz = mem_sz - i; + } else { + blk_sz = GUPJE_BLOCK_SIZE; + } + send((void *)(mem_off+i), blk_sz, &tx_err_code); + recv_data(&data, 4); + if(!(data[0] == 'A' && data[1] == 'C' && data[2] == 'K')) { + break; + } + } + } + else if(data[0] == 'H' && data[1] == 'W' && data[2] == 'I' && data[3] == 'O') { + //HWIO, write byte by byte + // + recv_data(&data, 0x20); + mem_off = *(uint32_t *)data; + mem_sz = *(uint32_t *)(data+8); + // Data is stored in the rest of the data buffer + // No error checking on size, be carefull! + for(unsigned int i=0;i + +void dump_regs(uint32_t addr){ + +} \ No newline at end of file diff --git a/debugger_archs/ga_arm64.h b/debugger_archs/ga_arm64.h new file mode 100644 index 0000000..3b89082 --- /dev/null +++ b/debugger_archs/ga_arm64.h @@ -0,0 +1,31 @@ +#include + +void invalidate_tlb() +{ + asm( + "dsb sy\n" + "tlbi alle3\n" + "dsb sy\n" + "isb\n" + ); +} + +void sync() +{ + asm( + "dsb sy\n" + "isb\n" + ); +} + +void iciallu(void) +{ + __asm__ __volatile__("ic iallu\n\t" : : :"memory"); + __asm__ __volatile__("ic ialluis\n\t" : : :"memory"); +} + +void cache_flush(){ + // invalidate_tlb(); + sync(); + iciallu(); +} \ No newline at end of file diff --git a/debugger_archs/ga_arm_thumb.h b/debugger_archs/ga_arm_thumb.h new file mode 100644 index 0000000..eac97a0 --- /dev/null +++ b/debugger_archs/ga_arm_thumb.h @@ -0,0 +1,5 @@ +#include + +void dump_regs(uint32_t addr){ + +} \ No newline at end of file diff --git a/documentation/.gitignore b/documentation/.gitignore new file mode 100644 index 0000000..d163863 --- /dev/null +++ b/documentation/.gitignore @@ -0,0 +1 @@ +build/ \ No newline at end of file diff --git a/documentation/.vscode/settings.json b/documentation/.vscode/settings.json new file mode 100644 index 0000000..a7d0fc7 --- /dev/null +++ b/documentation/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "esbonio.sphinx.confDir": "" +} \ No newline at end of file diff --git a/documentation/Makefile b/documentation/Makefile new file mode 100644 index 0000000..a9f815e --- /dev/null +++ b/documentation/Makefile @@ -0,0 +1,27 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SPHINXAUTOBUILD = sphinx-autobuild +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +confluence: + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" -E -a $(O) + +livehtml: + @$(SPHINXAUTOBUILD) -b html "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) --port 34343 + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/documentation/make.bat b/documentation/make.bat new file mode 100644 index 0000000..747ffb7 --- /dev/null +++ b/documentation/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/documentation/source/architectures/arm/debugger/arm_debugger_storage.rst b/documentation/source/architectures/arm/debugger/arm_debugger_storage.rst new file mode 100644 index 0000000..3372c51 --- /dev/null +++ b/documentation/source/architectures/arm/debugger/arm_debugger_storage.rst @@ -0,0 +1,59 @@ +******************************** +Debugger Storage Overview on ARM +******************************** + +Overview of the storage setup on ARM Thumb for the debugger. +To interact with this storage dump you can either dump the storage location and parse the entries or use the *utils/debugger/debugger_archs/armT_processor_state.py* processor state, which is also passed as an argument in **GA_arm_thumb_debugger**. + +.. note:: All addresses below asume ``STORAGE_LOCATION`` + **Address** + + ++---------+-----------------+--------------------------------------------------------------------------------+ +| Address | Function | Comment | ++=========+=================+================================================================================+ +| 0x0 | R0 | Stores Register R0 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x4 | R1 | Stores Register R1 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x8 | R2 | Stores Register R2 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0xc | R3 | Stores Register R3 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x10 | R4 | Stores Register R4 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x14 | R5 | Stores Register R5 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x18 | R6 | Stores Register R6 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x1c | R7 | Stores Register R7 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x20 | R8 | Stores Register R8 (Indirect Function Call Target ``IFC``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x24 | R9 | Stores Register R9 (Platform Register ``P``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x28 | R10 | Stores Register R10 (Thread Pointer ``TP``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x2c | R11 | Stores Register R11 (Frame Pointer ``FP``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x30 | R12 | Stores Register R12 (Intra-Procedure-call-scratched-Register ``IP``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x34 | R13 | Stores Register R13 (Stack Pointer ``SP``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x38 | R14 | Stores Register R14 (Link Register ``LR``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x3c | R15 | Stores Register R15 (Program Counter ``PC``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| | | | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x7d8 | DBG_MMU_DISABLE | **DISABLED** ``DEBUGGER`` Disable the MMU on entry and enable the MMU on leave | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x7ec | DBG_JUMP_TO | ``DEBUGGER`` Address to jump to instead of the debugger | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x7f0 | DBG_CONT_EXEC | ``DEBUGGER`` Do not jump in debugger but into | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x7f4 | TEMP X0 | ``DEBUGGER`` Temporary storage for X0 value | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x7f8 | Store X0 | ``DEBUGGER`` Stores exception id for the ``SMC`` call | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x7fc | JUMP_ADDR | ``DEBUGGER`` Memory location that instructs the debugger where to jump to | ++---------+-----------------+--------------------------------------------------------------------------------+ \ No newline at end of file diff --git a/documentation/source/architectures/arm/index.rst b/documentation/source/architectures/arm/index.rst new file mode 100644 index 0000000..c3a0e43 --- /dev/null +++ b/documentation/source/architectures/arm/index.rst @@ -0,0 +1,5 @@ +=== +ARM +=== + +.. include:: debugger/arm_debugger_storage.rst \ No newline at end of file diff --git a/documentation/source/architectures/arm64/aarch64_mmu.rst b/documentation/source/architectures/arm64/aarch64_mmu.rst new file mode 100644 index 0000000..20e745e --- /dev/null +++ b/documentation/source/architectures/arm64/aarch64_mmu.rst @@ -0,0 +1,31 @@ +****************************** +Memory Managment Unit on ARM64 +****************************** +This part describes the memory managment unit on ARM64 and how it is used by the debugger. + +Single Level Pagetable at EL3 +============================= +The documentation described here can also be found at the `official ARM documentation `_. + +Translation Regime +****************** +Register ``TCR_ELx`` is used to control the **Tranlation Regime** for the pagetables. The documentation for the ``TCR_EL3`` can be found in the `official ARM documentation `_. + +Translation Table +***************** +The location of the page table is located in register ``ttbr0_el3``. Depending of the configuration of ``TCR_EL3`` the bits for address selection can change. + +More documentation can be found `here `_ + +Pagetable Entry +*************** +The following diagram shows the format of a stage 1 level 1 table entry on EL3. + +.. image:: images/mmu/singlelevel_el3_pte.png + +Automatic Paging +================ +Automatic paging for page walking will be setup in the debugger. +For this the ``ARM64_Concrete_State`` contains a mmu with class ``ARM64_MMU``. + + diff --git a/documentation/source/architectures/arm64/aarch64_vbar.rst b/documentation/source/architectures/arm64/aarch64_vbar.rst new file mode 100644 index 0000000..0df3894 --- /dev/null +++ b/documentation/source/architectures/arm64/aarch64_vbar.rst @@ -0,0 +1,58 @@ +********************** +Vector Tables in ARM64 +********************** +A lot of this documentation can also be found in the `ARM SMC calling convention documentation `_ + +Vector Exception Levels +======================= + +In ARM64 each there is a Vector table for each Exception level, except for EL0. So, in practice there is a Vector table for: + + * EL3 ``Secure Monitor Call (SMC)`` + * EL2 ``Hyper Visor Call (HVC)`` + * EL1 ``Super Visor Call (SVC)`` + +Documentation about this can be found in `the ARM documentation `_ + +.. image:: images/vector_table/vector_table_arm64.png + +This vector table can be allocated and filled for each of the vector tables described above. + +Setting the Vector Base Address +=============================== +To set the location of this vector table a call ``MSR`` call can be done to ``VBAR_ELX`` which will write an address to that register. When an execption call is executed, this address is fetched and execution will move to that page, with the corresponding Execption Level(EL) + +ARM SMC Calling Convention +========================== +When doing an SMC call in arm64 a synchronous exception is generated that is handled by the secure monitor in EL3. +The SMC call can be in both 32 and 64 bit mode, depending on various bits in the instruction. +For most phones this will be in 64 bit mode. + +When doing a SMC call, the register ``ELR_ELn`` is updated to show the location of where the call came from. +This is the address after the call where the exception came from. When doing an ``ERET`` instruction this value is written to the ``PC``. + +Stack Pointers +************** +Each Exception Level has its own stack pointers. The registers for these are: + +* SP_EL0 +* SP_EL1 +* SP_EL2 +* SP_EL3 + +``SP_EL3`` is innacessible in EL3, to read it you need to read the ``SP``. + +**************************** +Debugger VBAR Implementation +**************************** + +The debugger uses a SMC call to insert a breakpoint at any address. When a SMC call is thrown the processor jumps to the address pointed to in the ``VBAR_EL3`` register. +This register **has to ** point to the debugger. +The debugger will first store all the registers in the storage location, overwrite the stack pointer and send the hello message ``b'GiAs'`` to the host. + +An overview of what is happening when a SMC call is dan can be seen below: + +.. image:: images/vector_table/smc_handling_arm64.jpg + +.. warning:: Currently register X15 gets corrupted when an SMC call is handled. + diff --git a/documentation/source/architectures/arm64/debugger/arm64_debugger_storage.rst b/documentation/source/architectures/arm64/debugger/arm64_debugger_storage.rst new file mode 100644 index 0000000..dbf65ec --- /dev/null +++ b/documentation/source/architectures/arm64/debugger/arm64_debugger_storage.rst @@ -0,0 +1,147 @@ +********************************** +Debugger Storage Overview on ARM64 +********************************** +Overview of the storage setup on ARM64 for the debugger. To interact with this storage dump you can either dump the storage location and parse the entries or use the *utils/debugger/debugger_archs/arm64_processor_state.py* processor state, which is also passed as an argument in **GA_arm64_debugger**. + +.. note:: All addresses below asume ``STORAGE_LOCATION`` + **Address** + + ++---------+------------------------+----------------------------------------------------------------------------------------+ +| Address | Function | Comment | ++=========+========================+========================================================================================+ +| 0x0 | X0 | Stores Register X0 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x8 | X1 | Stores Register X1 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x10 | X2 | Stores Register X2 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x18 | X3 | Stores Register X3 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x20 | X4 | Stores Register X4 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x28 | X5 | Stores Register X5 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x30 | X6 | Stores Register X6 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x38 | X7 | Stores Register X7 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x40 | X8 | Stores Register X8 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x48 | X9 | Stores Register X9 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x50 | X10 | Stores Register X10 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x58 | X11 | Stores Register X11 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x60 | X12 | Stores Register X12 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x68 | X13 | Stores Register X13 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x70 | X14 | Stores Register X14 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x78 | X15 | Stores Register X15 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x80 | X16 | Stores Register X16 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x88 | X17 | Stores Register X17 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x90 | X18 | Stores Register X18 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x98 | X19 | Stores Register X19 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xa0 | X20 | Stores Register X20 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xa8 | X21 | Stores Register X21 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xb0 | X22 | Stores Register X22 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xb8 | X23 | Stores Register X23 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xc0 | X24 | Stores Register X24 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xc8 | X25 | Stores Register X25 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xd0 | X26 | Stores Register X26 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xd8 | X27 | Stores Register X27 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xe0 | X28 | Stores Register X28 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xe8 | X29 | Stores the ``Frame Pointer`` | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xf0 | X30 | Stores the ``Link Register`` | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xf8 | SP | Stores the ``Stack Pointer`` | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x100 | TTBR0_EL3 | Stores ``TTBR0_EL3`` | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x108 | TTBR0_EL2 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x110 | TTBR0_EL1 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x118 | SCTLR_EL3 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x120 | SCTLR_EL2 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x128 | SCTLR_EL1 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x130 | VBAR_EL3 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x130 | VBAR_EL2 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x140 | VBAR_EL1 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x148 | TCR_EL3 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x150 | TCR_EL2 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x158 | TCR_EL1 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x160 | ELR_EL3 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x168 | ELR_EL2 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x170 | ELR_EL1 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x178 | SP_EL2 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x180 | SP_EL1 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x188 | SP_EL0 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x190 | SPSR_EL3 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x198 | SPSR_EL2 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x1a0 | SPSR_EL1 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x1a8 | MAIR_EL3 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x1b0 | MAIR_EL2 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x1b8 | MAIR_EL1 | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0x1c0 | CurrentEL | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| | | | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xfc0 | DBG_SETUP_JUMP | ``DEBUGGER`` Set to 0x77 to jump to ``DBG_SETUP_JUMP_ADDRESS`` and when DEVICE_SETUP=1 | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xfc8 | DBG_SETUP_JUMP_ADDRESS | ``DEBUGGER`` Address to jump to when ``DBG_SETUP_JUMP`` is set to *0x77* | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xfd0 | DBG_MMU_DISABLE | **DISABLED** ``DEBUGGER`` Disable the MMU on entry and enable the MMU on leave | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xfd8 | DBG_JUMP_TO | ``DEBUGGER`` Address to jump to instead of the debugger | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xfe0 | DBG_CONT_EXEC | ``DEBUGGER`` Do not jump in debugger but into | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xfe8 | TEMP X0 | ``DEBUGGER`` Temporary storage for X0 value | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xff0 | Store X0 | ``DEBUGGER`` Stores exception id for the ``SMC`` call | ++---------+------------------------+----------------------------------------------------------------------------------------+ +| 0xff8 | JUMP_ADDR | ``DEBUGGER`` Memory location that instructs the debugger where to jump to | ++---------+------------------------+----------------------------------------------------------------------------------------+ + +.. note:: This memory segment is still being updated to add registers + +When ``DBG_CONT_EXEC`` is set to **0x777** the debugger will not enter the debugger_main address, but instead restore the original processor state and jump into ``DBG_JUMP_TO``. This allows the debugger to be run without user interaction. \ No newline at end of file diff --git a/documentation/source/architectures/arm64/images/mmu/singlelevel_el3_pte.png b/documentation/source/architectures/arm64/images/mmu/singlelevel_el3_pte.png new file mode 100644 index 0000000000000000000000000000000000000000..0d5e5afabdc5166eb77db9c47d5882080f292a69 GIT binary patch literal 54335 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

V}tp|TX01-XlKuE-@ieCgauin=(o%rQ!` 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 A`Tzg` literal 0 HcmV?d00001 diff --git a/documentation/source/architectures/arm64/images/vector_table/smc_call_arm64.png b/documentation/source/architectures/arm64/images/vector_table/smc_call_arm64.png new file mode 100644 index 0000000000000000000000000000000000000000..7e42cfe0ef776e33cab01b31b05e34a03520b0d0 GIT binary patch literal 51205 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 PDeEQXVzcw2b-Vr!EvRKX literal 0 HcmV?d00001 diff --git a/documentation/source/architectures/arm64/images/vector_table/smc_handling_arm64.jpg b/documentation/source/architectures/arm64/images/vector_table/smc_handling_arm64.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b2e13bf4baec702d85eabc208f5b0d4743b8c073 GIT binary patch literal 94953 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

  • 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 \ No newline at end of file diff --git a/documentation/source/architectures/arm_thumb/debugger/armT_debugger_storage.rst b/documentation/source/architectures/arm_thumb/debugger/armT_debugger_storage.rst new file mode 100644 index 0000000..fbb1ee0 --- /dev/null +++ b/documentation/source/architectures/arm_thumb/debugger/armT_debugger_storage.rst @@ -0,0 +1,95 @@ +*************************************** +Debugger Storage Overview on ARM(Thumb) +*************************************** + +Overview of the storage setup on ARM Thumb for the debugger. +To interact with this storage dump you can either dump the storage location and parse the entries or use the *utils/debugger/debugger_archs/armT_processor_state.py* processor state, which is also passed as an argument in **GA_arm_thumb_debugger**. + +.. note:: All addresses below asume ``STORAGE_LOCATION`` + **Address** + + ++---------+-----------------+--------------------------------------------------------------------------------+ +| Address | Function | Comment | ++=========+=================+================================================================================+ +| 0x0 | R0 | Stores Register R0 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x4 | R1 | Stores Register R1 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x8 | R2 | Stores Register R2 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0xc | R3 | Stores Register R3 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x10 | R4 | Stores Register R4 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x14 | R5 | Stores Register R5 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x18 | R6 | Stores Register R6 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x1c | R7 | Stores Register R7 | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x20 | R8 | Stores Register R8 (Indirect Function Call Target ``IFC``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x24 | R9 | Stores Register R9 (Platform Register ``P``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x28 | R10 | Stores Register R10 (Thread Pointer ``TP``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x2c | R11 | Stores Register R11 (Frame Pointer ``FP``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x30 | R12 | Stores Register R12 (Intra-Procedure-call-scratched-Register ``IP``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x34 | R13 | Stores Register R13 (Stack Pointer ``SP``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x38 | R14 | Stores Register R14 (Link Register ``LR``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x3c | R15 | Stores Register R15 (Program Counter ``PC``) | ++---------+-----------------+--------------------------------------------------------------------------------+ +| | | | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x7d8 | DBG_MMU_DISABLE | **DISABLED** ``DEBUGGER`` Disable the MMU on entry and enable the MMU on leave | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x7ec | DBG_JUMP_TO | ``DEBUGGER`` Address to jump to instead of the debugger | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x7f0 | DBG_CONT_EXEC | ``DEBUGGER`` Do not jump in debugger but into | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x7f4 | TEMP X0 | ``DEBUGGER`` Temporary storage for X0 value | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x7f8 | Store X0 | ``DEBUGGER`` Stores exception id for the ``SMC`` call | ++---------+-----------------+--------------------------------------------------------------------------------+ +| 0x7fc | JUMP_ADDR | ``DEBUGGER`` Memory location that instructs the debugger where to jump to | ++---------+-----------------+--------------------------------------------------------------------------------+ + +.. note:: This memory segment is still being updated to add registers + +When ``DBG_CONT_EXEC`` is set to **0x77** the debugger will not enter the debugger_main address, but instead restore the original processor state and jump into ``DBG_JUMP_TO``. +This allows the debugger to be run without user interaction. + +.. note:: + + By default `register r12 `_ is corrupted for debugger usage(usually the high registers are not used in thumb mode) + +Low/high registers +------------------ +ARM in thumb mode has low and high registers. The low registers are R0-R7 and the high registers are R8-R15. +The high registers can not be directly accessed in thumb mode. The ``LDR`` and ``STR`` can not be used for accessing the high registers. +The ``MOV`` register however can be used to access these registers, which is enough for the debugger to use these registers. + +.. code-block:: assembly + :caption: Accessing high registers in thumb mode and branch to it. + + ldr r2, =addr_debugger_main + mov r12, r2 + bx r12 + + addr_debugger_main: .word 0x100000 + +Instructions +============ +Some notes on instructions in ``ARM Thumb``. + +Branch Exchange +--------------- +The ``BX`` instruction is used to branch to a new address and exchange the instruction set if required(ARM/Thumb). +The ``BX`` instruction does **not** set the LR. + + + diff --git a/documentation/source/architectures/arm_thumb/index.rst b/documentation/source/architectures/arm_thumb/index.rst new file mode 100644 index 0000000..c3a4cd1 --- /dev/null +++ b/documentation/source/architectures/arm_thumb/index.rst @@ -0,0 +1,6 @@ +============== +ARM Thumb Mode +============== +Documentation for the ARM architecture in ``Thumb`` Mode. + +.. include:: debugger/armT_debugger_storage.rst \ No newline at end of file diff --git a/documentation/source/conf.py b/documentation/source/conf.py new file mode 100644 index 0000000..d23a478 --- /dev/null +++ b/documentation/source/conf.py @@ -0,0 +1,32 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'gupje' +copyright = '2024, Eljakim' +author = 'Eljakim' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = [ 'myst_parser', + 'sphinx_rtd_theme', + 'sphinx.ext.todo', + 'sphinxcontrib.confluencebuilder', + "sphinxcontrib.drawio", +] + +templates_path = ['_templates'] +exclude_patterns = [] + + + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +html_theme = 'sphinx_rtd_theme' +html_static_path = ['_static'] diff --git a/documentation/source/images/debugger_flow.drawio.svg b/documentation/source/images/debugger_flow.drawio.svg new file mode 100644 index 0000000..cfeb9a8 --- /dev/null +++ b/documentation/source/images/debugger_flow.drawio.svg @@ -0,0 +1 @@ +
    entry
    Save state to DEBUGGER_STORAGE
    debugger_main
    GiAs
    Send
    Recv
    No
    Yes
    CNT_EXEC
    set?
    Restore State and jump to DEBUGGER_JUMP
    Restore and Return
    User commands
    \ No newline at end of file diff --git a/documentation/source/images/gupje_overview.drawio.svg b/documentation/source/images/gupje_overview.drawio.svg new file mode 100644 index 0000000..f0add3b --- /dev/null +++ b/documentation/source/images/gupje_overview.drawio.svg @@ -0,0 +1 @@ +
    Gupje
    Storage
    Stack
    Target device
    Host
    my_script.py
    ghidra assitant
    \ No newline at end of file diff --git a/documentation/source/index.rst b/documentation/source/index.rst new file mode 100644 index 0000000..edb48da --- /dev/null +++ b/documentation/source/index.rst @@ -0,0 +1,23 @@ +.. gupje documentation master file, created by + sphinx-quickstart on Thu Mar 28 15:26:50 2024. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Gupje Architecture based debugger +================================= +This is the documentation for the Gupje debugger. + + +.. toctree:: + :maxdepth: 2 + :caption: Setup: + + overview.rst + +.. toctree:: + :maxdepth: 2 + :caption: Architectures: + + architectures/arm64/index.rst + architectures/arm/index.rst + architectures/arm_thumb/index.rst \ No newline at end of file diff --git a/documentation/source/overview.rst b/documentation/source/overview.rst new file mode 100644 index 0000000..3953c61 --- /dev/null +++ b/documentation/source/overview.rst @@ -0,0 +1,91 @@ +============== +Gupje overview +============== +Gupje is a stub debugger that is designed to be minimal and requires 3 pages(0x1000) of data to be loaded on a target system. +A high level overview of how the memory mapping for this works is shown below. + +.. figure:: images/gupje_overview.drawio.svg + +.. note:: + + In the future the debugger will probably grow to 4 pages, to include an extra page for the debugger to use in custom functionality. + +Features +======== +In a typical usecase the flow of the debugger wuuld look as something like this: + +.. figure:: images/debugger_flow.drawio.svg + +State saving +------------ +Function: ``On enter`` + +The first thing the debugger does when it enters is save it's state into it's storage page. +The state being all the General Purpose registers and some special register, like the stack pointer and link register. +The stack pointer is overwritten to the debugger stack, in order to not taint the original stack. +This is architecture dependent and written in Assembly. +See the documentation in each architecture on how this is performed and if data is lost. + +Memory Read(Peek) +----------------- +Read an address in memory to the host. + +Memory Write(Poke) +------------------ +Write a buffer to an address in memory. + +Get debugger main(SELF) +----------------------- +Get the main entry point of the debugger. This is used to jump to only the debugger without setting up the stack and registers again. +This taints the device but is very usefull for debugging and showing where the debugger is in memory. + +Concrete main(MAIN) +------------------- +Execute the ``concrete_main`` function. This function is fully user customizable and can be used to implement custom functionality. +Like executing boot stages in a Qualcomm bootROM. + +Flush Cache(FLSH) +----------------- +Execute architecture specific instructions in order to flush the cache. + +.. note:: + + Only arm64 is supported for this function. The support is there for arm and thumb but not implemented. + +Jump to address(JUMP) +--------------------- +Simple function that will just jump to an address without restoring the stack or registers. Usefull for testing the debugger or relocating it. + +Dump special registers(SPEC) +---------------------------- +Will dump the special registers to the host. This is architecture dependent and will only dump the registers that are supported. For ARM64 checks for each exception level are implemented. + +Synchronize State(SYNC) +----------------------- +This function can be called from the debugger and will force write the registers from the saved state into the processor. + +Sync Special(SYNS) +------------------ +Will force write the special registers from the saved state into the processor. Usefull for overwriting the ``VBAR_ELN`` and others. +Not all registers are supported here and in the future this will probably be changed to be code pushed from the host to save space and support all special registers. + +.. note:: + + This function is currently only properly implemented for ARM64. + +Restore and Jump(REST) +---------------------- +This function restores the state of the processor from it's internal storage and jump's to the address defined in ``DEBUGGER_JUMP``. + +.. caution:: + + Currently there is always a register corrupted on the jump function(we need to branch to a register). I have not found a good method to mitigate this(maybe ldr pc in arm/thumb but wont work for arm64) + +Restore and Return(RRET) +------------------------ +Does the same as ``Restore and Jump`` but instead of jumping it returns to the address that called the debugger. + +Glitching +========= +A debug flag is added for adding glitching to the debugger. The command ``GLIT`` will jump to the glitch function but this is not very well implemented yet. +The goal is to add several testable glitch cases to the debugger for profiling. \ No newline at end of file diff --git a/glitch_handler.h b/glitch_handler.h new file mode 100644 index 0000000..19f5ec2 --- /dev/null +++ b/glitch_handler.h @@ -0,0 +1,36 @@ +#include + +extern void glitch_registers_loop(); +extern void glitch_out_loop(); + +int glitch_main(uintptr_t cmd_handler){ + uint32_t tx_err_code; + char data[0x20]; + usb_log("GlAs", &tx_err_code); // Send glitcher magic + + while(1){ + recv_data(&data, 4); + if(data[0] == 'P' && data[1] == 'I' && data[2] == 'N' && data[3] == 'G'){ + //PING + data[1] = 'O'; + send(&data, 4, &tx_err_code); + } + if(data[0] == 'D' && data[1] == 'E' && data[2] == 'B' && data[3] == 'G'){ + //DEBG: Jump to debugger + void (*debg)() = ((void *) cmd_handler); + debg(); + } + if(data[0] == 'S' && data[1] == 'E' && data[2] == 'T' && data[3] == 'P'){ + //SETP setup triggers + setup_trigger(); + } + if(data[0] == 'G' && data[1] == 'L' && data[2] == 'I' && data[3] == '1'){ + glitch_registers_loop(); + } + if(data[0] == 'G' && data[1] == 'L' && data[2] == 'I' && data[3] == '2'){ + glitch_out_loop(); + } + } + + return 0; +} \ No newline at end of file diff --git a/null.d b/null.d new file mode 100644 index 0000000..ff21f30 --- /dev/null +++ b/null.d @@ -0,0 +1 @@ +null.o: /dev/null diff --git a/simple_device.drawio.svg b/simple_device.drawio.svg new file mode 100644 index 0000000..eb395c6 --- /dev/null +++ b/simple_device.drawio.svg @@ -0,0 +1 @@ +
    Target
    2 Jump
    BootROM
    1 Exploit (Gupje)
    Exploit RCE
    upload
    bootloader
    Interact with device
    RAM
    3 GiAs
    Gupje
    Patched Bootloader
    \ No newline at end of file diff --git a/simple_device_memory.drawio.svg b/simple_device_memory.drawio.svg new file mode 100644 index 0000000..c74894c --- /dev/null +++ b/simple_device_memory.drawio.svg @@ -0,0 +1 @@ +
    RAM
    Debugger
    Reserved
    Stack
    Debugger Storage
    BootROM
    \ No newline at end of file