数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 549|回复: 39

[other] 许老师STM32 100K电桥的固件逆向完整C语言Keil MDK工程!2026年春节献礼

[复制链接]
发表于 2026-2-8 09:56:49 | 显示全部楼层 |阅读模式
本帖最后由 suhetao 于 2026-2-8 10:00 编辑

书接上回

《许老师STM32 100K电桥的固件注册码逆向分析结果,献给没有注册码的我们!》

再次感谢作者nxpyhgp001的分享的许老师STM32 100K电桥硬件

https://oshwhub.com/nxpyhgp001/stm32lcd-biao

春节前夕工厂产线停工,大部分员工都已经放假, 随即项目开发活动停止,工作空闲时间多了起来,开始填上之前挖的坑“后续会慢慢逆向或者重构实现一个完全适配此硬件的开源软件版本”。在之前逆向分析注册过程的基础上,花了点时间逆向了许老师STM32 100K闭源电桥固件GPIO.hex全流程实现,根据逆向工程结果重构了基于C语言和ST官方STM32F10x标准外设驱动库(3.6.0)的软件逆向工程版本。
同样这里省略逆向分析的过程。这并不是这个帖子讨论的重点,直接上结果。

先上个内存变量memory map,依次是内存地址,变量类型,名称,初始化的值。

0x20000000uint32_tg_dwADCSamples6627
0x20000004uint8_tg_bLCDPosX0
0x20000005uint8_tg_bLCDPosY0
0x200000060 Padding
0x200000070 Padding
0x20000008uint32_tg_dwPrescaler1
0x2000000Cuint32_tg_dwPeriod1
0x20000010uint32_tg_dwAD9850Control0
0x20000014uint32_tg_dwKeyPressTick0
0x20000018uint32_tg_dwKeyShortPressValue0
0x2000001Cuint32_tg_dwKeyLongPressValue0
0x20000020floatg_fG[5]{ 1.0, 3.0, 9.0, 27.0, 81.0 }
0x20000034floatg_fR[4]{ 100.0, 1000.0, 10000.0, 100000.0 }
0x20000044uint32_tg_dwMainFunction0
0x20000048uint32_tg_dwCalibrationMode0
0x2000004Cuint32_tg_dwAutoRangeUpdateStep0
0x20000050uint32_tg_dwUpdateInterval0x13
0x20000054uint32_tg_dwTickCounter0
0x20000058uint32_tg_dwLastTick0
0x2000005Cuint32_tg_dwAD9850Control[5]{ 0, 0, 1, 0, 1}
0x20000070uint32_tg_dwAutoGainMode[2]{ 0, 0 }
0x20000078uint32_tg_dwShowLagerError1
0x2000007Cint32_tg_iADCFloatingOffset0
0x20000080uint8_tg_bShowADCFloatingOffsetMode0
0x200000810 Padding
0x200000820 Padding
0x200000830 Padding
0x20000084uint32_tg_dwRng1
0x20000088uint32_tg_dwGainMode1
0x2000008Cuint32_tg_dwAutoTaskTimetick-1
0x20000090uint8_tg_bAD9850PinInit0
0x20000091uint8_tg_bKeyGpioInit0
0x20000092uint8_tg_bAnlogSwitchGpioInit0
0x20000093uint8_tg_bADCLinearCorrectInit0
0x20000094uint8_tg_bPhaseErrCount0
0x20000095uint8_tg_bLCRDisplayMode1
0x200000960 Padding
0x200000970 Padding
0x20000098uint32_tdwMeasurementFrequency0
0x2000009Cuint32_tg_dwDDSMode0
0x200000A0floatg_fFeqX0.0f
0x200000A4uint32_tg_dwVoltageCaptureMode0
0x200000A8uint8_tg_APBAHBPrescTable[16]{0, 0, 0, 0, 1, 2, 3, 4, 1, 2, 3, 4, 6, 7, 8, 9};
0x200000B8uint8_tg_ADCPrescTable[4]{2, 4, 6, 8};
0x200000BCint32_tg_iADCResults[5]{ 0 }
0x200000D0ADCLinearityParametersg_ADCLinearityParameters{ 0 }
0x20000190LCRParamtersg_LCRParamters{ 0 }
0x20000204int32_tg_TL084CorrectBias[4]{ 0 }


