首页
社区
课程
招聘
[讨论]软件使用次数限制,如何在离线模式下保证安全?
发表于: 2015-5-30 01:42 10823

[讨论]软件使用次数限制,如何在离线模式下保证安全?

bxc 活跃值
6
2015-5-30 01:42
10823

软件使用次数限制,如何在离线模式下保证安全?

打算设计一个软件,通过文件或者注册表的方式,保存使用次数的信息(加密)。
如何能保证这些数据不会被备份、还原的方式来刷使用次数的限制?

这个问题好像无解0.0

有考虑过根据文件修改时间来判断,但是文件修改时间也是可以修改的。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 3
支持
分享
最新回复 (17)
雪    币: 127
活跃值: (2803)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没有绝对的安全
2015-5-30 02:32
0
雪    币: 511
活跃值: (353)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
3
好像确实没有什么好办法
2015-5-30 07:27
0
雪    币: 16455
活跃值: (1725)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
既然要保存记号于本地,何来安全?
有记号除掉自然就没记号,2者天生的对立面
2015-5-30 11:36
0
雪    币: 878
活跃值: (496)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
目前硬件辅助加密方式比较可靠, 但是完全可靠的没有
2015-5-30 11:37
0
雪    币: 1626
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我也觉得不怎么可靠...
2015-5-30 12:11
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
7
说的有道理
2015-5-30 13:32
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
8
嗯。我这是纯软件实现的,没有辅助硬件。
2015-5-30 13:47
0
雪    币: 1294
活跃值: (1078)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
以前也“被”搞过,感觉功能确实有点恶心,甚至怀疑提出这个需求的人忒么脑袋被门缝夹了。。。

后来没办法,想了很多方法,始终都只是在权衡利弊问题上纠结,文件、注册表等等

不过当时猥琐流了一点,在EXE末尾面追加自定义数据(不会影响运行),这样可以保证发布的时候能独立,不带任何“拖油瓶”...

双击启动的时候实际上是自我拷贝,然后带参数启动临时EXE,这样可以检测到是带参数启动的临时文件,才真正运行

然后EXE就可以操作原始文件了,记住,启动子进程的时候把它独占,因为你要改他PE末尾中的次数。。。

调试起来,感觉比这需求还蛋疼,反正我算是忍了~~
2015-5-30 14:29
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
10
这个方法不错,不过可不可以使用UnlockFileEx系列函数,在运行中解锁进程自身,达到自修改的目的呢?
2015-5-30 16:13
0
雪    币: 16455
活跃值: (1725)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
楼主我想到了一个阴毒的方法
说的不对地方楼下别怪啊
硬盘都有引导区信息,可那是个危险的地带,可以尝试修改下(在许可的范围内)
然后再用你的软件改之加记号,一般regshot和文件比较工具是没有啥办法的
当年用Trw2000调试VOPT时有那个兰屏跟重启的陷阱
那硬盘信息可不是想改闹着玩的地方,你说呢?
2015-5-31 07:57
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
12
这个有点狠了,能实现的话,肯定可以。
但是现在新版本的系统,好像不允许修该MBR吧,另外也容易导致系统启动失败或被杀软干掉0.0
2015-5-31 11:22
0
雪    币: 1042
活跃值: (500)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
程序运行一次写入日期+次数~
2015-5-31 13:26
0
雪    币: 11
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
用加密狗呗
2015-5-31 18:28
0
雪    币: 291
活跃值: (213)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
15
理论上讲,单纯本机的,无解。

不考虑联网,也有一些措施可以增加破解难度。具体采用哪个,要看你的软件价值有多高,值得用多强的保护措施。比如,面向大众的,就不值得用太强的保护措施。如果是用户很专业,很少,单份价值很高的,可以适当提高保护强度。
常见的措施有:
1. 一般的防破解保护。例如反调试、混淆等,可以提高分析难度,让破解者不容易分析出存放次数的位置。适合一般软件。
2. 适当增加试用次数存放位置的数量,并提高隐秘性。例如,多放几个位置,几个位置联合校验,程序自修改等。适合一般软件。不过,非常不建议存放在MBR中。理由是,首先,MBR是很隐秘,但那是针对病毒而言,对正常软件而言,这个位置太特殊了,因为除了操作系统自己、一些安全软件以及病毒外,几乎不会有软件会触碰。如果是有人想破解,很容易注意到这个位置。其次,这个位置,是各个杀软、主防等监控的重点。贸然去碰它,很容易被主防当成危险行为挡下来。最后,MBR比较复杂和脆弱,容错性差,修改出错会导致系统出现严重问题。
3. 利用辅助硬件,比如加密狗。成本高,应用得当的话,保护强度会比较高。适用于价值很高的专业软件。
4. 使用次数限制,能否改成其他的?例如模仿IDA的做法,试用版功能有阉割,没有保存的功能,而且会随机超时退出。
2015-6-1 03:29
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
16
感谢建议!
2015-6-1 12:03
0
雪    币: 511
活跃值: (353)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
17
这个好,学习下
2015-6-2 07:31
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
我最近破解的一套商业软件的思路可以参考,它把时间序列化到文件格式中,每次打开去读取文件时间,这样就不用考虑文件属性内时间;
2015-7-30 17:39
0
游客
登录 | 注册 方可回帖
返回
//