搜索
bottom↓
回复: 66

如何破解别人的串口协议?

  [复制链接]

出0入0汤圆

发表于 2014-11-13 21:30:48 | 显示全部楼层 |阅读模式
最近帮别人修理测体前曲的设备,测量部分的主板我不打算要了,自己再从新做一个。问题是它的主机是好的,想问如何破解掉主机和测量板之间的通信协议下面附图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2014-11-13 21:44:32 | 显示全部楼层
先猜对波特率,再按时间断开点研究长度,看好首尾的特点后,再看数据末有无校验(是前面数据累加和  还是CRC,FCS),再解析每字节的意义。

出0入0汤圆

发表于 2014-11-13 21:46:51 | 显示全部楼层
慢慢破解吧。

一般串口协议,如果不是标准的,如MODBUS之类,而是属于定制的话,一般就是有几种情况,反正我自己一般是用两种方式。

方式一:
固定长度,比如,固定2个或者4个字节的数据,用于传固定的测量值。

方式二:
定义一个简单的帧格式,有起始标识,有结束标识。

楼主如果要破解,就认真观察一下,串口的数据出现的规律,一次收到几个字节。就是对方肯定是一个有意义的包一起发的,所以你要以包为单位进行破解。

出0入0汤圆

发表于 2014-11-13 21:56:18 | 显示全部楼层
我最近也有个这样的事情要干!

我对楼主好奇的是,你用啥东西来监控板间的串口通迅啊,按理来说,串口监控软件只能监控PC与设备之的串口,无法监控设备与设备之间的通迅啊?

出0入0汤圆

发表于 2014-11-13 22:00:18 | 显示全部楼层
这东西在医院用过

出0入0汤圆

 楼主| 发表于 2014-11-13 22:06:04 | 显示全部楼层
zeroXone 发表于 2014-11-13 21:56
对于破解,都很来劲,都有自己的见解。

首先得要把数据能够区分出收发方,能截取一段完整的对话。

感谢大神指点,

出0入37汤圆

发表于 2014-11-13 22:06:17 | 显示全部楼层
kinsno 发表于 2014-11-13 21:56
我最近也有个这样的事情要干!

我对楼主好奇的是,你用啥东西来监控板间的串口通迅啊,按理来说,串口监控 ...

把两边串口芯片上的TX都引出来,分别接到PC上两个串口的RX上,这样可以看到通讯的结果,但是时序没法确定,就是不知道A的TX与B的TX的某条消息的时间先后关系
或者做个类似透传的程序,A <=>PC comm1<=>转发程序<=>PC comm2<=>B,其中“转发程序”就是进行透传的关键了,其实就是把comm1的数据转发给comm2,把comm2的转给comm1,你的转发程序记录所有收发数据和时间就可以了

出0入0汤圆

发表于 2014-11-13 22:06:40 | 显示全部楼层
kinsno 发表于 2014-11-13 21:56
我最近也有个这样的事情要干!

我对楼主好奇的是,你用啥东西来监控板间的串口通迅啊,按理来说,串口监控 ...

找两个串口~~把RX接到设备的设备与设备之间的TX、RX上~~抓到数据慢慢分析

出0入0汤圆

 楼主| 发表于 2014-11-13 22:19:32 | 显示全部楼层
kinsno 发表于 2014-11-13 21:56
我最近也有个这样的事情要干!

我对楼主好奇的是,你用啥东西来监控板间的串口通迅啊,按理来说,串口监控 ...

我是这样做的,不知道对不对。先将主机上的RXD/TXD连接到单片机下载器上(就是常用的给51单片机下载程序用的USB转TTL下载器),然后打开下面这张图的软件,打开里面的串口调试助手,选择波特率、端口等,然后接收被测量的器件发来的数据,图中已经有数据了。问题就是,面对这些数据,发现不出一点规律。。。。如果破解了主机的通信方式,就可以让自己的测量板子,按照之前的协议进行通信了。可关键是,这些数据,我看着就头大,更不要说一个一个分析了,大神你是怎么做的?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入90汤圆

