├── .gdbinit ├── .gitignore ├── .vscode ├── extensions.json ├── settings.json └── tasks.json ├── CMakeLists.txt ├── ELFPatcher.py ├── LICENSE.txt ├── PlatformioScripts.py ├── PreLoad.cmake ├── README.md ├── UserPatcher.py ├── docs ├── docs_update.sh ├── esp32_patching_framework.drawio ├── esp32_patching_framework.svg └── patch_output.png ├── esp32_rom.elf ├── firmware.py ├── ghidra ├── extension_retsync │ └── ghidra_9.1.2_retsync.zip └── processor_xtensa │ └── ghidra_9.1.2_xtensa.zip ├── platformio.ini ├── ppci ├── __init__.py ├── arch │ ├── __init__.py │ ├── arch.py │ ├── arch_info.py │ ├── asm_printer.py │ ├── effects.py │ ├── encoding.py │ ├── generic_instructions.py │ ├── isa.py │ ├── registers.py │ ├── stack.py │ └── token.py ├── common.py ├── format │ ├── __init__.py │ ├── elf │ │ ├── __init__.py │ │ ├── file.py │ │ ├── headers.py │ │ ├── reader.py │ │ └── writer.py │ ├── header.py │ └── hexfile.py ├── ir.py ├── lang │ ├── __init__.py │ ├── common.py │ └── tools │ │ ├── __init__.py │ │ └── baselex.py └── utils │ ├── __init__.py │ ├── chunk.py │ ├── collections.py │ ├── hexdump.py │ └── tree.py ├── requirements.bat ├── scripts ├── esp32_rom_functions.txt ├── ret-sync.patch ├── ret-sync.py ├── sync ├── test_serial.py ├── xtensa_env.bat └── xtensa_env.sh ├── sdkconfig ├── src ├── CMakeLists.txt ├── btlib.h ├── main.c ├── rompatcher.S └── rompatcher.h ├── template.sh └── template └── platformio.ini /.gdbinit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/.gdbinit -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | *__pycache__* 3 | 4 | .pio/ 5 | 6 | release/ 7 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/.vscode/extensions.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/.vscode/tasks.json -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /ELFPatcher.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ELFPatcher.py -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /PlatformioScripts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/PlatformioScripts.py -------------------------------------------------------------------------------- /PreLoad.cmake: -------------------------------------------------------------------------------- 1 | set(ENABLE_EXPORTS ON CACHE BOOL "" FORCE) 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/README.md -------------------------------------------------------------------------------- /UserPatcher.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/UserPatcher.py -------------------------------------------------------------------------------- /docs/docs_update.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/docs/docs_update.sh -------------------------------------------------------------------------------- /docs/esp32_patching_framework.drawio: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/docs/esp32_patching_framework.drawio -------------------------------------------------------------------------------- /docs/esp32_patching_framework.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/docs/esp32_patching_framework.svg -------------------------------------------------------------------------------- /docs/patch_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/docs/patch_output.png -------------------------------------------------------------------------------- /esp32_rom.elf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/esp32_rom.elf -------------------------------------------------------------------------------- /firmware.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/firmware.py -------------------------------------------------------------------------------- /ghidra/extension_retsync/ghidra_9.1.2_retsync.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ghidra/extension_retsync/ghidra_9.1.2_retsync.zip -------------------------------------------------------------------------------- /ghidra/processor_xtensa/ghidra_9.1.2_xtensa.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ghidra/processor_xtensa/ghidra_9.1.2_xtensa.zip -------------------------------------------------------------------------------- /platformio.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/platformio.ini -------------------------------------------------------------------------------- /ppci/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/__init__.py -------------------------------------------------------------------------------- /ppci/arch/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/arch/__init__.py -------------------------------------------------------------------------------- /ppci/arch/arch.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/arch/arch.py -------------------------------------------------------------------------------- /ppci/arch/arch_info.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/arch/arch_info.py -------------------------------------------------------------------------------- /ppci/arch/asm_printer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/arch/asm_printer.py -------------------------------------------------------------------------------- /ppci/arch/effects.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/arch/effects.py -------------------------------------------------------------------------------- /ppci/arch/encoding.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/arch/encoding.py -------------------------------------------------------------------------------- /ppci/arch/generic_instructions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/arch/generic_instructions.py -------------------------------------------------------------------------------- /ppci/arch/isa.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/arch/isa.py -------------------------------------------------------------------------------- /ppci/arch/registers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/arch/registers.py -------------------------------------------------------------------------------- /ppci/arch/stack.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/arch/stack.py -------------------------------------------------------------------------------- /ppci/arch/token.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/arch/token.py -------------------------------------------------------------------------------- /ppci/common.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/common.py -------------------------------------------------------------------------------- /ppci/format/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/format/__init__.py -------------------------------------------------------------------------------- /ppci/format/elf/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/format/elf/__init__.py -------------------------------------------------------------------------------- /ppci/format/elf/file.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/format/elf/file.py -------------------------------------------------------------------------------- /ppci/format/elf/headers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/format/elf/headers.py -------------------------------------------------------------------------------- /ppci/format/elf/reader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/format/elf/reader.py -------------------------------------------------------------------------------- /ppci/format/elf/writer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/format/elf/writer.py -------------------------------------------------------------------------------- /ppci/format/header.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/format/header.py -------------------------------------------------------------------------------- /ppci/format/hexfile.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/format/hexfile.py -------------------------------------------------------------------------------- /ppci/ir.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/ir.py -------------------------------------------------------------------------------- /ppci/lang/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ppci/lang/common.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/lang/common.py -------------------------------------------------------------------------------- /ppci/lang/tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/lang/tools/__init__.py -------------------------------------------------------------------------------- /ppci/lang/tools/baselex.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/lang/tools/baselex.py -------------------------------------------------------------------------------- /ppci/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ppci/utils/chunk.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/utils/chunk.py -------------------------------------------------------------------------------- /ppci/utils/collections.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/utils/collections.py -------------------------------------------------------------------------------- /ppci/utils/hexdump.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/utils/hexdump.py -------------------------------------------------------------------------------- /ppci/utils/tree.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/ppci/utils/tree.py -------------------------------------------------------------------------------- /requirements.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/requirements.bat -------------------------------------------------------------------------------- /scripts/esp32_rom_functions.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/scripts/esp32_rom_functions.txt -------------------------------------------------------------------------------- /scripts/ret-sync.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/scripts/ret-sync.patch -------------------------------------------------------------------------------- /scripts/ret-sync.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/scripts/ret-sync.py -------------------------------------------------------------------------------- /scripts/sync: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/scripts/sync -------------------------------------------------------------------------------- /scripts/test_serial.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/scripts/test_serial.py -------------------------------------------------------------------------------- /scripts/xtensa_env.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/scripts/xtensa_env.bat -------------------------------------------------------------------------------- /scripts/xtensa_env.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/scripts/xtensa_env.sh -------------------------------------------------------------------------------- /sdkconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/sdkconfig -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/src/CMakeLists.txt -------------------------------------------------------------------------------- /src/btlib.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/src/btlib.h -------------------------------------------------------------------------------- /src/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/src/main.c -------------------------------------------------------------------------------- /src/rompatcher.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/src/rompatcher.S -------------------------------------------------------------------------------- /src/rompatcher.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/src/rompatcher.h -------------------------------------------------------------------------------- /template.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | -------------------------------------------------------------------------------- /template/platformio.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Matheus-Garbelini/esp32_firmware_patching_framework/HEAD/template/platformio.ini --------------------------------------------------------------------------------