hhornbacher/gr3x-fw-hack
GitHub: hhornbacher/gr3x-fw-hack
为 Ricoh GR3(x) 相机固件提供提取、容器化运行与逆向工程支持的项目。
Stars: 38 | Forks: 3
# Ricoh GRIII(x) 固件探索
## Ricoh GR3(x)
Ricoh GR3(x) 是一款相机,其固件我正在探索,以寻找在不修改固件本身的情况下运行自定义应用程序的方法,类似于 MagicLantern 这样的项目。
## 动机
我的动机是发现能够在 Ricoh GR3(x) 相机上运行自定义应用程序的方法,同时保持固件完整。这将允许扩展相机的功能并探索新的可能性。
## 内容
该仓库包括:
- 专门用于分析和处理 Ricoh GR3(x) 固件的工具。
- 配置好必要依赖项的 Docker 环境,用于固件分析。
## 相机系统
您可以在[此处](docs/system.md)找到相机系统的概述。
## 使用工具的依赖项
- cpio
- binwalk
- python3
- curl
- docker
## 快速开始
- 您需要克隆带有子模块的仓库(`git clone --recursive ...`)
- 首先,您需要从以下地址获取固件文件:https://www.ricoh-imaging.co.jp/english/support/digital/gr3x_s.html
- 我更喜欢将其放在名为 `firmware` 的目录中,并将固件版本附加到文件名,例如:`firmware/fwdc243b-v121.bin`
- 接下来,解压固件:`tools/extract-firmware.sh firmware/fwdc243b-v121.bin`
- 现在您可以尝试在 Docker 容器中运行系统:`tools/run-system-docker.sh firmware/fwdc243b-v121.bin`
- 目前系统无法完全启动,因为共享内存(硬件访问)和 IPC 无法正常工作,因此 camctld 守护进程将无法完全初始化。
- 如果您对启动脚本感兴趣,请查看 [start.sh](docker/system/start.sh),这是原始 `/etc/rc.local` 的一个稍作修改的版本。
- 现在您可以尝试编译并安装用于 shmem 和 IPCU 相关函数的模拟程序:
- `tools/build-mocks.sh firmware/fwdc243b-v121.bin`
- `tools/install-mocks.sh firmware/fwdc243b-v121.bin`
- 要重建 Docker 系统镜像,您需要先删除旧的 Docker 镜像:
`docker image rm gr3x-system-fwdc243b-v121`
- 现在您可以再次运行 `tools/run-system-docker.sh firmware/fwdc243b-v121.bin`,系统将使用模拟库启动。
- 构建内核是可能的,命令为:`tools/build-kernel.sh firmware/fwdc243b-v121.bin`
- 至今,我无法在 QEMU 中运行内核,因此任何相关支持都将非常受欢迎。
## 项目进度
您可以在[此处](docs/progress/progress.md)找到当前进度的所有信息。
## 贡献
我鼓励社区贡献来增强仓库内容并改进提供的工具和功能。如果您有有价值的见解、额外的工具或改进,请提交拉取请求或打开问题。
愉快地进行逆向工程!
标签:binwalk, cpio, curl, daemon, DNS解析, Docker, GR3, GRIII, IPC, MagicLantern, NIDS, Python, Ricoh GR3, Waymore结果处理, 二进制发布, 依赖安装, 共享内存, 反向工程, 后端开发, 启动脚本, 固件, 固件分析, 固件提取, 固件破解, 子模块, 安全防御评估, 容器化, 嵌入式, 开发环境, 开源工具, 开源项目, 技术探索, 无后门, 相机固件, 相机改装, 硬件访问, 系统启动, 系统镜像, 自定义应用, 请求拦截, 逆向工具, 逆向工程工具