切换到宽版
  • 5071阅读
  • 17回复

[STM]无聊分析分析本坛高手STM32风抢的固件 [复制链接]

上一主题 下一主题
离线yjmwxwx
 

发帖
18
M币
68
专家
0
粉丝
7
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2017-02-07
百度找的一张图片

我没有这个产品,没办法家里条件不好不能乱买东西。
前几天坛友给我个固件说是不能注册,然后他给了我一个固件。 我把这个固件放到IDA PRO里面反汇编,然后挂上调试器调试了一下。

结果是没办法测试,手里只有最小系统,没有OLED等配件。
调试结果ID1和ID2是由STM32的64位唯一ID计算产生的。  

64位唯一ID分两次计算得到两个16位,然后把这两个16位分别放到两个256位的数组里计算, 得到两个16位。
然后这两个数据分别和别的地址的数据比较

如果这两个16位不是注册码我也懒的在分析了,我这没有硬件完全盲目调试,一共用了四五天,前三天主要分析UCOS,以前没学过这个,感谢作者让我学会了UCOS的内核。
在分析下去没什么意义,不知道这两个由256位数据计算出来的16位数据是不是注册码,要是是注册码那就比较容易破解了,直接把ID1和ID2替换成这两个就行了。 改BIN文件(固件)就很简单了,改几个数就行。










