|
|
|
|
@ -1,23 +1,655 @@
|
|
|
|
|
[](https://github.com/openwrt-xiaomi/xmir-patcher/archive/refs/heads/main.zip)
|
|
|
|
|
[](https://github.com/openwrt-xiaomi/xmir-patcher/archive/refs/heads/main.zip)
|
|
|
|
|
[](https://github.com/openwrt-xiaomi/xmir-patcher/archive/refs/heads/main.zip)
|
|
|
|
|
# 小米路由器破解工具 (XMiR-Patcher)
|
|
|
|
|
|
|
|
|
|
[](https://github.com/longzheng268/Xiaomi-Router-patcher/archive/refs/heads/main.zip)
|
|
|
|
|
[](https://github.com/longzheng268/Xiaomi-Router-patcher/archive/refs/heads/main.zip)
|
|
|
|
|
[](https://github.com/longzheng268/Xiaomi-Router-patcher/archive/refs/heads/main.zip)
|
|
|
|
|
[](https://github.com/remittor/donate)
|
|
|
|
|
|
|
|
|
|
# XMiR-Patcher
|
|
|
|
|
Firmware patcher for Xiaomi routers
|
|
|
|
|
一个功能强大的小米路由器固件破解工具,支持多种小米路由器型号的漏洞利用、SSH启用、语言包安装、固件刷写等功能。
|
|
|
|
|
|
|
|
|
|
## 📋 目录
|
|
|
|
|
|
|
|
|
|
- [支持的设备](#支持的设备)
|
|
|
|
|
- [功能特性](#功能特性)
|
|
|
|
|
- [安装教程](#安装教程)
|
|
|
|
|
- [使用指南](#使用指南)
|
|
|
|
|
- [详细功能说明](#详细功能说明)
|
|
|
|
|
- [故障排除](#故障排除)
|
|
|
|
|
- [安全提示](#安全提示)
|
|
|
|
|
- [开发说明](#开发说明)
|
|
|
|
|
- [贡献指南](#贡献指南)
|
|
|
|
|
|
|
|
|
|
## 🔧 支持的设备
|
|
|
|
|
|
|
|
|
|
### 完全支持的型号
|
|
|
|
|
本工具支持以下小米路由器型号(按型号ID排序):
|
|
|
|
|
|
|
|
|
|
#### 第一代系列
|
|
|
|
|
- **R1CM** (miwifi-mini) - 小米路由器 Mini
|
|
|
|
|
- **R1CL** (miwifi-nano) - 小米路由器 Nano
|
|
|
|
|
- **R2D** - 小米路由器 2
|
|
|
|
|
- **R2CM** - 小米路由器 2
|
|
|
|
|
|
|
|
|
|
#### 第三代系列
|
|
|
|
|
- **R3** - 小米路由器 3
|
|
|
|
|
- **R3D** (r3d) - 小米路由器 3D
|
|
|
|
|
- **R3L** (miwifi-3c) - 小米路由器 3C
|
|
|
|
|
- **R3P** (mi-router-3-pro) - 小米路由器 3 Pro
|
|
|
|
|
- **R3A** - 小米路由器 3A
|
|
|
|
|
- **R3G** (mi-router-3g) - 小米路由器 3G
|
|
|
|
|
- **R3GV2** (mi-router-3g-v2) - 小米路由器 3G V2
|
|
|
|
|
|
|
|
|
|
#### 第四代系列
|
|
|
|
|
- **R4** (mi-router-4) - 小米路由器 4
|
|
|
|
|
- **R4C** (mi-router-4q) - 小米路由器 4Q
|
|
|
|
|
- **R4A** (mi-router-4a-gigabit) - 小米路由器 4A 千兆版
|
|
|
|
|
- **R4CM** (mi-router-4c) - 小米路由器 4C
|
|
|
|
|
- **R4AC** (mi-router-4a-100m) - 小米路由器 4A 百兆版
|
|
|
|
|
|
|
|
|
|
#### AC系列
|
|
|
|
|
- **R2100** (mi-router-ac2100) - 小米路由器 AC2100
|
|
|
|
|
- **RM2100** (redmi-router-ac2100) - 红米路由器 AC2100
|
|
|
|
|
- **R2200** - 小米路由器 AC2200
|
|
|
|
|
- **R2350** (aiot-ac2350) - 小米 AIoT 路由器 AC2350
|
|
|
|
|
- **R2600** - 小米路由器 AC2600
|
|
|
|
|
|
|
|
|
|
#### AX系列 (Wi-Fi 6)
|
|
|
|
|
- **R3600** (ax3600) - 小米路由器 AX3600
|
|
|
|
|
- **R1350** - 小米路由器 AX1350
|
|
|
|
|
- **RA67** - 红米路由器 AX1800C
|
|
|
|
|
- **RA69** (ax6) - 小米路由器 AX6
|
|
|
|
|
- **RA70** (ax9000) - 小米路由器 AX9000
|
|
|
|
|
- **RA71** - 红米路由器 AX1800
|
|
|
|
|
- **RA72** - 小米路由器 AX6000
|
|
|
|
|
- **RA75** (mi-ra75) - 小米路由器 RA75
|
|
|
|
|
- **RA80/RA82** - 小米路由器 AX3000
|
|
|
|
|
|
|
|
|
|
#### 企业级系列
|
|
|
|
|
- **CR6006** (mi-router-cr6606) - 小米企业路由器 CR6606
|
|
|
|
|
- **CR6008** (mi-router-cr6608) - 小米企业路由器 CR6608
|
|
|
|
|
- **CR6009** (mi-router-cr6609) - 小米企业路由器 CR6609
|
|
|
|
|
|
|
|
|
|
#### 其他型号
|
|
|
|
|
- **P01** - 小米随身路由器
|
|
|
|
|
- **D01** - 小米路由器 HD
|
|
|
|
|
- **IR1200G** - 小米路由器 1200G
|
|
|
|
|
- **RM1800** - 红米路由器 1800
|
|
|
|
|
- **R2100D** - 小米路由器 AC2100D
|
|
|
|
|
- **RA50** - 小米路由器 RA50
|
|
|
|
|
|
|
|
|
|
> **注意**: 不同型号支持的功能可能有差异,建议在操作前仔细阅读相关说明。
|
|
|
|
|
|
|
|
|
|
## ✨ 功能特性
|
|
|
|
|
|
|
|
|
|
### 核心功能
|
|
|
|
|
- 🔓 **漏洞利用**: 自动检测并利用小米路由器的已知漏洞
|
|
|
|
|
- 🔑 **SSH启用**: 永久启用SSH访问,方便高级用户管理
|
|
|
|
|
- 🌐 **多语言支持**: 安装英文/俄文语言包
|
|
|
|
|
- 💾 **完整备份**: 创建路由器固件的完整备份
|
|
|
|
|
- 🔄 **固件刷写**: 支持自定义固件的安装
|
|
|
|
|
- ⚡ **Bootloader替换**: 支持安装Breed等第三方Bootloader
|
|
|
|
|
|
|
|
|
|
### 高级功能
|
|
|
|
|
- 📊 **设备信息读取**: 获取详细的硬件和系统信息
|
|
|
|
|
- 🔐 **密码修改**: 修改路由器root密码
|
|
|
|
|
- 📋 **日志读取**: 读取系统日志和内核信息
|
|
|
|
|
- ⚙️ **分区备份**: 创建指定分区的备份
|
|
|
|
|
- 🚀 **引导设置**: 设置内核引导地址
|
|
|
|
|
- 🔧 **功能解锁**: 解锁隐藏的路由器功能
|
|
|
|
|
|
|
|
|
|
## 🚀 安装教程
|
|
|
|
|
|
|
|
|
|
### Windows 用户
|
|
|
|
|
|
|
|
|
|
1. **下载工具包**
|
|
|
|
|
```
|
|
|
|
|
下载并解压项目文件到任意目录
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. **运行工具**
|
|
|
|
|
```
|
|
|
|
|
双击运行 run.bat 文件
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. **自动环境配置**
|
|
|
|
|
- 工具会自动使用内置的 Python 环境
|
|
|
|
|
- 无需手动安装 Python 或依赖包
|
|
|
|
|
|
|
|
|
|
### Linux / macOS 用户
|
|
|
|
|
|
|
|
|
|
1. **系统要求**
|
|
|
|
|
```bash
|
|
|
|
|
# 确保已安装 Python 3.8+ 和 OpenSSL
|
|
|
|
|
python3 --version # 应显示 3.8 或更高版本
|
|
|
|
|
openssl version # 确认 OpenSSL 已安装
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. **安装依赖**
|
|
|
|
|
```bash
|
|
|
|
|
# Ubuntu/Debian
|
|
|
|
|
sudo apt update
|
|
|
|
|
sudo apt install python3 python3-pip python3-venv openssl
|
|
|
|
|
|
|
|
|
|
# CentOS/RHEL
|
|
|
|
|
sudo yum install python3 python3-pip openssl
|
|
|
|
|
|
|
|
|
|
# macOS (使用 Homebrew)
|
|
|
|
|
brew install python3 openssl
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. **下载并运行**
|
|
|
|
|
```bash
|
|
|
|
|
# 下载项目
|
|
|
|
|
git clone https://github.com/longzheng268/Xiaomi-Router-patcher.git
|
|
|
|
|
cd Xiaomi-Router-patcher
|
|
|
|
|
|
|
|
|
|
# 运行工具
|
|
|
|
|
chmod +x run.sh
|
|
|
|
|
./run.sh
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Docker 用户
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# 构建 Docker 镜像
|
|
|
|
|
docker build -t xmir-patcher .
|
|
|
|
|
|
|
|
|
|
# 运行容器
|
|
|
|
|
docker run -it --network host xmir-patcher
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 📖 使用指南
|
|
|
|
|
|
|
|
|
|
### 第一步:连接准备
|
|
|
|
|
|
|
|
|
|
1. **网络连接**
|
|
|
|
|
- 确保电脑和小米路由器在同一网络中
|
|
|
|
|
- 记录路由器的IP地址(通常是 192.168.31.1)
|
|
|
|
|
- 确保能正常访问路由器管理界面
|
|
|
|
|
|
|
|
|
|
2. **启动工具**
|
|
|
|
|
- Windows: 双击 `run.bat`
|
|
|
|
|
- Linux/macOS: 执行 `./run.sh`
|
|
|
|
|
|
|
|
|
|
### 第二步:基本配置
|
|
|
|
|
|
|
|
|
|
运行工具后会看到主菜单:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
==========================================================
|
|
|
|
|
|
|
|
|
|
Xiaomi MiR Patcher
|
|
|
|
|
|
|
|
|
|
1 - Set IP-address (current value: 192.168.31.1)
|
|
|
|
|
2 - Connect to device (install exploit)
|
|
|
|
|
3 - Read full device info
|
|
|
|
|
4 - Create full backup
|
|
|
|
|
5 - Install EN/RU languages
|
|
|
|
|
6 - Install permanent SSH
|
|
|
|
|
7 - Install firmware (from directory "firmware")
|
|
|
|
|
8 - {{{ Other functions }}}
|
|
|
|
|
9 - [[ Reboot device ]]
|
|
|
|
|
0 - Exit
|
|
|
|
|
|
|
|
|
|
Select:
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 第三步:执行操作
|
|
|
|
|
|
|
|
|
|
#### 必要的前置步骤
|
|
|
|
|
|
|
|
|
|
1. **设置IP地址 (选项1)**
|
|
|
|
|
```
|
|
|
|
|
选择 1 → 输入路由器IP地址 → 按回车确认
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. **连接设备并安装漏洞利用 (选项2)**
|
|
|
|
|
```
|
|
|
|
|
选择 2 → 工具会自动检测设备型号并安装相应的漏洞利用程序
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
> ⚠️ **重要**: 这是所有后续操作的前提,必须先成功执行此步骤!
|
|
|
|
|
|
|
|
|
|
#### 常用操作流程
|
|
|
|
|
|
|
|
|
|
1. **完整备份 (推荐首先执行)**
|
|
|
|
|
```
|
|
|
|
|
选择 4 → 工具会创建完整的固件备份,保存在 backup 目录中
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. **启用SSH访问**
|
|
|
|
|
```
|
|
|
|
|
选择 6 → 工具会永久启用SSH访问,默认用户名/密码: root/root
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. **安装语言包**
|
|
|
|
|
```
|
|
|
|
|
选择 5 → 安装英文/俄文语言包,让路由器界面支持更多语言
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 🔍 详细功能说明
|
|
|
|
|
|
|
|
|
|
### 主菜单功能
|
|
|
|
|
|
|
|
|
|
#### 1. 设置IP地址
|
|
|
|
|
- **用途**: 设置目标路由器的IP地址
|
|
|
|
|
- **默认值**: 192.168.31.1
|
|
|
|
|
- **使用场景**: 当路由器IP不是默认值时需要修改
|
|
|
|
|
|
|
|
|
|
#### 2. 连接设备(安装漏洞利用)
|
|
|
|
|
- **用途**: 检测设备型号并安装对应的漏洞利用程序
|
|
|
|
|
- **支持的漏洞**:
|
|
|
|
|
- `c_upload/netspeed` - 适用于较老型号
|
|
|
|
|
- `get_icon` - 适用于较新型号
|
|
|
|
|
- **执行过程**:
|
|
|
|
|
1. 自动检测路由器型号
|
|
|
|
|
2. 选择合适的漏洞利用方法
|
|
|
|
|
3. 上传并执行漏洞利用代码
|
|
|
|
|
4. 启用SSH和Telnet访问
|
|
|
|
|
|
|
|
|
|
#### 3. 读取完整设备信息
|
|
|
|
|
- **获取信息包括**:
|
|
|
|
|
- 硬件型号和版本
|
|
|
|
|
- 固件版本信息
|
|
|
|
|
- 分区表结构
|
|
|
|
|
- 内存和存储信息
|
|
|
|
|
- 网络配置
|
|
|
|
|
- **输出位置**: `outdir/` 目录
|
|
|
|
|
|
|
|
|
|
#### 4. 创建完整备份
|
|
|
|
|
- **备份内容**:
|
|
|
|
|
- 所有分区的原始数据
|
|
|
|
|
- Bootloader
|
|
|
|
|
- 内核镜像
|
|
|
|
|
- 根文件系统
|
|
|
|
|
- 配置数据
|
|
|
|
|
- **备份格式**: 二进制镜像文件
|
|
|
|
|
- **存储位置**: `backup/` 目录
|
|
|
|
|
|
|
|
|
|
#### 5. 安装英文/俄文语言包
|
|
|
|
|
- **支持语言**: 英文、俄文
|
|
|
|
|
- **安装方式**:
|
|
|
|
|
1. 上传语言文件到路由器
|
|
|
|
|
2. 修改系统配置
|
|
|
|
|
3. 重启相关服务
|
|
|
|
|
- **卸载**: 通过扩展菜单选项5可以卸载
|
|
|
|
|
|
|
|
|
|
#### 6. 安装永久SSH
|
|
|
|
|
- **功能**: 启用持久化的SSH访问
|
|
|
|
|
- **默认凭据**:
|
|
|
|
|
- 用户名: `root`
|
|
|
|
|
- 密码: `root`
|
|
|
|
|
- **端口**: 22
|
|
|
|
|
- **特点**: 重启后仍然有效
|
|
|
|
|
|
|
|
|
|
#### 7. 安装固件
|
|
|
|
|
- **支持格式**:
|
|
|
|
|
- 标准的小米固件格式
|
|
|
|
|
- OpenWrt固件(需兼容)
|
|
|
|
|
- **固件位置**: 将固件放在 `firmware/` 目录
|
|
|
|
|
- **安装过程**: 自动化刷写流程
|
|
|
|
|
|
|
|
|
|
#### 8. 其他功能(扩展菜单)
|
|
|
|
|
进入扩展功能菜单,包含更多高级选项。
|
|
|
|
|
|
|
|
|
|
#### 9. 重启设备
|
|
|
|
|
安全重启路由器设备。
|
|
|
|
|
|
|
|
|
|
### 扩展菜单功能
|
|
|
|
|
|
|
|
|
|
#### 1. 设置IP地址
|
|
|
|
|
与主菜单功能1相同。
|
|
|
|
|
|
|
|
|
|
#### 2. 修改root密码
|
|
|
|
|
- **用途**: 修改路由器的root用户密码
|
|
|
|
|
- **安全性**: 提高系统安全性
|
|
|
|
|
|
|
|
|
|
#### 3. 读取dmesg和syslog
|
|
|
|
|
- **获取内容**:
|
|
|
|
|
- 内核日志 (dmesg)
|
|
|
|
|
- 系统日志 (syslog)
|
|
|
|
|
- **用途**: 故障诊断和系统分析
|
|
|
|
|
|
|
|
|
|
#### 4. 创建指定分区备份
|
|
|
|
|
- **灵活性**: 可选择备份特定分区
|
|
|
|
|
- **常用分区**:
|
|
|
|
|
- `bootloader` - 引导加载器
|
|
|
|
|
- `kernel` - 内核
|
|
|
|
|
- `rootfs` - 根文件系统
|
|
|
|
|
- `overlay` - 配置数据
|
|
|
|
|
|
|
|
|
|
#### 5. 卸载英文/俄文语言包
|
|
|
|
|
还原到原始的中文界面。
|
|
|
|
|
|
|
|
|
|
#### 6. 设置内核引导地址
|
|
|
|
|
- **用途**: 修改内核的加载地址
|
|
|
|
|
- **应用场景**: 安装自定义固件时使用
|
|
|
|
|
|
|
|
|
|
#### 7. 安装Breed引导加载器
|
|
|
|
|
- **Breed特点**:
|
|
|
|
|
- 功能强大的第三方Bootloader
|
|
|
|
|
- 支持Web界面固件刷写
|
|
|
|
|
- 不怕刷坏(变砖保护)
|
|
|
|
|
- **支持型号**:
|
|
|
|
|
- R3G: `breed_r3g_eng.bin`
|
|
|
|
|
- 其他型号需要对应的Breed固件
|
|
|
|
|
|
|
|
|
|
#### 8. 测试功能
|
|
|
|
|
开发和调试用途的测试功能。
|
|
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
#### 9. 重启设备
|
|
|
|
|
与主菜单功能9相同。
|
|
|
|
|
|
|
|
|
|
### Windows
|
|
|
|
|
## 🛠️ 故障排除
|
|
|
|
|
|
|
|
|
|
* Run `run.bat`
|
|
|
|
|
### 常见问题
|
|
|
|
|
|
|
|
|
|
### Linux / Mac OS
|
|
|
|
|
#### 1. 连接失败
|
|
|
|
|
**问题**: 无法连接到路由器
|
|
|
|
|
**解决方案**:
|
|
|
|
|
```bash
|
|
|
|
|
# 检查网络连接
|
|
|
|
|
ping 192.168.31.1
|
|
|
|
|
|
|
|
|
|
* Install python 3.8+ and openssl
|
|
|
|
|
* Run `run.sh`
|
|
|
|
|
# 检查路由器管理界面
|
|
|
|
|
curl -I http://192.168.31.1
|
|
|
|
|
|
|
|
|
|
## Donations
|
|
|
|
|
# 确认IP地址正确
|
|
|
|
|
# 某些路由器可能使用 192.168.1.1
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 2. 漏洞利用失败
|
|
|
|
|
**问题**: "Exploit not working" 错误
|
|
|
|
|
**可能原因**:
|
|
|
|
|
- 固件版本太新,已修复漏洞
|
|
|
|
|
- 路由器型号不支持
|
|
|
|
|
- 网络连接不稳定
|
|
|
|
|
|
|
|
|
|
**解决方案**:
|
|
|
|
|
```bash
|
|
|
|
|
# 检查设备型号支持情况
|
|
|
|
|
# 尝试降级固件(如果可能)
|
|
|
|
|
# 检查网络连接稳定性
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 3. SSH连接问题
|
|
|
|
|
**问题**: SSH连接被拒绝
|
|
|
|
|
**解决方案**:
|
|
|
|
|
```bash
|
|
|
|
|
# 检查SSH服务状态
|
|
|
|
|
ssh root@192.168.31.1
|
|
|
|
|
|
|
|
|
|
# 如果连接被拒绝,重新执行选项6
|
|
|
|
|
# 检查防火墙设置
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 4. 固件刷写失败
|
|
|
|
|
**问题**: 固件安装过程中出错
|
|
|
|
|
**解决方案**:
|
|
|
|
|
- 确保固件与设备型号匹配
|
|
|
|
|
- 检查固件文件完整性
|
|
|
|
|
- 确保有足够的存储空间
|
|
|
|
|
- 检查电源稳定性
|
|
|
|
|
|
|
|
|
|
#### 5. Python依赖问题
|
|
|
|
|
**问题**: ModuleNotFoundError
|
|
|
|
|
**解决方案**:
|
|
|
|
|
```bash
|
|
|
|
|
# 重新安装依赖
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
|
|
|
|
|
# 或者使用虚拟环境
|
|
|
|
|
python3 -m venv venv
|
|
|
|
|
source venv/bin/activate # Linux/macOS
|
|
|
|
|
# venv\Scripts\activate # Windows
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 恢复模式
|
|
|
|
|
|
|
|
|
|
如果路由器变砖,可以尝试以下恢复方法:
|
|
|
|
|
|
|
|
|
|
#### 1. 使用Breed恢复(如已安装)
|
|
|
|
|
1. 路由器断电
|
|
|
|
|
2. 按住reset键不放
|
|
|
|
|
3. 插入电源,等待10秒
|
|
|
|
|
4. 浏览器访问 `192.168.1.1`
|
|
|
|
|
5. 通过Web界面刷写固件
|
|
|
|
|
|
|
|
|
|
#### 2. 使用备份恢复
|
|
|
|
|
1. 通过SSH连接到路由器
|
|
|
|
|
2. 使用dd命令恢复分区:
|
|
|
|
|
```bash
|
|
|
|
|
# 恢复完整固件(谨慎操作!)
|
|
|
|
|
dd if=/tmp/backup.bin of=/dev/mtdblock0
|
|
|
|
|
|
|
|
|
|
# 恢复特定分区
|
|
|
|
|
dd if=/tmp/kernel_backup.bin of=/dev/mtdblock2
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 3. TFTP恢复模式
|
|
|
|
|
某些型号支持TFTP恢复:
|
|
|
|
|
1. 设置电脑IP为 192.168.1.2
|
|
|
|
|
2. 运行TFTP服务器
|
|
|
|
|
3. 按住reset键启动路由器
|
|
|
|
|
4. 传输固件文件
|
|
|
|
|
|
|
|
|
|
## ⚠️ 安全提示
|
|
|
|
|
|
|
|
|
|
### 风险声明
|
|
|
|
|
- **⚠️ 刷机有风险,操作需谨慎!**
|
|
|
|
|
- **⚠️ 任何固件修改都可能导致设备变砖!**
|
|
|
|
|
- **⚠️ 修改固件可能失去官方保修!**
|
|
|
|
|
- **⚠️ 请在操作前做好完整备份!**
|
|
|
|
|
|
|
|
|
|
### 安全建议
|
|
|
|
|
|
|
|
|
|
#### 操作前准备
|
|
|
|
|
1. **完整备份**: 务必先执行选项4创建完整备份
|
|
|
|
|
2. **稳定电源**: 确保操作过程中电源稳定
|
|
|
|
|
3. **网络稳定**: 确保网络连接稳定
|
|
|
|
|
4. **充足时间**: 不要在时间紧迫时进行操作
|
|
|
|
|
|
|
|
|
|
#### 密码安全
|
|
|
|
|
1. **修改默认密码**: SSH启用后立即修改默认密码
|
|
|
|
|
```bash
|
|
|
|
|
passwd root
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. **禁用不必要的服务**:
|
|
|
|
|
```bash
|
|
|
|
|
# 如不需要Telnet,建议禁用
|
|
|
|
|
/etc/init.d/telnet disable
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. **配置防火墙**:
|
|
|
|
|
```bash
|
|
|
|
|
# 限制SSH访问的IP范围
|
|
|
|
|
iptables -A INPUT -p tcp --dport 22 -s 192.168.31.0/24 -j ACCEPT
|
|
|
|
|
iptables -A INPUT -p tcp --dport 22 -j DROP
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 固件安全
|
|
|
|
|
1. **验证固件来源**: 只使用可信来源的固件
|
|
|
|
|
2. **校验文件完整性**: 使用MD5或SHA256校验
|
|
|
|
|
3. **渐进式升级**: 避免跨越太多版本升级
|
|
|
|
|
|
|
|
|
|
## 🔧 开发说明
|
|
|
|
|
|
|
|
|
|
### 项目结构
|
|
|
|
|
```
|
|
|
|
|
Xiaomi-Router-patcher/
|
|
|
|
|
├── menu.py # 主菜单界面
|
|
|
|
|
├── gateway.py # 网关通信模块
|
|
|
|
|
├── connect*.py # 各种漏洞利用脚本
|
|
|
|
|
├── xqmodel.py # 设备型号定义
|
|
|
|
|
├── read_info.py # 设备信息读取
|
|
|
|
|
├── create_backup.py # 备份功能
|
|
|
|
|
├── install_*.py # 各种安装功能
|
|
|
|
|
├── unlock_features.py # 功能解锁
|
|
|
|
|
├── xmir_base/ # 核心库
|
|
|
|
|
│ ├── ubireader/ # UBI文件系统读取
|
|
|
|
|
│ ├── fdt/ # 设备树处理
|
|
|
|
|
│ └── telnetlib/ # Telnet库
|
|
|
|
|
├── data/ # 数据文件
|
|
|
|
|
│ ├── payload/ # 漏洞利用载荷
|
|
|
|
|
│ ├── payload_ssh/ # SSH相关脚本
|
|
|
|
|
│ └── *.po # 语言包文件
|
|
|
|
|
├── bootloader/ # 引导加载器文件
|
|
|
|
|
├── firmware/ # 固件存放目录
|
|
|
|
|
└── python/ # Windows内置Python
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 核心模块说明
|
|
|
|
|
|
|
|
|
|
#### Gateway类 (gateway.py)
|
|
|
|
|
负责与路由器的通信,包括:
|
|
|
|
|
- HTTP/HTTPS请求
|
|
|
|
|
- SSH连接
|
|
|
|
|
- Telnet连接
|
|
|
|
|
- FTP传输
|
|
|
|
|
- 设备检测
|
|
|
|
|
|
|
|
|
|
#### 漏洞利用模块 (connect*.py)
|
|
|
|
|
- `connect1.py`: c_upload/netspeed漏洞
|
|
|
|
|
- `connect7.py`: get_icon漏洞
|
|
|
|
|
- 支持多种小米路由器型号
|
|
|
|
|
|
|
|
|
|
#### 设备模型 (xqmodel.py)
|
|
|
|
|
定义了所有支持的设备型号和属性。
|
|
|
|
|
|
|
|
|
|
### 添加新设备支持
|
|
|
|
|
|
|
|
|
|
1. **在xqmodel.py中添加设备定义**:
|
|
|
|
|
```python
|
|
|
|
|
mi(42, "NEW_MODEL", "", "device-alt-name")
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. **在connect.py中添加检测逻辑**:
|
|
|
|
|
```python
|
|
|
|
|
if gw.model_id == get_modelid_by_name('NEW_MODEL'):
|
|
|
|
|
# 使用适当的漏洞利用方法
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. **测试新设备**:
|
|
|
|
|
```python
|
|
|
|
|
# 创建测试脚本验证功能
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 自定义漏洞利用
|
|
|
|
|
|
|
|
|
|
参考现有的connect脚本,主要步骤:
|
|
|
|
|
|
|
|
|
|
1. **检测设备**:
|
|
|
|
|
```python
|
|
|
|
|
gw.detect_device()
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. **安装载荷**:
|
|
|
|
|
```python
|
|
|
|
|
install_exploit(api='API/endpoint')
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. **执行功能**:
|
|
|
|
|
```python
|
|
|
|
|
run_exploit('function_name', timeout=10)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 🤝 贡献指南
|
|
|
|
|
|
|
|
|
|
### 如何贡献
|
|
|
|
|
|
|
|
|
|
1. **Fork 项目**
|
|
|
|
|
2. **创建功能分支**:
|
|
|
|
|
```bash
|
|
|
|
|
git checkout -b feature/new-feature
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. **提交更改**:
|
|
|
|
|
```bash
|
|
|
|
|
git commit -am 'Add new feature'
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
4. **推送分支**:
|
|
|
|
|
```bash
|
|
|
|
|
git push origin feature/new-feature
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
5. **创建 Pull Request**
|
|
|
|
|
|
|
|
|
|
### 贡献方向
|
|
|
|
|
|
|
|
|
|
- 支持新的路由器型号
|
|
|
|
|
- 修复现有漏洞利用
|
|
|
|
|
- 改进用户界面
|
|
|
|
|
- 增加新功能
|
|
|
|
|
- 完善文档
|
|
|
|
|
- 修复bug
|
|
|
|
|
|
|
|
|
|
### 代码规范
|
|
|
|
|
|
|
|
|
|
- 使用Python 3.8+语法
|
|
|
|
|
- 遵循PEP 8代码风格
|
|
|
|
|
- 添加适当的注释
|
|
|
|
|
- 编写测试用例
|
|
|
|
|
|
|
|
|
|
### 报告问题
|
|
|
|
|
|
|
|
|
|
请在GitHub Issues中报告bug或提出功能请求:
|
|
|
|
|
- 详细描述问题
|
|
|
|
|
- 提供复现步骤
|
|
|
|
|
- 包含系统环境信息
|
|
|
|
|
- 附上相关日志
|
|
|
|
|
|
|
|
|
|
## 📄 许可证
|
|
|
|
|
|
|
|
|
|
本项目采用 GPL-3.0 许可证。详见 [LICENSE](LICENSE) 文件。
|
|
|
|
|
|
|
|
|
|
## 💝 捐赠支持
|
|
|
|
|
|
|
|
|
|
如果这个项目对您有帮助,欢迎支持开发:
|
|
|
|
|
|
|
|
|
|
[](https://github.com/remittor/donate)
|
|
|
|
|
|
|
|
|
|
## 📞 联系方式
|
|
|
|
|
|
|
|
|
|
- **GitHub Issues**: [提交问题](https://github.com/longzheng268/Xiaomi-Router-patcher/issues)
|
|
|
|
|
- **讨论区**: [GitHub Discussions](https://github.com/longzheng268/Xiaomi-Router-patcher/discussions)
|
|
|
|
|
|
|
|
|
|
## 🙏 致谢
|
|
|
|
|
|
|
|
|
|
- 感谢原始项目的所有贡献者
|
|
|
|
|
- 感谢小米路由器破解社区
|
|
|
|
|
- 感谢OpenWrt项目
|
|
|
|
|
- 感谢所有测试用户的反馈
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
**⚠️ 免责声明**: 本工具仅供学习和研究使用。使用本工具进行的任何操作,风险由用户自行承担。开发者不对因使用本工具而造成的任何损失负责。
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## English Summary
|
|
|
|
|
|
|
|
|
|
**XMiR-Patcher** is a comprehensive firmware patcher for Xiaomi routers that supports:
|
|
|
|
|
|
|
|
|
|
- **50+ Xiaomi router models** from R1CM to latest AX series
|
|
|
|
|
- **Exploit installation** for gaining root access
|
|
|
|
|
- **Permanent SSH access** with customizable credentials
|
|
|
|
|
- **Full firmware backup** and selective partition backup
|
|
|
|
|
- **Custom firmware installation** including OpenWrt support
|
|
|
|
|
- **Bootloader replacement** (Breed support)
|
|
|
|
|
- **Multi-language support** (EN/RU language packs)
|
|
|
|
|
- **Advanced features** like password change, log reading, feature unlocking
|
|
|
|
|
|
|
|
|
|
### Quick Start
|
|
|
|
|
**Windows**: Run `run.bat` | **Linux/macOS**: Run `./run.sh`
|
|
|
|
|
|
|
|
|
|
### Basic Usage Flow
|
|
|
|
|
1. Set router IP address (default: 192.168.31.1)
|
|
|
|
|
2. Connect and install exploit (essential first step)
|
|
|
|
|
3. Create full backup (highly recommended)
|
|
|
|
|
4. Enable permanent SSH access
|
|
|
|
|
5. Install custom firmware or additional features
|
|
|
|
|
|
|
|
|
|
**⚠️ Warning**: Firmware modification carries risks. Always backup before proceeding!
|
|
|
|
|
|