发表于 2014-11-13 22:36:25 来自手机 | 显示全部楼层
要用逻辑分析仪抓,才比较容易看明白哪里开始,哪里结束

出0入0汤圆

发表于 2014-11-13 22:39:51 | 显示全部楼层
用个伪随机数加密,楼主傻眼了

出0入0汤圆

发表于 2014-11-13 23:16:27 | 显示全部楼层
暗杀无情 发表于 2014-11-13 22:19
我是这样做的,不知道对不对。先将主机上的RXD/TXD连接到单片机下载器上(就是常用的给51单片机下载程序 ...

你这种,如果是那种必须有应答的才有下文的你如何解啊?根本没办法弄的;
所以最好的办法,是人家两设备之间交互,我们去侦听到数据,这样就能看到真实的交互的;
不过我现在还没有弄,不是太好弄;

出0入0汤圆

发表于 2014-11-13 23:17:32 | 显示全部楼层
varding 发表于 2014-11-13 22:06
把两边串口芯片上的TX都引出来,分别接到PC上两个串口的RX上,这样可以看到通讯的结果,但是时序没法确定 ...

好点子,送上999个赞;

出0入0汤圆

发表于 2014-11-13 23:17:58 | 显示全部楼层
elsonx 发表于 2014-11-13 22:06
找两个串口~~把RX接到设备的设备与设备之间的TX、RX上~~抓到数据慢慢分析

好点子,送上999个赞;

出0入0汤圆

发表于 2014-11-13 23:24:21 | 显示全部楼层
用个有很多串口的单片机,一个接温度板一个接主机,另一个接你的电脑,然后就自己看着办吧,其实逻辑分析仪可以有滴说

出0入0汤圆

发表于 2014-11-14 00:14:11 来自手机 | 显示全部楼层
偶然间看到此帖,正好项目有类似需求,是关于机器人上位控制器与关节伺服驱动器间的通信,想知道伺服驱动器中具体做了哪些闭环控制,而哪些闭环控制是在上位控制器中完成。目前对此暂无头绪,没有任何经验,非常感谢楼主的帖子,过段时间设计下试验方案,最好能行得通~

出0入25汤圆

发表于 2014-11-14 00:16:07 | 显示全部楼层
用示波器 观察 帧的 间隔时间,然后 破解 帧长度。  然后找 意义。 一步一步来了

出0入0汤圆

发表于 2014-11-14 00:24:34 | 显示全部楼层
绝对逻辑分析仪,好用。波特率、问答帧、一看就清楚,剩下就是细心分析

出0入442汤圆

发表于 2014-11-14 03:03:39 来自手机 | 显示全部楼层
串口的话,试试用ida反编译下串口入口代码,看看是怎么算的。理论上这类用单片机的都不会太复杂,极有可能就是异或一个数而已。

出0入0汤圆

发表于 2014-11-14 08:31:32 | 显示全部楼层
怎么看都觉得像波特率没设对的样子

出0入0汤圆

发表于 2014-11-14 08:45:54 | 显示全部楼层
用bus hound抓数据吧

出0入0汤圆

发表于 2014-11-14 08:48:04 | 显示全部楼层
如果设备是和PC通信的话,论坛里有网友分享串口检测软件,自己找找吧。

出0入0汤圆

发表于 2014-11-14 08:48:48 | 显示全部楼层
感觉还是好好搞个逻辑分析仪上去监听更省事一些,也有时序的分析。

出0入0汤圆

发表于 2014-11-14 08:53:57 | 显示全部楼层
这些东西的协议不会很复杂,用有记录时间的串口软件可以区分各帧出来,波特率试多几次.剩下的事就是分析数据了

出0入96汤圆

发表于 2014-11-14 09:01:45 | 显示全部楼层
推荐用双串口,每个rxt只接一根线,区分好主机和从机,一定要带时间显示的串口工具,方便分析收发顺序,确定好波特率,一般这种仪器很少使用19200以上的,其次的hi校验位,像lz这样的有很多F的,一般是波特率不对或校验有问题。

曾经破解过格力的面板和主机的通讯, 改造过,

出0入96汤圆

发表于 2014-11-14 09:07:43 | 显示全部楼层
本帖最后由 gallle 于 2014-11-14 09:10 编辑

以下是我破解的一个大概流程!仅供参考!
  1. 2013-8-30 10:43:37.95 [COM1] - 00 F8 F8 3F E0 00 00 3F 00 3F 00 00 00 00 80 00 00 00 80 00 00 00 F8 F8 F8 3F 00 00 F0
  2. 2013-8-30 10:43:38.07 [COM7] - 80 00 3F 00 3F 3F 78 80 78 3F 78 3F 80 80 3F 00 00 3F 78 3F F8 3F 00 80 3F 78 00 3F 3F 00 00 3F F8 80 00 3F 78 3F 80
复制代码
这个是错误的例子



  1. 2013-8-30 10:44:19.53 [COM1] - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  2. 2013-8-30 10:44:19.65 [COM7] - 3F 00 00 3F 3F 00 00 3F 00 3F 00 00 3F 00 3F 00 3F 00 00 3F 00 3F 00 3F 00 3F 00 00 3F 00 00 3F 00 3F 00 00 3F 3F 00 00 3F 00 3F 3F 00 3F 00 00 3F 00 3F 00 00 3F
复制代码
还是错误的



  1. 2013-8-30 10:44:32.89 [COM1] - 00 80 80 80 00 00 00 80 80 00 00 00 00 00 00 00 00 00 80 80 80 80 00
  2. 2013-8-30 10:44:33.01 [COM7] - 3F 00 00 3F 00 3F 80 00 3F 00 80 3F 00 80 80 00 3F 00 00 3F 3F 00 80 80 80 00 3F 00 3F 80 00 3F 80 00 3F 00 3F 00 3F 80 80 00 3F 00 3F 00 3F 80 80 00 3F
复制代码
错误的
连续以上三个,我发现应该是奇偶校验错误了,


  1. 2013-8-30 10:44:57.04 [COM1] - 68 3F A0 00 02 3F 00 00 00 EF 0B
  2. 2013-8-30 10:44:57.15 [COM7] - 3F 1E 3F 00 3F 99 00 3F 25 30 3F 35 3F 0A 3F 00 3F 00 3F 80 3F 33 CD
复制代码
接近成功的 改正校验位



  1. 2013-8-30 11:00:25.32 [COM1] - 68 00 90 00 02 00 00 00 00 92 0B
  2. 2013-8-30 11:00:25.42 [COM7] - 1E 00 99 00 25 30 35 00 00 00 00 B9 CD
复制代码
ok的 调整波特率



  1. 2013-8-30 11:00:38.64 [COM1] - 00 E0 E0 00 00 00 E0 00 00 00 00 00 00 00 00 00 00 E0 E0 00
  2. 2013-8-30 11:00:38.78 [COM7] - 00 3F 3F 00 00 3F E0 00 3F 00 E0 3F 00 3F E0 E0 3F 00 00 3F 00 3F 00 3F E0 E0 E0 00 3F 00 3F 3F 00 3F 00 00 3F E0 3F 00 E0 E0 E0 00 3F
复制代码
再改变波特率和校验位,又错了


出0入169汤圆

发表于 2014-11-14 09:13:19 | 显示全部楼层
多尝试几种波特率,把这个勾上试试,也许直接是明文的呢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-11-14 09:20:56 | 显示全部楼层
我觉得你这个波特率应该不对。换其他的试试
头像被屏蔽

出0入0汤圆

发表于 2014-11-14 09:48:36 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2014-11-14 09:52:38 | 显示全部楼层
楼主语音模块用的哪家的?

出0入0汤圆

发表于 2014-11-14 09:55:23 | 显示全部楼层
祝楼主成功

出0入0汤圆

发表于 2014-11-14 10:03:00 | 显示全部楼层
这个新茂的片子是不是加密的,用通用编程器读一下,然后反汇编,找到中断程序分析!

出0入0汤圆

发表于 2014-11-14 10:14:23 | 显示全部楼层
用逻辑分析仪啊,自动波特率检测

出0入0汤圆

发表于 2014-11-14 10:57:24 | 显示全部楼层
如果数据加密了还能破?

出0入0汤圆

发表于 2014-11-14 11:06:25 | 显示全部楼层
上逻辑分析仪,分析包。瞬间就能得到正确的波特率。
通常每包数据之间一定有很长的时间间隔,而没个字节之间却很短,所以可以正确的分割包!如果觉得挺累,可以自己写上位机软件,来分割包。
然后才是分析包的数据结构!

出0入0汤圆

发表于 2014-11-14 19:14:22 来自手机 | 显示全部楼层
有上位机的就用监控,accessport。记录好当时的操作和数据。如果上位机是有动态库,试试调用,并看通讯。分析明白全部还是有难度的。

出0入0汤圆

 楼主| 发表于 2014-11-14 19:22:02 | 显示全部楼层
embeddev_1 发表于 2014-11-14 09:52
楼主语音模块用的哪家的?

用的是WT588D  用之前要先录好音,然后在程序里调用就行了

出0入0汤圆

 楼主| 发表于 2014-11-14 19:29:38 | 显示全部楼层
aammoo 发表于 2014-11-13 22:36
要用逻辑分析仪抓,才比较容易看明白哪里开始,哪里结束

用逻辑分析仪好像抓不出来,我用的是30M这样的采样率,端口总是保持一个电平不变

出0入0汤圆

发表于 2014-11-15 08:58:04 | 显示全部楼层
暗杀无情 发表于 2014-11-14 19:29
用逻辑分析仪好像抓不出来,我用的是30M这样的采样率,端口总是保持一个电平不变 ...

30M抓不出来  ?楼主没有测试正确吧     。   

出0入8汤圆

发表于 2014-11-15 09:08:34 | 显示全部楼层
果断逻辑分析仪~

出0入57汤圆

发表于 2014-11-15 09:12:10 | 显示全部楼层
根据楼主的数据和个人的经验,楼主需要把波特率调低一些

出0入0汤圆

发表于 2014-11-15 13:40:50 | 显示全部楼层
我也遇到一个奇怪的加密,看过发送软件使用的是AES加密算法,不过楼主的波特率应该是错误的
还有就是有可能是开始的第一个数据是0_8 后面的是1_8,意思就是这个数据是9位的,0或者1表示数据的开始,这样你最好使用逻辑分析仪看
不断调整,大致知道一个包是多少字节的数据,然后才能开始调整数据位和波特率,要是真的带有加密就有点麻烦,祝你好运

出0入0汤圆

发表于 2014-11-15 14:05:15 | 显示全部楼层
有数据还怕分析不了?改变一个状态,看数据是否改变。

出0入0汤圆

发表于 2014-11-15 16:10:31 来自手机 | 显示全部楼层
lovecxm 发表于 2014-11-15 14:05
有数据还怕分析不了?改变一个状态,看数据是否改变。

看情况的,至死不是想象的那么简单,最好结合上位机反汇编。比如我们的设备是rc4加密的(这个强度其实不高),加上半动态密钥。同样功能的数据,密文是不一样的。我们公司业务在现场亲自看到同行分析我们的协议,结果半天多后放弃了。(他们目的是软件兼容,客户不想以前能用的设备也换了)

出50入0汤圆

发表于 2014-11-15 21:17:56 来自手机 | 显示全部楼层
学习了,祝楼主成功

出0入0汤圆

发表于 2014-11-15 21:53:56 | 显示全部楼层
不就是为了在女神面前修一把嘛?
买一个一模一样的 电路板拆下来 换上去不就行了

出0入0汤圆

发表于 2014-11-16 00:53:35 | 显示全部楼层
用逻辑分析仪,看上去直观,而且自带一些协议

出0入0汤圆

发表于 2014-11-17 20:41:56 | 显示全部楼层
1. 写程序分析比较
2. 修改输入设置,观察输出

出0入0汤圆

发表于 2014-11-17 21:42:50 | 显示全部楼层
略难啊   

出0入0汤圆

发表于 2014-11-17 21:47:41 | 显示全部楼层
波特率应该不对,用示波器确认一下正确的再分析

出0入0汤圆

发表于 2014-11-17 23:14:54 | 显示全部楼层
我感觉,先找到正确的波特率,这个检测一下!先搞对波特率,再分析数据。

出0入134汤圆

发表于 2014-11-17 23:59:04 | 显示全部楼层
曾经搞过串口协议破解的来说两句
对于这种两个设备直接单独通信的,可以把它们分别连接到电脑上的两个串口,再通过串口转发软件实现两个设备的互联,同时开一个串口监听软件,就可以看到串口的数据了。
串口转发工具可以用如下这个,串口监听可以用AccessPort(http://www.sudt.com/cn/ap/download.htm)或者串口监控精灵(http://www.ceiwei.com/CommMonitor.html)。
注意需要先开启串口监控,再使用串口转发。
祝你好运!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-11-18 08:36:05 | 显示全部楼层
围观破解方法.曾经破解过一次,猜波特率时把常用波特率试了一遍,最后发现数据还是加密的!

出0入0汤圆

发表于 2014-11-18 08:50:10 | 显示全部楼层
破解通讯协议就像揣摩别人的想法,不是不可能,而是需要很深的功底

出0入0汤圆

发表于 2014-11-18 08:57:45 | 显示全部楼层
bushound+vspd以前这样干过

出0入0汤圆

发表于 2014-11-18 09:15:56 | 显示全部楼层
MARK 串口破解。表示不懂,静观各路高手

出0入0汤圆

发表于 2014-11-18 10:07:20 | 显示全部楼层
逻辑分析仪吧,轻松加愉快!电工利器!

出0入0汤圆

发表于 2014-11-18 10:44:06 来自手机 | 显示全部楼层
串口抓数据很容易

出0入0汤圆

发表于 2014-11-18 10:51:24 | 显示全部楼层
有个逻辑分析仪就容易些,但如果设计者存心不让你搞的话会很麻烦,例如有以下方法:
  1: 非标波特率,甚至可变波特率
  2: 加密传输  

即便只是简单的把数据位变成9位,电脑抓取就很麻烦了,所以逻辑分析仪比电脑串口好用     

出0入0汤圆

发表于 2014-11-19 16:51:18 | 显示全部楼层
我觉得这东西就是,获取到数据好获取,关键你怎么知道人家是干什么用的??

出0入14汤圆

发表于 2014-11-19 17:17:56 | 显示全部楼层
搞一个逻辑分析仪看一下

出0入0汤圆

发表于 2014-11-19 23:02:37 | 显示全部楼层
硬件串口通讯协议分析软件 X-Mon
http://www.amobbs.com/thread-4571174-1-1.html

1. 先猜对波特率,取得原始数据。
2. 按照下面帖子的思想, 猜协议及cksum 方法。
http://www.amobbs.com/forum.php?mod=viewthread&tid=2157650

就把这贴作为解封的第一贴吧。
虽然不提倡破解,但通过破解别人的协议,理解别人的思想, 从而自己独立设计出产品来,也是一种进步。
现在水贴好多,想找个技术点来回还真不容易。


出0入0汤圆

发表于 2014-11-20 22:52:53 | 显示全部楼层
这样难度比较大吧。

出15入9汤圆

发表于 2014-11-20 23:10:47 | 显示全部楼层
先用示波器或者sermon之类的东西把波特率弄清楚然后再侦听!只要不是滚动码加密通讯,一般都容易破解。

出0入0汤圆

发表于 2015-9-29 11:08:36 | 显示全部楼层
jacky_yhy 发表于 2014-11-14 08:31
怎么看都觉得像波特率没设对的样子

同意楼上

出0入0汤圆

发表于 2015-10-22 09:38:44 | 显示全部楼层
这个想法不错
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-2 07:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表