seg000:08001924
seg000:08001924 @ =============== S U B R O U T I N E =======================================
seg000:08001924
seg000:08001924 @ 200001a4的48位计算结果放到0X2000028 + 0X1C 和0X1E
seg000:08001924 @ 2000019e的48位计算结果放到0X2000008 + 0X1C 和0X1E
seg000:08001924 @
seg000:08001924 @ 0X20000008 开始的256位计算得到16位放到 0X200001AA
seg000:08001924 @ 0X20000028 开始的256位计算得到16位放到 0X200001AA + 2
seg000:08001924 @
seg000:08001924 @ 然后和 0X2000059F 和 0X200001AA 比较
seg000:08001924 @      0X2000059F + 2 和0X200001AA +2 比较
seg000:08001924 @ 比较不通过0X20000058 清零
seg000:08001924 @ 通过的话就等于1
seg000:08001924 @
seg000:08001924
seg000:08001924 sub_8001924:                            @ CODE XREF: sub_8006864+2Ap
seg000:08001924                 PUSH.W  {R4-R8,LR}
seg000:08001928                 MOVS    R7, #0
seg000:0800192A                 MOVS    R0, #3
seg000:0800192C                 BL      sub_8004688     @ ?
seg000:08001930                 MOVS    R1, #6          @ 48位
seg000:08001932                 LDR     R0, =0x200001A4
seg000:08001934                 BL      iiiddd_8002878  @ 算ID
seg000:08001934                                         @ 入口
seg000:08001934                                         @ R0 =  要算的数据的首地址
seg000:08001934                                         @ R1 =  数据长度
seg000:08001934                                         @ R1 乘以 8 等于数据长度的位数
seg000:08001934                                         @ 比如R1等于6
seg000:08001934                                         @ 6 * 8 = 48 正好两次就计算完64位唯一ID
seg000:08001938                 MOV     R6, R0
seg000:0800193A                 LDR     R0, =0x200001A4
seg000:0800193C                 MOVS    R1, #6          @ 48位
seg000:0800193E                 SUBS    R0, R0, #6      @ 0x2000019e
seg000:08001940                 BL      iiiddd_8002878  @ 算ID
seg000:08001940                                         @ 入口
seg000:08001940                                         @ R0 =  要算的数据的首地址
seg000:08001940                                         @ R1 =  数据长度
seg000:08001940                                         @ R1 乘以 8 等于数据长度的位数
seg000:08001940                                         @ 比如R1等于6
seg000:08001940                                         @ 6 * 8 = 48 正好两次就计算完64位唯一ID
seg000:08001944                 MOV     R5, R0
seg000:08001946                 LDR     R0, =0x20000028
seg000:08001948                 MOVS    R1, #0x20       @ 计算从0X20000028开始的256位
seg000:0800194A                 STRH    R5, [R0,#0x1C]
seg000:0800194C                 STRH    R6, [R0,#0x1E]
seg000:0800194E                 BL      ji_suan_ID_80028EC @ 计算ID
seg000:0800194E                                         @
seg000:0800194E                                         @  要算的数据的首地址
seg000:0800194E                                         @ seg000:08002878 @ R1 =  数据长度
seg000:0800194E                                         @ seg000:08002878 @ R1 乘以 8 等于数据长度的位数
seg000:0800194E                                         @
seg000:08001952                 LDR     R4, =0x200001AA
seg000:08001954                 MOVS    R1, #0x20       @ 计算0X20000008开始的256位
seg000:08001956                 STRH    R0, [R4,#2]
seg000:08001958                 LDR     R0, =0x20000008
seg000:0800195A                 STRH    R5, [R0,#0x1C]
seg000:0800195C                 STRH    R6, [R0,#0x1E]
seg000:0800195E                 BL      ji_suan_ID_80028EC @ 计算ID
seg000:0800195E                                         @
seg000:0800195E                                         @  要算的数据的首地址
seg000:0800195E                                         @ seg000:08002878 @ R1 =  数据长度
seg000:0800195E                                         @ seg000:08002878 @ R1 乘以 8 等于数据长度的位数
seg000:0800195E                                         @
seg000:08001962                 STRH    R0, [R4]
seg000:08001964                 MOVS    R0, #1
seg000:08001966                 BL      sub_8004688     @ ?
seg000:0800196A                 LDR     R0, =0x2000059F
seg000:0800196C                 LDRH    R1, [R4]
seg000:0800196E                 LDR     R5, =0x2000004C
seg000:08001970                 LDRH    R2, [R0]
seg000:08001972                 CMP     R1, R2
seg000:08001974                 BNE     loc_800197E
seg000:08001976                 LDRH    R1, [R4,#2]
seg000:08001978                 LDRH    R0, [R0,#2]
seg000:0800197A                 CMP     R1, R0
seg000:0800197C                 BEQ     loc_800198A
seg000:0800197E
seg000:0800197E loc_800197E:                            @ CODE XREF: sub_8001924+50j
seg000:0800197E                 MOVS    R0, #7
seg000:08001980                 BL      sub_8004688     @ ?
seg000:08001984                 STRB    R7, [R5,#0xC]
seg000:08001986
seg000:08001986 locret_8001986:                         @ CODE XREF: sub_8001924+70j
seg000:08001986                 POP.W   {R4-R8,PC}
seg000:0800198A @ ---------------------------------------------------------------------------
seg000:0800198A
seg000:0800198A loc_800198A:                            @ CODE XREF: sub_8001924+58j
seg000:0800198A                 MOVS    R0, #3
seg000:0800198C                 BL      sub_8004688     @ ?
seg000:08001990                 MOVS    R0, #1
seg000:08001992                 STRB    R0, [R5,#0xC]
seg000:08001994                 B       locret_8001986



[ 此帖被yjmwxwx在2017-02-07 19:47重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共5条打赏 ,M币+62
关键词: STM32
离线邪恶海盗

发帖
10697
M币
8643
专家
6
粉丝
74
只看该作者 1楼 发表于: 2017-02-07
请登录后查看
离线szb314

发帖
1406
M币
2072
专家
2
粉丝
10
只看该作者 2楼 发表于: 2017-02-07
请登录后查看
离线wjhlhh

发帖
7423
M币
15839
专家
4
粉丝
35
只看该作者 3楼 发表于: 2017-02-07
请登录后查看
离线fzg63031525

发帖
183
M币
946
专家
0
粉丝
10
只看该作者 4楼 发表于: 2017-02-07
请登录后查看
离线青色风机

发帖
19011
M币
3503
专家
24
粉丝
1567
只看该作者 5楼 发表于: 2017-02-07
请登录后查看
离线lookball

发帖
16972
M币
10097
专家
11
粉丝
147
只看该作者 6楼 发表于: 2017-02-07
请登录后查看
离线chaplin1999

发帖
44
M币
0
专家
0
粉丝
11
只看该作者 7楼 发表于: 2017-02-07
请登录后查看
离线kamp

发帖
153
M币
55
专家
4
粉丝
12
只看该作者 8楼 发表于: 2017-02-07
请登录后查看
离线hidled

发帖
526
M币
2179
专家
1
粉丝
10
只看该作者 9楼 发表于: 2017-02-07
请登录后查看
快速回复
限80 字节
“新手上路”发帖需审核后才能显示(请认真发帖),达到数码9级后取消此限制
 
上一个 下一个