NRF51822 小黄车智能锁 逆向工程

2024-09-07 16:58

本文主要是介绍NRF51822 小黄车智能锁 逆向工程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

笔者在夜跑时发现有人将拆下的小黄车智能锁丢弃在花园角落,于是萌生了拆解的想法。

拆开外壳后发现MCU 是NRF51822 ,并且预留了Jlink 调试接口,更萌生了逆向这个电路板的想法

下面是 各个智能锁厂家提供的方案:

摩拜单车:STM32F1+GSM+GPS

使用芯片 STM32F401 + NRF51802(BLE)+TD1030 泰斗定位芯片+BQ25895(充电管理)+C3Hx(三轴传感器)+SIM800

Hellobike 使用MT2503联发科集成方案

MT2503 +25LQ128+HS8296+ STM8S003 + 8736 + SGMGADB1734C+ 837C

OFO智能锁引脚配置说明

第一代:智能锁加半智能锁

第二代智能锁
红色LED:14

蓝色LED:13

白色LED :24

L218串口:RX:6  TX:7 powerKEY :19

检锁:5

未知:蜂鸣器、电机控制、按键

第三代板子:(焊盘易掉)

å°é»è½¦æºè½é带èçå¦, åæ¥æ¯å¤©çæâæºè½é

 

数字为引脚号

开关1(SW1):10

开关1(SW2):11

红色LED:21

黄色LED:22

蜂鸣器:23

GSM 电源开关Pin1

GSM电源转换开关—Pin7

SIM868 GSM模块引脚RX :6  TX: 5 模块使能开关 powkey :20

电机控制引脚 12 13 14(nsleep)---芯片H桥驱动电路DRV8838

白色LED和五个按键有IIC IO口扩展芯片PW534(TCA9534)来控制

PW534 SDA SCL INT 分别为8 9 28

USB调试口 29 30

加速度计 C3H IIC –共用IIC SCL SDA 8 9总线 中断口 25

GSM 模块抓包记录:

