WhyCan Forum

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132, 微信: whycan_cn (哇酷网/挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2018-08-18 21:40:11

posystorage
会员
注册时间: 2018-05-06
累计积分: 87

最近在逆向一个stm32的程序的时候的一点点心得

前两天在看一个别人搞的程序,手上只有Hex,所以就直接用IDA来反汇编看了。有些心得给大家随便说说

这个程序很明显是有ST官方提供的标准库开发的,运行在STM32F072上面

库函数开发确实容易,但是给逆向 一定程度上也带来了极大的容易
几个原因
1:如果查看过keil生成的map文件,就可以知道ARMCC的链接器(link)在生成可执行文件的时候,函数的排列是按照字母顺序来的。
比如说,这个程序的开发者用到了USB的HID功能,所以我强行用官方的hid库函数历程编译了一个程序,查看编译完MAP文件
很明显的按字母顺序排列
图片
QQ20180818201634.jpg
2:ST的库函数(不管标准库,hal库等等),他的函数命名方式都是为 外设名字_xxx功能
比如GPIO_DeInit GPIO_Init GPIO_ReadInputData等等,用过的都知道
那么结合第一条 这一个外设的库函数内容 必定会被安排在一起

3:熟悉库函数的,经常用的,对函数的功能基本上都比较了解。
对比C写的内容,用十几秒,一分钟就能确定这个函数的名字,直接重命名函数为库里面的名字
这样节约了大量的时间去自己分析这个函数是干嘛的(如果不是库函数,一个函数的内容,往往要花少则几分钟,多则小半天的时间去研究他的运行机理)
虽然汇编用熟了不难,但是确实不友好。

QQ20180818203626.jpeg

这里随便贴一贴这个被完全逆向完的程序。所以函数都被完全的读懂在干嘛(即被重命名)
这个程序只花了不到48小时,就被完全捅穿了。所有明锁,暗锁,加密都像被衣服脱干净了一丝不挂的曝光在大摄像机镜头下
打码的函数是作者自己写的私有内容,为了保护,就打码了,没打码的都是库函数
图片
图片
图片
图片
图片
图片
说这么多,抛出个问题,让大家自己想,我不说,怎么样写程序,才是不容易被逆向破解的?欢迎大家畅所欲言

最近编辑记录 posystorage (2018-08-18 21:42:17)

离线

#2 2018-08-18 21:43:12

posystorage
会员
注册时间: 2018-05-06
累计积分: 87

Re: 最近在逆向一个stm32的程序的时候的一点点心得

顺便吐槽一句 这个论坛啥都好,就是图片上传真的太蛋疼了 mad mad

最近编辑记录 posystorage (2018-08-18 21:43:46)

离线

#3 2018-08-18 21:48:01

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,551

Re: 最近在逆向一个stm32的程序的时候的一点点心得

非常感谢楼主的经验分享, 图片上传的问题我们尽快搞定,多谢支持!

离线

#4 2018-08-18 21:53:56

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,551

Re: 最近在逆向一个stm32的程序的时候的一点点心得

逆向最怕的就是那种要某种条件达到才能被爆发的问题,
比如开机1000次后,要输入一个验证码,
这种很隐蔽的问题破解的时候未必能预测到。

离线

#5 2018-08-18 22:04:20

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,551

Re: 最近在逆向一个stm32的程序的时候的一点点心得

以前用 x64dbg 破解过PC Windows 软件,
那时候还没搞 whycan.cn,所以没有记录,
现在步骤都忘记了  smile 捂脸


改天再试一试

离线

#6 2018-08-18 23:28:10

posystorage
会员
注册时间: 2018-05-06
累计积分: 87

Re: 最近在逆向一个stm32的程序的时候的一点点心得

晕哥 说:

逆向最怕的就是那种要某种条件达到才能被爆发的问题,
比如开机1000次后,要输入一个验证码,
这种很隐蔽的问题破解的时候未必能预测到。

这个程序本身不算大,全部把他弄懂要的时间不长。当然程序大了那不一样了

离线

#7 2018-08-19 00:26:53

达克罗德
会员
注册时间: 2018-04-10
累计积分: 667

Re: 最近在逆向一个stm32的程序的时候的一点点心得

产品要有硬件以外的附加值和生态圈绑定用户,这样抄了硬件,也没有威胁
不断更新升级,走在破解者的前头,增加破解者的破解成本

离线

#8 2018-10-24 14:05:43

apleilx
会员
注册时间: 2018-10-23
累计积分: 34

Re: 最近在逆向一个stm32的程序的时候的一点点心得

加密算法是怎么破解出来的,一般加密运算后不是都把自身删除了吗?难道你拿的是原厂的HEX,不是从MCU读出来的?

离线

#9 2018-10-25 09:36:33

真的是很烦
会员
注册时间: 2018-10-08
累计积分: 106

Re: 最近在逆向一个stm32的程序的时候的一点点心得

待逆向的内容怎么会有那么多符号信息在里面?  拿到的是obj?

离线

#10 2018-10-25 09:45:03

v3s
会员
注册时间: 2017-09-08
累计积分: 105

Re: 最近在逆向一个stm32的程序的时候的一点点心得

真的是很烦 说:

待逆向的内容怎么会有那么多符号信息在里面?  拿到的是obj?

是哦,不说我还没发现。

离线

#11 2019-02-22 17:27:16

ruimin
会员
注册时间: 2019-02-22
累计积分: 1

Re: 最近在逆向一个stm32的程序的时候的一点点心得

感觉你们好强大,努力学习

离线

#12 2019-11-30 22:58:48

armstrong
会员
注册时间: 2019-04-10
累计积分: 17

Re: 最近在逆向一个stm32的程序的时候的一点点心得

请问楼主,您这是什么软件?
这是什么软件?

离线

#13 2019-12-01 12:13:08

微凉VeiLiang
会员
注册时间: 2018-10-28
累计积分: 181

Re: 最近在逆向一个stm32的程序的时候的一点点心得

armstrong 说:

请问楼主,您这是什么软件?
https://whycan.cn/files/members/1592/QQ20180818203626.jpeg

IDA Pro

离线

#14 2019-12-01 13:37:55

armstrong
会员
注册时间: 2019-04-10
累计积分: 17

Re: 最近在逆向一个stm32的程序的时候的一点点心得

微凉VeiLiang 说:

IDA Pro

谢谢!
我买过一本《IDA Pro 权威指南(第2版)》一直吃灰中,软件长啥样都不知道;只知道这工具是破解的好工具。

离线

页脚