发新帖我要提问
123
返回列表
打印

天下无贼--我也来说说怎样打造安全的防**系统

[复制链接]
楼主: hotpower
手机看帖
扫描二维码
随时随地手机跟帖
41
xwj| | 2007-11-14 00:06 | 只看该作者 回帖奖励 |倒序浏览

天下无贼--我也来说说怎样打造安全的防**系统

老Hotpower讲的手段还是太简单了,不会增加太多的破解难度哦
没双向交互时PC路径就一定是死的,用虚拟机跑一趟就全出来了

稍微智能一点的反编译器都会尝试每个条件的分支,总有正确的,再稍微人工干涉一下就能找到入口了

因此反汇编只能对付下一般的反编译手段罢了

大多反编译器,没有入口的会当成数据段,从而丢失很多程序段
其实只要对没认出的数据段逐个字节开始假设、反汇编,判断RET和跳转的合法性,就能很容易的尝试出隐藏的入口的

不过51的指令有单字节、双字节、3字节的,存在指令对齐问题,一般反编译器要么当数据要么当地址,真要对付它应该搞出一段虚虚实实、你套我我套你的迷宫代码,让自动反汇编或人工反汇编的都转的晕头转向
以显著增加别人破解的难度和工作量


一直觉得,要真正反破解的话需要一整套的必要手段:
1、程序明码、暗码的版权显示,既保证起诉条件也逼着别人不得不去改代码;
2、程序完整性检测、陷阱,并分散到程序的各个关键点上,逼得别人改代码时非得去仔细分析你的各个陷阱,增加他的工作量;
3、 尽量采用多个难以破解读出的器件,双先握手动态生成程序入口甚至代码,把程序入口藏入真正的数据段中,并用花指令增加程序的可读性,破坏机器反汇编、人工反汇编以及虚拟机运行的条件,让破解者去伤神吧;
4、利用51的指令单字节、双字节、3字节的指令对齐问题,指令、数据中套指令,搞出一段虚虚实实、你套我我套你的迷宫代码,让自动反汇编或人工反汇编的都转的晕头转向
5、硬件欺骗、器件欺骗、在辅助别的心理弱点欺骗,这个就看各人的智慧了

让别人不能破解的关键前提还是第3点:尽量采用多个难以破解读出的器件,这点不能保证的话一切都是免谈



要做一套完整的反破解程序是非常费神的事,想让别人花多少精力破解自己也要花差不多同样多的精力来设计,除非是关键技术,否则一般懒得费这个神:-)
主要还是靠保证产品的更新速度、性价比、竞争力等来占领市场,间接的让别人的破解变得无意义才是上策


矛和盾的较量一定得充分利用人的心理,真真假假、虚虚实实的去玩人、玩死机器:-)

很多点子说穿了就没意思了,
再深层次的秘密武器还是私下讨论吧:-)

使用特权

评论回复
42
hotpower|  楼主 | 2007-11-14 00:50 | 只看该作者

我晕~~~江洋大盗都来了~~~

使用特权

评论回复
43
IceAge| | 2007-11-14 01:34 | 只看该作者

若要天下无贼,除非偷不到

总而言之一句话:偷不到才是抗反汇编的终极武器。

51,也针对大多数简单的 mcu, 只要被读出,防反汇编,仅有理论探讨意义,没有任何实际意义。

xwj:想法不错,对于 51 这种程序复杂度不高的系统来说,迷宫代码给自己造成的麻烦比给别人造成的麻烦要多。另外,用蒙特卡洛法,对调用/跳转进行随机测试,很快就可以得到近乎完整的跳转分支出入口表,从而得到近乎完整的反汇编代码 --- 反正,机器不知道疲倦。


使用特权

评论回复
44
洪七公| | 2007-11-14 01:36 | 只看该作者

哈哈~~~俺想能治安好些即可,否则俺到那去收选票去???

使用特权

评论回复
45
xwj| | 2007-11-14 01:38 | 只看该作者

所以我才说:

让别人不能**的关键前提还是第3点:尽量采用多个难以**读出的器件,这点不能保证的话一切都是免谈



只有让别人读不出,才能保证不被**,否则最多也就是给别人增加点难度罢了

使用特权

评论回复
46
洪七公| | 2007-11-14 01:43 | 只看该作者

倒塌了~~~你们都没搞明白俺的心~~~先来看看这个

我说得是就是这个~~~
相关链接:https://bbs.21ic.com/club/bbs/ShowAnnounce.asp?id=2752466

使用特权

评论回复
47
edanzg| | 2007-11-14 01:46 | 只看该作者

就冲xwj 41楼的这篇帖子,我也要拼命去帮你拉票了,

PS.以后我接到芯片就送给你吧。

使用特权

评论回复
48
yzqok| | 2007-11-15 17:21 | 只看该作者

学习向上

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则