有两个重要的结构体

  1. typedef struct ADCLINEARITYPARAMETERS_t{
  2.         uint32_t iADCMinValue;
  3.         uint32_t iADCMaxValue;
  4.         int8_t ADCCorrecteBias[180];
  5.         int8_t bADCcorrectOverflowBias; //
  6. }ADCLinearityParameters;
复制代码




  1. typedef struct LCRPARAMTERS_t {
  2.         int8_t J[4];
  3.         int8_t R[4];
  4.         int8_t g1;
  5.         int8_t G1b;
  6.         int8_t j1;
  7.         int8_t g2;
  8.         int8_t G2b;
  9.         int8_t j2;
  10.         int8_t R2b;
  11.         uint8_t padding; //byte_2000019F
  12.         uint16_t wLicenseKey;
  13.         uint8_t LCD_X_POS;
  14.         uint8_t LCD_Y_POS;
  15.         float QRs[6];
  16.         float QXs[6];
  17.         float QRo[6];
  18.         float QXo[6];
  19. }LCRParamters;
复制代码



本想介绍一下此电桥的软件工作的过程以及相关代码,但是“talk is too cheap, show me your code”!
无需多言,相关实现请参考附件提供的逆向C语言代码,Keil MDK工程中的具体实现。没有家元的小伙伴使用以下地址。

STM32 100K LCR表逆向工程项目公开开源地址:
https://gitee.com/suhetao_b58c/STM32_LCR_REV
原始闭源版本GPIO.hex:
https://gitee.com/suhetao_b58c/STM32_LCR_REV/releases/download/v1.0/GPIO.hex
下载发布v1.0发布版本源码:
https://gitee.com/suhetao_b58c/STM32_LCR_REV/releases/download/v1.0/STM32_LCR_REV.zip

搭配nxpyhgp001在立创开源上公开的STM32 100K硬件使用。
同样因为工厂产线已经停工,无法进行任何的生产制造活动,因此我并没有实际的硬件可以测试这个软件版本。另外逆向成C语言代码的本质是指令集到汇编到高级语言的翻译,虽说已经基本上照搬原先所有的逻辑流程,包括不限于序列号生成,注册号生成输入,SWD禁用调试等逻辑,但是由于我个人水平有限,我并不能保证我翻译的过程一定100%准确,因此此软件版本可能存在bug。仍旧有硬件制作环境或者已经有吃灰硬件的小伙伴可以把硬件拿出来,重新编译烧录一下,验证看看功能是否正常。

附上软件工程编译环境:
Windows 10 x64 LTSC 2019
Keil MDK v5.40
STM32F10x_StdPeriph_Lib_V3.6.0

再次重申一下宇宙声明
1、所有讨论仅限个人学习与研究目的,以上是我个人研究学习的一些经验所得和知识分享。
2、请尊重ta人的劳动成果和知识产权,许老师既然没有选择把STM32 100Khz电桥的软件代码开源自然有ta自己的考量,本人深表理解和尊重。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 4家元 +215 收起 理由
zx367 + 30 以資鼓勵
yjmwxwx + 35 謝謝分享
vip2128 + 30
猪小呆 + 120

查看全部打赏

发表于 2026-2-8 11:58:14 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2026-2-8 12:44:02 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2026-2-8 13:06:10 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2026-2-8 13:23:57 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2026-2-8 13:51:07 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2026-2-8 13:56:13 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2026-2-9 01:42:21 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2026-2-9 09:47:25 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2026-2-9 11:02:33 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2026-2-9 15:39:30 | 显示全部楼层
游客请登录后查看回复内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-2-9 22:13:09 | 显示全部楼层
游客请登录后查看回复内容

打赏

参与人数 1家元 +56 收起 理由
xiaodaishu + 56 感谢老大的指导,现在有头绪了,看得懂代码.

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2026-2-10 04:46:35 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-2-10 20:47:58 | 显示全部楼层
游客请登录后查看回复内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2026-2-10 23:06:22 | 显示全部楼层
游客请登录后查看回复内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-2-10 23:58:42 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2026-2-11 08:52:07 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2026-2-11 09:36:32 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-2-11 15:02:54 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2026-2-11 15:17:04 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2026-2-24 16:35 , Processed in 0.358800 second(s), 16 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2026 MyDigit.Net

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