当前位置: 首页 > news >正文

xiaomiR4c openwrt

文章目录

  • openwrt 安装
  • openwrt 配置
    • 开启WiFi
  • 救砖
  • minieap
    • 编译
    • 参数帮助

openwrt 安装

  • Router:xiaomi R4C
  • 官方固件:openwrt 23.05.5 (下图标红处)
  • 官方教程

在这里插入图片描述

  • 下载 OpenWRTInvasion
  • python remote_command_execution_vulnerability.py
    • 按照提示输入。路由器后台地址是192.168.31.1,密码就是后台密码(stok参数可以自动获取,不用记)
  • 然后通过 telnet 192.168.31.1 登录进路由器 (User: root - No password)
    • cd /tmp
    • 下载openwrt.bin文件,路由器中的wget无法下载https,我是先下载到本地
  • mtd -r write /tmp/openwrt.bin OS1 ,如下图所示

在这里插入图片描述

接着,WiFi 信号消失,最初以为又要变砖了。去B站看了视频,发现up主用的是以太网访问了 192.168.1.1,于是想到用网线连上路由器和电脑进行配置,果然成功了。
致谢:UP主DUX2468的视频

openwrt 配置

StatusSystemNetwork
Overview
Routing
Firewall
System Log
Processes
Administration
Software
Startup
Scheduled Tasks
Interfaces
Wirelesss
Switch
Routing
DHCP and DNS

开启WiFi

openwrt 安全和开启WiFi
在这里插入图片描述
添加WiFi密码
在这里插入图片描述
记得 Enable,以及Save & Apply

救砖

小米有个救砖工具,原理应该是通过网线连接电脑和路由器,将原版固件导入到Router,之前刷坏了一个R4A(刷breed后无WiFi),救砖工具没有奏效,刷 breed 有风险。

minieap

首次启动可能出现如下错误

[E] 无法打开配置文件: No such file or directory (2)
[W] 配置文件解析出错,请注意命令行参数是否完整

启动认证命令

minieap -u username -p password -n eth0.2 --module rjv3 -w
  • 重要文件:/etc/minieap.conf, /var/log/minieap.log
  • -w 会将命令行的参数更新到配置文件

编译

Reference: https://www.cnblogs.com/yellowsea/p/17152106.html

  1. 确定路由器的架构 Architecture(路由器后台管理会有),比如xiaomi R4C是 MT7628
  2. 到 OpenWrt 官网下载对应的sdk源码(我的是23.05.5),https://downloads.openwrt.org/releases/23.05.5/targets/ramips/mt76x8/,找到 openwrt-sdk-23.05.5-ramips-mt76x8_gcc-12.3.0_musl.Linux-x86_64.tar.xz
  3. 在Linux环境编译:
# 源码解压
xz -d <xxxx.tar.xz> # 先进行第一层解压
tar -xvf <xxxx.tar> # 再进行第二层解压
cd <解压后sdk文件夹内># 依赖安装
apt install  libncurses5-dev  zlib1g-dev  gawk  flex  patch   git-core g++   subversion# 克隆仓库到 ./package/minieap 位置
git clone https://github.com/KumaTea/openwrt-minieap.git package/minieap
# 选择要编译的package, 会进入 UI界面
make menuconfig

依次选择Network、选中minieap(按y键选中,选中后左边会显示[*])、选择Save、ok、Exit,退出到shell即可
在这里插入图片描述

# 开始编译
make package/minieap/compile V=s

在编译完成后,我们可以在 <sdk目录>/bin/packages/mipsel_24kc/base 目录下找到 minieap_0.93-1_mipsel_24kc.ipk 软件包。

登录到Openwrt 后台,System -> Software -> Upload Package,install

通过ssh连接到路由器,which minieap 看是否安装成功

参数帮助

