你的产品安全吗?--写给那些天真的工程师

[复制链接]
3399|18
 楼主| Simon21ic 发表于 2013-6-13 03:43 | 显示全部楼层 |阅读模式
本帖最后由 Simon21ic 于 2013-6-13 19:18 编辑

首先,为别人做个广告,虽然技术很简单,产品也不一定热卖,不过,下面会分析一下他的binary代码:
https://bbs.21ic.com/forum.php?mod=viewthread&tid=434231
既然分析了别人的代码,那也为他贡献一些东西吧:
STM32的uclinux移植,虽然可以使用,但是核心内存管理部分有致命的BUG,修复方法如下:
uClinux-dist/linux-2.6.x/include/asm-arm/memory.h中,找到
#define PHYS_PFN_OFFSET    (PHYS_OFFSET >> PAGE_SHIFT)
改成:
#define PHYS_PFN_OFFSET    (CONFIG_EXTERNAL_RAM_BASE >> PAGE_SHIFT)
原理是,由于是plat的内存构架,所以linux可管理的内存从0x68000000开始,而不是从0x20000000开始。

当然,只分析一些简单的,ST没有公开的东西(虽然也非常简单),我也不会公开。
另外,本帖只是演示要**cortex-m的binary有多容易,并且,不会回答任何问题。

废话不多说,简单演示一下,怎么分析别人的binary代码,得到想要的东西:
首先,中断向量:
vector.png
好的,程序入口在0x08000145,去那边看看:
entrance.png
已经经过一些简单的分析了,那个mem_init其实是mem_init_and_jump_to_main
jump2main.png
到了main后......
main.png
默认9600的baudrate是不是慢了一些?
当然,我不需要分析这么多,我只需要得到载入uclinux的代码,看看是否有什么特殊操作。
说明文档中,jump命令用来进入uclinux,那就简单搜索字符串“jump"
jump.png
之后貌似就没什么问题了,另外,顺便说一下,真正要**你的程序的人,不是这么看汇编的,而是这么看的:
diagram.png
jump的代码就在这个图中:
diagram_jump.png
jump的代码序号是7,然后,看后面:
diagram_jump_handler.png

分析汇编代码很难吗?随便弄一段短的给你们看看吧:
strlen.png

对于合格的黑客,这种反汇编就像玩一样,**的时间,是用分钟来计算的。

有人可能会说什么AES,DES等加密算法,我说这些公开的算法只是shit。
AES调用前,一般会有s-box和反向的s-box,如果使用标准的,一看s-box,马上就知道,即使使用自定义的,AES_prepare的算法的分析,也可以用分钟来算**时间。
DES的话,就更加简单了,key更短。3DES只不过调用3次DES。

写在后面,你是怎么保护你的产品的呢?
一些基本的扩展阅读:暴力**,花指令
wxlhonker 发表于 2013-6-13 12:36 | 显示全部楼层
好强大啊,表示看不懂
yinyangdianzi 发表于 2013-6-13 13:52 | 显示全部楼层
没有安全的产品了
mmuuss586 发表于 2013-6-13 17:38 | 显示全部楼层
我的比较简单。
dong_abc 发表于 2013-6-13 19:08 | 显示全部楼层
裸奔,从不刻意保护!
缥缈九哥 发表于 2013-6-13 19:34 | 显示全部楼层
产品 足够简单,你**了出量产不到市场 。
缥缈九哥 发表于 2013-6-13 19:41 | 显示全部楼层
天天改变产品的硬件软件 ,不断升级程序
rockli 发表于 2013-6-13 21:29 | 显示全部楼层
单纯的比较、跳转是最简单、最容易**的。太初级了。
复杂一点的加密就没那么简单了
cjhk 发表于 2013-6-13 21:57 | 显示全部楼层
这一块不是很了解   需要学习学习   顶一个  谢谢了   楼主   好好
s99060 发表于 2013-6-13 22:07 | 显示全部楼层
那个分析工具是啥?
缥缈九哥 发表于 2013-6-13 22:35 | 显示全部楼层
IDA,好像没有看到楼主有什么惊人的秘诀呀。
 楼主| Simon21ic 发表于 2013-6-13 22:38 | 显示全部楼层
缥缈九哥 发表于 2013-6-13 22:35
IDA,好像没有看到楼主有什么惊人的秘诀呀。

嘿嘿,本来就没什么秘诀
STARM 发表于 2013-6-14 08:30 | 显示全部楼层

好强大啊,
chen282220981 发表于 2013-6-14 10:41 | 显示全部楼层
原野牧歌 发表于 2013-6-14 21:38 | 显示全部楼层
不知道怎么突然看到这儿了,ARM之类的**,只要能够读出ROM,总有办法,所以从来不能靠这个,现在的都是怎么样写死,要吗不要怕,不为这个加密费工夫。
lenglx 发表于 2013-6-26 19:56 | 显示全部楼层
楼主要表明什么不安全啊?
binary 被拿到不安全? 亦或是指 binary的代码本身有漏洞不安全? 或者是指binary里面的加密方式不安全?
另外: 貌似上面的分析,不是针对真正的binary, 而是elf文件.
xsgy123 发表于 2013-6-26 19:57 | 显示全部楼层
**写的不错
cjhk 发表于 2013-6-26 20:52 | 显示全部楼层
**好好看看   谢谢了   楼主   很不错  
lxyppc 发表于 2013-6-26 22:42 | 显示全部楼层
确实如此,读出rom后,反编译很容易
您需要登录后才可以回帖 登录 | 注册

本版积分规则

266

主题

2597

帖子

104

粉丝
快速回复 在线客服 返回列表 返回顶部