AT+CGNSPWR=1
AT+SET="\"KCRC\":\"27\""
AT+SET="\"KCRC\":\"27\""
AT+SET="\"KCRC\":\"27\""
AT+SET="\"SET\":\"0,0\""
AT+SET="\"SET\":\"0,0\""
AT+SET="\"SET\":\"0,0\""
AT+SET="\"Err\":\"E050,1,0,0,1,0,0\""
AT+SET="\"Err\":\"E050,1,0,0,1,0,0\""
AT+SET="\"Err\":\"E050,1,0,0,1,0,0\""
AT+SET="\"Lst\":\"74\""
AT+SET="\"Lst\":\"74\""
AT+SET="\"Lst\":\"74\""
AT+SET="\"STTime\":\"1483229012\""
AT+SET="\"STTime\":\"1483229012\""
AT+SET="\"STTime\":\"1483229012\""
AT+SET="\"sa\":\"5vY4VUtyHi/kFNUgOLLFzg==\""
AT+SET="\"sa\":\"5vY4VUtyHi/kFNUgOLLFzg==\""
AT+SET="\"sa\":\"5vY4VUtyHi/kFNUgOLLFzg==\""
AT+TRANS=1
AT+GET="SPAddr"
AT+PWR0
AT+CSCLK=2
AT+STA
AT
AT+STA
AT+SET="\"MCUVer\":\"ofoV1.108.9\""
AT+SET="\"tm\":\"136\""
AT+SET="\"Vot\":\"3062\""
AT+SET="\"3D\":\"112,-32,48\""
AT+SET="\"ACTION\":\"0\""
AT+CGNSPWR=1
AT+SET="\"STTime\":\"1483228910\""
AT+SET="\"sa\":\"NnpOZG3UyW/wVABvfKq8Mw==\""
AT+SET="\"SPTime\":\"1483228911\""
AT+SET="\"OpenType\":\"10\""
AT+SET="\"PWD\":\"    \""
AT+TRANS=0
AT+STA
AT+GET="CSQ"
AT+GET="IMSI"
AT+STA
AT+GET="SPAddr"
AT+GET="PLUS"
AT+GET="SVTime"
AT+GET="KEY"
AT+GET="SET"
AT+SET="\"MCUVer\":\"ofoV1.108.9\""
AT+SET="\"tm\":\"139\""
AT+SET="\"Vot\":\"3062\""
AT+SET="\"3D\":\"112,-32,48\""
AT+SET="\"ACTION\":\"1\""
AT+CGNSPWR=1AT+CGNSCMD=0,"$PMTK353,1,0,0,0,1*2B"
AT+STAAT+STA
AT+CGNSCMD=0,"$PMTK886,4*2C"
AT+STA
AT+STAAT+CGNSPWR=1
AT+SET="\"KCRC\":\"139\""
AT+SET="\"SET\":\"0,0\""
AT+SET="\"Err\":\"E050,0,0,0,0,0,0\""
AT+SET="\"Lst\":\"74\""
AT+SET="\"STTime\":\"1521509613\""
AT+SET="\"sa\":\"p/1/AtAW1Rpctwji4szZhQ==\""
AT+TRANS=1
AT+STAAT+PWR0
AT+SET="\"MCUVer\":\"ofoV1.108.9\""
AT+SET="\"tm\":\"131\""
AT+SET="\"Vot\":\"2406\""
AT+SET="\"3D\":\"-96,-16,16\""
AT+SET="\"ACTION\":\"2\""
AT+CGNSPWR=1
AT+STA
AT+STA
AT+STA
AT+STA
AT+STA
AT+CGNSCMD=0,"$PMTK353,1,0,0,0,1*2B"
AT+STA
AT+STA
AT+STA
AT+STA
AT+CGNSCMD=0,"$PMTK886,4*2C"
AT+STA
AT+STAAT+CGNSPWR=1
AT+SET="\"KCRC\":\"139\""
AT+SET="\"SET\":\"0,0\""
AT+SET="\"Err\":\"E050,0,0,0,0,0,0\""
AT+SET="\"Lst\":\"74\""
AT+SET="\"STTime\":\"1483229007\""
AT+SET="\"sa\":\"4sfLAFrIoi27ERXe5b5RPA==\""
AT+TRANS=1
AT+STA
AT+GET="CSQ"
AT+GET="IMSI"AT+STA
AT+GET="SPAddr"
AT+PWR0

在小黄车智能锁板卡上建立的工程:

https://github.com/kuangmh/OFO_LOCK 

JUST FOR FUN,ENJOY IT!

 

 

这篇关于NRF51822 小黄车智能锁 逆向工程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145628

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

智能交通(二)——Spinger特刊推荐

特刊征稿 01  期刊名称: Autonomous Intelligent Systems  特刊名称: Understanding the Policy Shift  with the Digital Twins in Smart  Transportation and Mobility 截止时间: 开放提交:2024年1月20日 提交截止日

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

Jenkins构建Maven聚合工程,指定构建子模块

一、设置单独编译构建子模块 配置: 1、Root POM指向父pom.xml 2、Goals and options指定构建模块的参数: mvn -pl project1/project1-son -am clean package 单独构建project1-son项目以及它所依赖的其它项目。 说明: mvn clean package -pl 父级模块名/子模块名 -am参数

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到

【C++】作用域指针、智能指针、共享指针、弱指针

十、智能指针、共享指针 从上篇文章 【C++】如何用C++创建对象,理解作用域、堆栈、内存分配-CSDN博客 中我们知道,你的对象是创建在栈上还是在堆上,最大的区别就是对象的作用域不一样。所以在C++中,一旦程序进入另外一个作用域,那其他作用域的对象就自动销毁了。这种机制有好有坏。我们可以利用这个机制,比如可以自动化我们的代码,像智能指针、作用域锁(scoped_lock)等都是利用了这种机制。