root@OpenWrt:/tmp# minieap -h--kill, -k [1]  终止其他实例并退出。加任意非 0 参数表示终止其他实例后继续进行认证--save, -w #    保存本次认证所用参数-u <...>   # 用户名-p <...>   # 密码-n <...>   #  监听的网卡, `ip a` 查看--stage-timeout, -t <num>       单个认证阶段的超时时间 [默认5]--wait-after-fail, -r <num>     认证失败后重新认证前的等待时间(但当服务器要求重新认证时将直接开始认证)[默认30]--max-fail, -l <num>    最大允许认证失败次数 [默认3]--no-auto-reauth, -x    认证掉线后不允许自动重连 [默认1]-b <0-3>  # 后台运行方式: #   0 = 不后台 [默认]#   1 = 后台运行,关闭输出#   2 = 后台运行,输出到当前控制台#   3 = 后台运行,输出到日志文件--proxy-lan-iface, -z <...>     代理认证时的 LAN 网络界面名 [默认无]--auth-round, -j <num>  需要认证的次数 [默认1]--max-retries <num>     最大超时重试的次数 [默认3]--pid-file <...>        PID 文件路径,设为none可禁用 [默认/var/run/minieap.pid]--conf-file <...>       配置文件路径 [默认/etc/minieap.conf]--if-impl <...>         选择此网络操作模块,仅允许选择一次 [默认为第一个可用的模块]--pkt-plugin <...>      启用此名称的数据包修改器,可启用多次、多个 [默认无]--module <...>          同上。当命令行选项中存在 --module 或 --pkt-plugin 时,配置文件中的所有 module= 行都将被忽略--log-file <...>        日志文件路径 [默认/var/log/minieap.log]--script <...>  事件脚本 认证成功后运行此命令[默认无]以下是可用的网络操作模块:sockraw (采用RAW Socket进行通信的轻量网络接口模块)以下是可用的数据包修改插件及其选项:插件名称: printer (将流经此插件的数据包内容打印出来)此插件无选项可用插件名称: rjv3 (来自 hyrathb@GitHub 的 Ruijie V3 验证算法)--heartbeat, -e <num>           心跳间隔秒数 [默认60]--eap-bcast-addr, -a <0-1>      Start 包广播地址: [默认BROADCAST_STANDARD]0 = 标准地址1 = 锐捷私有地址--dhcp-type, -d <0-3>   # 0 = 不使用 DHCP# 1 = 二次认证# 2 = 认证后 DHCP[默认]# 3 = 认证前 DHCP--dhcp-script, -c <...>         二次认证之间及认证完成后运行此命令 [默认无]--rj-option <type>:<value>[:r]  自定义认证字段,其中 type 和 value 必须为十六进制串如 --rj-option 6a:000102 表示新增一条类型为 0x6a、内容为 0x00 0x01 0x02的字段:r 表示替换内置生成的字段,如 --rj-option 6f:000102:r 表示将内置算法生成的类型为 0x6f 的字段内容替换为 0x00 0x12 0x02当命令行与配置文件中同时存在此选项时,两处的选项都将发挥作用。若认证失败,请检查配置文件中是否有错误的参数--service <str>                 自定义服务名 [默认internet]--version-str <str>             自定义版本字符串 [默认RG-SU For Linux V1.0]--fake-dns1 <str>               自定义主 DNS 地址(点分十进制 IPv4 格式) [默认自动获取]--fake-dns2 <str>               自定义次 DNS 地址(IPv4 / IPv6 不限) [默认自动获取]--fake-serial <str>             自定义硬盘序列号 [默认自动获取]--max-dhcp-count <num>          二次认证时等待 DHCP 结果的允许超时次数 [默认3]--service 到 --fake-serial(除 --fake-dns1)都是对应的 --rj-option 的简单形式,可直接使用 ASCII 字符串作为参数,不需转化为十六进制表示

相关文章:

xiaomiR4c openwrt

