cr3m / GoPro-Research

For public GoPro HERO[*] information

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GoPro Research

This Repo has logs, utilities, and legally extracted assests for various GoPro Cameras. Older camera's assets are in their own unique repos within Hypoxic's Github.

Camera Teardowns

GoPro HERO10 Teardown
GoPro HERO9 Teardown
GoPro HERO MAX Physical Teardown
GoPro HERO8 Teardown
GoPro HERO7 Silver & White Research
GoPro HERO7 Teardown | HERO7 Repo
GoPro HERO6 Teardown
GoPro HERO (2018 Research)
GoPro HERO5 Physical Teardown | HERO5 Repo

Interfaces & Accessories

Micronesia (Security Enclave) Research
GoPro Media Mod Teardown
Anti Cloning Technology on the GoPro HEROBUS(tm) 2.0
GoPro HEROBus(tm) Research
GoPro HERO[5-9] Interfaces

Tools

Various tools to extract data from the firmware images.

GP2

GoPro HERO 10 and up.
Tools and scripts for GP2 based cameras

GP1

Works with GoPro HERO[6-9]

  • unpackh6 - Breaks up the firmware into it's various binary blobs
  • binldr.py - IDA loader for RTOS straight from update file
  • busybox - Compiled busybox with all the components such as telnetd
  • decompress.py - used to decompress Embedded Wizard content
  • extract_read8.bin.py - Extracts the various binaries from a read image. Useful for research with variables in memory.
  • extracth8dtb.py - Extracts the Device tree from the image. Requires FdtBlobParse & glob
  • extract8rom.py - Extracts the rom files from the HERO8/MAX image
  • extractXromfs.py - Extracts the rom files from the HEROX image. Note, it's not precise as the memory size is now in code. A warning is given when the memory bounds do not match.
  • extracthbmpd - Extracts the display's bitmaps from front and back
  • gp1dropper - rewrites memory in the rtos from linux for code execution in the the rtos
  • memdump_h8 - linux based utility to read all of the RTOS memory space and dump it to a file. Useful for research with global data initialized.
  • readldr.py - IDA loader for a read in binary. Use memdump_h8 within linux os, then use this loader on resulting binary.
  • replace_rom_file.py - Replaces a rom file with an external rom file and recalculates the crcs. Must be the same size. Replace the original files with the resulting files
  • replace_section_file - Replaces an extracted section with the one passed. Usefull for patching linux to add your own hook.

Logs

Various public dumps, logs, and musings from our research on these various cameras.

GoPro HERO 10
GoPro HERO 9
GoPro MAX
GoPro HERO 8
GoPro HERO 7
GoPro HERO 5
GoPro HERO 4 Session

About

For public GoPro HERO[*] information


Languages

Language:Python 94.7%Language:C 5.3%