首页
社区
课程
招聘
[原创]试着破解孔雀石SDR的序列号保护
发表于: 2021-1-27 14:36 51302

[原创]试着破解孔雀石SDR的序列号保护

2021-1-27 14:36
51302
收藏
免费 8
支持
分享
打赏 + 40.00雪花
打赏次数 2 雪花 + 40.00
 
赞赏  一位没有留下痕迹的看雪读者   +20.00 2021/03/23 感谢分享
赞赏  wmsuper   +20.00 2021/02/20 感谢分享~
最新回复 (58)
雪    币: 220
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
26
触控感觉有点迟钝,不知道是否有关联
2021-2-5 15:59
0
雪    币: 734
活跃值: (458)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
27
大佬牛逼
2021-2-15 20:38
0
雪    币: 734
活跃值: (458)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
28
yjmwxwx 上面这个固件已经有网友反馈了,可能顺序不对,我让他输入8CABD076E4911F3F试试,由于再论坛上交流还没收到他的反馈。那4K RAM知道里面是什么了,作者定义了一个数组,初始化的时候复制到内存 ...

从0X8051820复制了一个数组到0X20000000-0X20003F4C这个应该是系统初始化阶段,全局变量的加载过程,楼主找到的那个段是用于存储全局变量的RO段

最后于 2021-2-15 21:00 被backahasten编辑 ,原因:
2021-2-15 20:58
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
29
新的1.10b固件具有新的保护。 请检查。 激活码被硬编码到固件中。 现在有很多人被封锁。
2021-2-15 23:23
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
30
新固件内部还包含激活码,作者每天对其进行更新,以包括新的合法激活码。 在线购买收音机的人被卖家骗了,他们现在无法更新,否则收音机将出现故障,创作者将无济于事。 有人说仍然可以修补固件,并且需要一个字节来使其完全工作。 我们花了钱买了完全激活的,但被骗了。 我很沮丧
2021-2-16 17:19
0
雪    币: 803
活跃值: (850)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
31
backahasten yjmwxwx 上面这个固件已经有网友反馈了,可能顺序不对,我让他输入8CABD076E4911F3F试试,由于再论坛上交流还没收到他的反馈。那4K RAM知道里 ...
你说的对,是全局变量。
2021-2-16 23:25
0
雪    币: 803
活跃值: (850)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
32
haishivu 新固件内部还包含激活码,作者每天对其进行更新,以包括新的合法激活码。 在线购买收音机的人被卖家骗了,他们现在无法更新,否则收音机将出现故障,创作者将无济于事。 有人说仍然可以修补固件,并且需要一个字节 ...
贪小便宜吃大亏,既然价格便宜就只能用功能受限的了,不更新不就行了,要找也要找中国克隆产品的卖家。
2021-2-16 23:37
0
雪    币: 803
活跃值: (850)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
33
haishivu 新的1.10b固件具有新的保护。 请检查。 激活码被硬编码到固件中。 现在有很多人被封锁。

作者这个固件估计很早就被破解了只是没被公开,我公开后作者换了保护算法,以后别人修改要增加一些难度,我帮作者找BUG完全是免费的没盈利,我不是那些中国克隆产品的卖家,我是个农民有自己的事情要做,不可能也没兴趣盯着作者的固件。 其实只要比较两个更新的固件就可以找到修改了哪里,但是只要每次作者更新就要修改新的固件,估计也就那些中国克隆孔雀石卖家会这样做,我这没有硬件没有库函数签名文件也不使用软件仿真,完全静态看是比较麻烦的,我很贫穷也没工作买不起孔雀石SDR ,那些中国克隆孔雀石卖家也不可能给我一台,所以没兴趣搞这个对我没什么用的东西了。

最后于 2021-2-17 00:10 被yjmwxwx编辑 ,原因:
2021-2-17 00:02
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
34
感谢你的回复。 算法没有改变,他只是增加了另一层保护:检查固件中是否存在注册的代码。 我可以看到,每次固件更改时,三个功能也会更改,但是我不知道它们的作用。 我们之所以感到羞耻,是因为卖家告诉我们我们作弊,但我们是从在线商店购买的,他们骗了我们,因为我们为激活的固件支付了更多费用。 我尊重您的决定,我理解您的意思。 我只是想说声谢谢,并祝您一切顺利。
2021-2-17 04:13
0
雪    币: 803
活跃值: (850)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
35

闲着没事再调试下作者1.10B版本,新版本作者把他注册的所有密码放到固件里面,做成一个表,然后和STM32 ID生成的密码比较,同时对密码表和0X8000000到0X8100000的数据校验。



由于没硬件所以才用QEMU,学下怎么用IDA +QEMU调试STM32

安装支持STM32的 xPack QEMU Arm

安装方法如下,有详细说明不再重复。

https://xpack.github.io/qemu-arm/




打开IDA 的debugger菜单设置一下调试




qemu 运行参数


"qemu-system-gnuarmeclipse" -machine STM32F429I-Discovery -s -S -kernel C:\311.bin



设置本机IP


运行可以连接了



通过比较新版和旧版固件很容易就找到了密码表地址0x80392d8