文章目录 openwrt 安装openwrt 配置开启WiFi 救砖minieap编译参数帮助 openwrt 安装 Router&#xff1a;xiaomi R4C官方固件&#xff1a;openwrt 23.05.5 &#xff08;下图标红处&#xff09;官方教程 下载 OpenWRTInvasionpython remote_command_execution_vulnerability.py …...

leetcode-128.最长连续序列-day14

为什么我感觉上述代码时间复杂度接近O(2n), 虽然有while循环&#xff0c;但是前面有个if判断&#xff0c;能进入while循环的也不多&#xff0c;while循环就相当于两个for循环&#xff0c;但不是嵌套类型的&#xff1a; 变量作用域问题&#xff1a;...

梳理你的思路(从OOP到架构设计)_简介设计模式

目录 1、 模式(Pattern) 是较大的结构​编辑 2、 结构形式愈大 通用性愈小​编辑 3、 从EIT造形 组合出设计模式 1、 模式(Pattern) 是较大的结构 组合与创新 達芬奇說&#xff1a;簡單是複雜的終極形式 (Simplicity is the ultimate form of sophistication) —Leonardo d…...

JAVA前端开发中type=“danger“和 type=“text“的区别

在前端开发中&#xff0c;type 属性通常用于指定按钮或其他元素的样式或行为。不同的框架和库可能对 type 属性有不同的定义和用法。常见的框架包括 Bootstrap、Ant Design&#xff08;antd&#xff09;、Element Plus 等。下面我将分别介绍在这些框架中 type"danger"…...

python 中执行from elasticsearch import Elasticsearch,AsyncElasticsearch 报错

在 Python 中执行 from elasticsearch import Elasticsearch, AsyncElasticsearch 时,如果提示 AsyncElasticsearch 不存在,可能是因为以下几个原因: 1. 安装的 elasticsearch 库版本不匹配 AsyncElasticsearch 是在 elasticsearch 库的较新版本中引入的。如果你安装的版本…...

带有 Elasticsearch 和 Langchain 的 Agentic RAG

作者&#xff1a;来自 Elastic Han Xiang Choong 讨论并实现 Elastic RAG 的代理流程&#xff0c;其中 LLM 选择调用 Elastic KB。 更多阅读&#xff1a;Elasticsearch&#xff1a;基于 Langchain 的 Elasticsearch Agent 对文档的搜索。 简介 代理是将 LLM 应用于实际用例的…...

Jenkins持续集成部署——jenkins安装

前言 Jenkins 是一个开源的自动化服务器&#xff0c;主要用于持续集成&#xff08;CI&#xff09;和持续交付&#xff08;CD&#xff09;。它为软件开发团队提供了一个易于使用的平台来自动化构建、测试和部署应用程序的过程。 Jenkins 主要功能 1. 持续集成 (CI) 自动构建…...

微信小程序开发入门

实现滚动 需要设置高度和边框 轮播图 差值表达式&#xff08; {{表达式的值}} &#xff09;,info数据要写到js文件的data数据中 小程序中常用的事件...

深度学习中自适应学习率调度器

传统观点认为&#xff0c;太大的学习率不利于优化深度神经网络&#xff0c;而相比固定的学习率而言&#xff0c;变化的学习率更能提供快速的收敛。基于此&#xff0c;本文作者基于理论基础提出了一个计算深度神经网络学习率的新方法。实验结果证明了该方法的有效性。 训练神经…...

Phono3py hdf5文件数据读取与处理

Phono3py是一个主要用python写的声子-声子相互作用相关性质的模拟包&#xff0c;可以基于有限位移算法实现三阶力常数和晶格热导率的计算过程&#xff0c;同时输出包括声速&#xff0c;格林奈森常数&#xff0c;声子寿命和累积晶格热导率等参量。 相关介绍和安装请参考往期推荐…...

React 底部加载组件(基于antd)

底部加载组件的意义在于提供一种流畅的用户体验&#xff0c;以便在用户滚动到页面底部时自动加载更多内容。这样可以让用户无需离开当前页面&#xff0c;就能够无缝地浏览更多的内容.通过底部加载组件&#xff0c;可以分批加载页面内容&#xff0c;减少一次性加载大量数据对页面…...

