首页
社区
课程
招聘
我的加密愚见--地毯式加密
发表于: 2006-8-14 17:24 5245

我的加密愚见--地毯式加密

2006-8-14 17:24
5245
暴力破解过几个小软件,不禁要问:为何程序如此脆弱?
想来想去,想起一个亲戚得了弥漫性肾结石,不是一个,是无数个,像沙子一样,不能开刀,除非全部切除。
基于此道理,我们的程序何不采用此方法保护?在每个事件中都加入用户名和序列号检查代码,采用不同算法测试序列号的不同部分。这样就增加了破解难度和速度,如果需要修改源程序50处甚至更多才能破解,对大多数cracker们也是考验。各处如能相互校验就更好了。
虽有悖于执行效率,但对于一些小程序来说,还是值得的。现在电脑这么快,用户感觉不到的。

我设想这样,如果软件发现自己某处被修改,提出警告:“请停止破解”。再深入的部分被破解,提示将删除硬盘文件(恶作剧,不是真的删除)。检验自身比较难,小软件就不需如此了。
不知大家看法如何?

注:不同程序段验证同一个序列号的不同部分,采用不同的验证算法。这是一个机关无处不在的方法。目前很多软件只有一个验证函数,是脆弱的。
或者用户输入一个验证列号后,将序列号分解保存在不同的地方,分开检验。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 89
活跃值: (151)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
那看看还有几个人会用你这个软件 心有余悸啊
2006-8-14 18:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
你可能没有编程过,小程序一般就是随手写的东西,而界面等等是控件等自动生成的,要是写一个函数作为加密模块,各个地方调,那么人家就打了你加密函数就爆掉了,要是写很多很多效验模块,那么windows的消息机制会让写程序的顾此失彼,
你总有一个注册码还是N个注册码?N个就等于不光用的人烦恼,开发者也烦恼.
要是只用一个,还是回到上面的问题了.
2006-8-14 18:04
0
雪    币: 233
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
你这种思路感觉有点不实用~

还不如将注册验证过程分散到多个过程中,譬如启动时校验注册码的一部分,注册时验证注册码的另一部分...这样要解除所有暗桩会很累的。  
2006-8-14 18:18
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ToT
5
不够实用。首先,可以试试推注册码,不用暴力吧,呵呵。另外,你用同样的方法验证,必然有相同的指令,这样的话只要找特征代码,然后修复就可以了,非常快。根本不用想着下断点啥的
2006-8-14 18:49
0
雪    币: 1334
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
暗桩曾经不少软件用这手
但是有几个问题需要你注意,
第一个是 安装对象不应该去效验什么用户名和密码,应该效验 整个加密模块部分的Hash算法值,鉴于 MD5和SHA之类的Hash初始值会被从内存中找到,这样就知道你用的Hash了。所以建议使用变形算法Tiger、Haval等一类的怪异算法。

第二个是,提出警告:“请停止破解”。 我读过这个故事,有人把银子埋藏地下,上面留字写道:“此地无银三百两”。邻人阿二偷走了银子,也留字写道:“隔壁阿二不曾偷”。

第三个是 暗桩不是在编程时全部加进去的,二是需要先将程序编译出来,再用机械语言修改程序,埋设暗桩;
2006-8-14 19:11
0
雪    币: 179
活跃值: (131)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
7
把你验证函数暴破掉,永远通过,哭死你
2006-8-14 20:15
0
雪    币: 86
活跃值: (1043)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
如果有恶意代码,你说杀毒软件会不会将你的程序死为病毒呢
2006-8-14 20:21
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
“不要以为自已的软件对这个世界有多么的重要!”
没有你的软件别人照样会正常的生活!
2006-8-14 21:05
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
10
天真的想法
一看楼主就是不会编程的
2006-8-15 02:55
0
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
路过,随便看看,
2006-8-15 03:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
呵呵 热闹  无语中
2006-8-15 07:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
祝楼主早日实现
2006-8-15 08:59
0
雪    币: 225
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
弥漫性肾结石~~
我觉得lz的方法可行哦,支持LZ
也许我也不懂编程
2006-8-15 09:11
0
雪    币: 200
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
如果楼主开发了N个软件,一个软件有M个注册码,对M*N个注册码的管理也够楼主操心了!
2006-8-15 09:41
0
雪    币: 245
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
想法很有创意
可以给用户一个 Key 文件。包含有用信息和垃圾信息

#define 几个检测 不同 文件段的 函数  一定要#define 或者用inline也可以

在程序中添加10000个函数,分别检测Key文件的不同地方,

Key文件不能有规律。

大家觉得如何呢?有空写个CrackMe :)
2006-8-15 10:59
0
游客
登录 | 注册 方可回帖
返回
//