找哪个程序调用了这个表,发现是一个校验程序



向上找哪里调用的



我们又找到了读STM32ID的程序,通过分析上面两个是生成校验数组的。



往下看sub_800DB54是原来的ID号生成密码的程序



下面一些是对生成密码简单移位的程序,但是有上百行,人工看比较麻烦,所以运行动态调试



在0x800e270设个断点


运行以前的算号器生成本机密码



把IDA动态调试寄存器R6和R7改成 0XA52FF277和0XBC8FB975

0X800E3CC设个断点,运行看结果


运行 


结果R0和R1  0x75b98fbc 0x77f22fa5 

在下面函数里面设置个断点接着运行



这个不用调试肉眼就可以看出来,通过和密码表比较,密码表里面有就向R6+0x814地址写0XFA,没有就写0X58。


到这里已经知道怎么和密码表比较了


看固件BIN文件时候看到结尾有数据,这很不正常,看哪里调用看到两个对整个FLASH的校验程序




由于QEMU不支持STM32H7所以没办法运行整个程序,要是有硬件插上JILINK,一条命令就能锁定哪个程序校验整个固件,静态不容易看到哪里进行校验。


人家作者开发的东西,有人破解了还卖和作者原价骗人,希望有能力搞的免费改改。


三处锁简单绕开 

	0800DED4 由原来
	str r4, [r6, # 0x814]
	改成
	str r7, [r6, # 0x814]
	0800DD66由原来 
	str r0, [r3]
	改成
	str r2, [r3]
	0800DC90和0800DC92由原来
	ldr r2, [r4]
	cmp r2, r3
	改成
	str r3, [r4]
	cmp r3, r3


有硬件大家可以调试试试,我这没硬件实在没办法搞,连验证都没人验证,以后不再搞了。


 Malahit_FW_1_10b.hex.zip 是原版固件


2.ZIP是修改的

2.zip

最后于 2021-3-13 17:34 被yjmwxwx编辑 ,原因:
上传的附件:
2021-3-13 17:31
0
雪    币: 734
活跃值: (458)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
36
yjmwxwx 闲着没事再调试下作者1.10B版本,新版本作者把他注册的所有密码放到固件里面,做成一个表,然后和STM32 ID生成的密码比较,同时对密码表和0X8000000到0X8100000的数据校验。由于没硬 ...
孔雀石sha
2021-3-15 16:41
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
37
我准备干一下试试,是把上面的2直接烧进去吗?
2021-3-19 18:46
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
38
yjmwxwx 闲着没事再调试下作者1.10B版本,新版本作者把他注册的所有密码放到固件里面,做成一个表,然后和STM32 ID生成的密码比较,同时对密码表和0X8000000到0X8100000的数据校验。由于没硬 ...
谢谢楼主的辛苦付出,好像不行啊,我转成DFU刷的
2021-3-20 11:16
0
雪    币: 803
活跃值: (850)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
39
mb_dfbcpebm 谢谢楼主的辛苦付出,好像不行啊,我转成DFU刷的

没硬件只看代码比较麻烦,看了看又找到两个锁,主要我没硬件没办法试验,发出来这么长时间才有人反馈太慢了。


再试试这个


1.10b破解版固件3.zip 

最后于 2021-3-23 15:53 被yjmwxwx编辑 ,原因:
上传的附件:
  • 3.zip (264.42kb,108次下载)
2021-3-20 21:32
0
雪    币: 237
活跃值: (61)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
yjmwxwx 没硬件只看代码比较麻烦,看了看又找到两个锁,主要我没硬件没办法试验,发出来这么长时间才有人反馈太慢了。再试试这个
本来想试着刷3.zip, 发现提供的是bin格式,转换以后刷机秒过,但是开机还是1.10a,  估计是bin转dfu搞的不对,原版的hex转的要刷1分钟左右,bin转出来的是1秒就过了,不晓得哪里弄错了.
2021-3-23 10:18
0
雪    币: 237
活跃值: (61)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41
satans 本来想试着刷3.zip, 发现提供的是bin格式,转换以后刷机秒过,但是开机还是1.10a, 估计是bin转dfu搞的不对,原版的hex转的要刷1分钟左右,bin转出来的是1秒就过了,不晓得哪里弄错 ...
我找到办法刷了,分别刷了原版和3.zip,没发现什么不同,1.10b只不过是在开机时候跳出一个警告页面,说你是盗版,然后几秒以后,功能正常使用. 我之前用注册机注册过. 不晓得3.zip是不是需要用空白机做试验.
2021-3-23 10:38
0
雪    币: 803
活跃值: (850)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
42
satans 我找到办法刷了,分别刷了原版和3.zip,没发现什么不同,1.10b只不过是在开机时候跳出一个警告页面,说你是盗版,然后几秒以后,功能正常使用. 我之前用注册机注册过. 不晓得3.zip是不是需要用空 ...

要是原版1.10B固件只是跳出一个警告而后能正常使用那就没必要破解了。 3.ZIP一共改了5个地方,有个网友刷了说能正常使用,而你说和刷原版一样,我这也没硬件我也不知道你们谁说的对,只能等别的网友试试了。想清空的话作者网盘有清空外部FRAM的固件https://disk.yandex.ru/d/4ZgsrswxYClG1Q/%D0%9F%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B8(FIRMWARE)/NOT%20USE%20SPECIAL

最后于 2021-3-23 12:01 被yjmwxwx编辑 ,原因:
2021-3-23 12:00
0
雪    币: 237
活跃值: (61)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
yjmwxwx satans 我找到办法刷了,分别刷了原版和3.zip,没发现什么不同,1.10b只不过是在开机时候跳出一个警告页面,说你是盗版,然后几秒以后,功 ...


返个警告的图,我现在刷的原版,除了开机多这个警告以外,暂时没发现其他不同,听了一早上FM,200M以上也可正常调到


另外:有没有办法破解一下350M的限制?现在这个频段会显示 OUT OF RANGE,  警用频率还是很有些欢乐可听的.

最后于 2021-3-23 12:34 被satans编辑 ,原因:
2021-3-23 12:29
0
雪    币: 237
活跃值: (61)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
yjmwxwx satans 我找到办法刷了,分别刷了原版和3.zip,没发现什么不同,1.10b只不过是在开机时候跳出一个警告页面,说你是盗版,然后几秒以后,功 ...
刷3.zip的确能正常用,我刷了以后,想看看和原版有啥区别,又刷了原版,结果发现一样的表现.就是多个警告.3.zip照样有警告,其他没发现不同,  也许和我之前用过注册机双号有关系,等我彻底清空再试试.
2021-3-23 12:33
0
雪    币: 803
活跃值: (850)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
45
satans 刷3.zip的确能正常用,我刷了以后,想看看和原版有啥区别,又刷了原版,结果发现一样的表现.就是多个警告.3.zip照样有警告,其他没发现不同, 也许和我之前用过注册机双号有关系,等我彻底清空再试试 ...
既然没破解也可以正常使用,你就没必要用破解的了,你的机器可能密码在密码表里。别的网友说刷原版功能有限制,刷3.ZIP就去掉了限制。
2021-3-23 14:51
0
雪    币: 803
活跃值: (850)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
46
satans yjmwxwx satans 我找到办法刷了,分别刷了原版和3.zip,没发现什么不同,1. ...
没区别你就用正版的就好了。作者设计的这个能收听350M么?
你的保密意识挺高啊,序列号还抹掉了。呵呵 
2021-3-23 15:11
0
雪    币: 237
活跃值: (61)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
yjmwxwx 没区别你就用正版的就好了。作者设计的这个能收听350M么? 你的保密意识挺高啊,序列号还抹掉了。呵呵
我之前也是用的你的算号器,不可能在密码表里面,默认软件是屏蔽350M的,因为是警用频率.硬件是支持到2000M的,所以是软屏蔽,有望破解.刚才我刷那个clear固件以后,机器不能开机了,只能回家用电烙铁短接焊盘从头刷了.有啥结果我再告诉了. 
2021-3-23 15:56
0
雪    币: 803
活跃值: (850)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
48
satans 我之前也是用的你的算号器,不可能在密码表里面,默认软件是屏蔽350M的,因为是警用频率.硬件是支持到2000M的,所以是软屏蔽,有望破解.刚才我刷那个clear固件以后,机器不能开机了,只能回家用电烙 ...

能正常使用就没必要折腾了啊,你是咸鱼上卖破解版的么?既然你是专业搞逆向的可以自己增加功能啊。
我只是给你提供了个作者清空外部FRAM固件的网址,刷个固件我不知道你为什么还要动烙铁,你要是自己把主板焊废了我可不能负责啊,我只不过免费把注册机和1.10b破解版提供给爱好者。

从你的回复可以知道你比我懂这个收音机,遇到 问题就没必要问我了吧。

最后于 2021-3-23 16:31 被yjmwxwx编辑 ,原因:
2021-3-23 16:24
0
雪    币: 237
活跃值: (61)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
49
我就一普通无线电爱好者而已,刷了那个clear固件以后等于fram全清0了, 视同第一次刷机,要短接2个焊点,才能进DFU模式,刷过以后就不用了.  我自己买了个半成品折腾出来的,所以步骤都知道,不用担心. 嵌入式的逆向不太会.所以改不动.还是谢谢你的分享.  
2021-3-23 16:56
0
雪    币: 803
活跃值: (850)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
50
satans 我就一普通无线电爱好者而已,刷了那个clear固件以后等于fram全清0了, 视同第一次刷机,要短接2个焊点,才能进DFU模式,刷过以后就不用了. 我自己买了个半成品折腾出来的,所以步骤都知道,不用 ...
哦是这样啊,我只用过JLINK刷STM32固件,DFU可能类似串口刷机需要设置BOOT引脚,我看了下那个显示警告的在显示作者信息的下面,应该盗版正版都会显示,那个试过的网友说刷原版虚拟键盘不能用,刷了3.ZIP就能用了,我这也没这个收音机,实在没办法试验,还是谢谢你帮忙验证。
2021-3-23 17:58
0
游客
登录 | 注册 方可回帖
返回
//