将HTML转换为PDF:使用Spire.Doc的详细指南(一) 试用版

目录 引言 1. 为什么选择 Spire.Doc&#xff1f; 1.1 主要特点 1.2 适用场景 2. 准备工作 2.1 引入 Spire.Doc 依赖 2.2 禁用 SSL 证书验证 3. 实现功能 3.1 主类结构 3.2 代码解析 4. 处理图像 5. 性能优化 5.1 异步下载图像 示例代码 5.2 批量处理优化 示例代…...

数据结构经典算法总复习(下卷)

第五章:树和二叉树 先序遍历二叉树的非递归算法。 void PreOrderTraverse(BiTree T, void (*Visit)(TElemType)) {//表示用于查找的函数的指针Stack S; BiTree p T;InitStack(S);//S模拟工作栈while (p || !StackEmpty(S)) {//S为空且下一个结点为空&#xff0c;意味着结束遍…...

mac 安装graalvm

Download GraalVM 上面链接选择jdk的版本 以及系统的环境下载graalvm的tar包 解压tar包 tar -xzf graalvm-jdk-<version>_macos-<architecture>.tar.gz 移入java的文件夹目录 sudo mv graalvm-jdk-<version> /Library/Java/JavaVirtualMachines 设置环境变…...

【SH】在Ubuntu Server 24中基于Python Web应用的Flask Web开发(实现POST请求)学习笔记

文章目录 Flask开发环境搭建保持Flask运行Debug调试 路由和视图可变路由 请求和响应获取请求信息Request属性响应状态码常见状态码CookieSession 表单GET请求POST请求 Flask 在用户使用浏览器访问网页的过程中&#xff0c;浏览器首先会发送一个请求到服务器&#xff0c;服务器…...

一些经济政治学类书籍推荐 --- 以及与之相关我的经历和理解

我给所开设的兴趣专栏_墨#≯的博客-CSDN博客&#xff0c;的介绍是&#xff1a; 聊聊关于文学、经济(股票等)、法律方面的个人感受与理解。 不过目前已有的两篇以及现在在写的这篇都是经济相关的&#xff0c;其实专栏开设的9月至今&#xff0c;我也看了好几本文学相关的书&#…...

设计模式之 abstract factory

适用场景 一个系统要独立于它的产品的创建、组合和表示时。一个系统要由多个产品系列中的一个来配置时。当你要强调一系列相关的产品对象的设计以便进行联合使用时。当你提供一个产品类库&#xff0c;而只想显示它们的接口而不是实现时 架构演示 首先client这个东西可以接触到…...

汽车IVI中控开发入门及进阶(三十八):手机投屏HiCar开发

手机投屏轻松实现手机与汽车的无缝连接,导航、音乐、通话等功能应有尽有,还支持更多第三方应用,让车载互联生活更加丰富多彩。 HiCar在兼容性和开放性上更具优势。 手机投屏可以说是车机的杀手级应用,大大拓宽了车机的可用性范围。其中华为推出的HiCar就是非常好用的一种。…...

Springmvc,spring ,mybatis,整合,ssm

上一章内容&#xff1a; 1.spring框架:作用 开源的框架--提供IOC和AOPIOC控制反转 把创建对象的权力交于spring创建&#xff0c;并管理对象的生命周期&#xff0c;通过DI完成对象属性的注入。 ​ 2. spring配置中<bean>也可以使用注解Component Controller Service Repo…...

《庐山派从入门到...》板载按键启动!

《庐山派从入门到...》板载按键启动&#xff01; 《庐山派从入门到...》板载按键启动&#xff01; 视频内容大致如下 我们之前了解了GPIO的输出模式使用方法&#xff0c;并且成功点灯&#xff0c;很明显本篇要来分享的自然是GPIO的输入模式 正好回顾一下之前学的python基础包…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...