读书人

怎么让试用程序使用期限限制不被破解

发布时间: 2012-03-29 12:53:12 作者: rapoo

如何让试用程序使用期限限制不被破解
公司需要对现有的软件加入使用期限限制,比如,我给某一个客户的试用软件是100天的,过了100天就要求他续费。但是一般的情况下,无论你是写注册表还是使用加密数据库来设定,用户只需要重新设置一下时间,或重装软件,再或重装一次系统就能破解掉我们经过九牛二虎之力做的加密。有没有什么方法,可以让我的期限限制不被破解,哪怕他是重装系统?
当然我们知道若使用加密狗或GSM网络遥控等方式可以控制,前提是不使用这些方法,只用纯软件的方式。来解决我的问题?

[解决办法]
学习
[解决办法]
不被破解是不可能的,只要软件的全部功能能完整的在一台电脑上运行,就绝对能破解,微软的操作系统够牛了吧。
[解决办法]
难, 据对不被破解谁也不能保证。 你所能做的只是增加破解难度而已。

在不考虑狗的情况下,最好就是采用机器码 + 用户名 + 网络验证的方式。 如果也不能用网络验证的方式的话,肯定也能实现,不过自己写的话可能需要增加工程量才行。 先从网上搜搜看看有没有满足你要求的安装工具或加壳工具吧
[解决办法]
有一点是肯定的:你的软件必须得到一个用以判断是否在100天内的“标记点”。
既然系统重装都要不影响你的这个标记点,那只能记录到远程了。
[解决办法]

探讨
有一点是肯定的:你的软件必须得到一个用以判断是否在100天内的“标记点”。
既然系统重装都要不影响你的这个标记点,那只能记录到远程了。

[解决办法]
探讨
引用:
有一点是肯定的:你的软件必须得到一个用以判断是否在100天内的“标记点”。
既然系统重装都要不影响你的这个标记点,那只能记录到远程了。


写到硬盘指定磁道也是可以的, 只要不低格硬盘就会始终有效

[解决办法]
若有连接外网的话,网络验证即可
若只是本机,又想防住覆盖重装,那只能如上所说,写到磁道里去,否则对方Ghost+改时间无解
[解决办法]
将标记写到EXE文件中,每次运行次检测运行次数,结束时更新该标记;如果觉得往自身文件写内容麻烦的话,可以额外写个exe,由主exe退出前调用,主exe结束后,额外exe将主exe的运行次数更新;

这样就可以绕过重装系统,修改系统时间等破解方法;

缺点是强度太低,只能防菜鸟;有经验的跟踪一下找到这个标记的地址,修改一下就破掉了.


不能破解是不可能的.




[解决办法]
探讨
将标记写到EXE文件中,每次运行次检测运行次数,结束时更新该标记;如果觉得往自身文件写内容麻烦的话,可以额外写个exe,由主exe退出前调用,主exe结束后,额外exe将主exe的运行次数更新;

这样就可以绕过重装系统,修改系统时间等破解方法;

缺点是强度太低,只能防菜鸟;有经验的跟踪一下找到这个标记的地址,修改一下就破掉了.


不能破解是不可能的.




[解决办法]
唯一的办法是联网。(Windows 激活)

或者不管100天200天,设定一个最大期限,比如2010年1月。(Windows Beta 版本就是这么做的)
[解决办法]
探讨
引用:
将标记写到EXE文件中,每次运行次检测运行次数,结束时更新该标记;如果觉得往自身文件写内容麻烦的话,可以额外写个exe,由主exe退出前调用,主exe结束后,额外exe将主exe的运行次数更新;

这样就可以绕过重装系统,修改系统时间等破解方法;

缺点是强度太低,只能防菜鸟;有经验的跟踪一下找到这个标记的地址,修改一下就破掉了.


不能破解是不可能的.




我刻到光盘上运行,或者复制一份备份,被写入了就覆盖回去

其实时间限制是最容易被破解的一招,为何不试试功能限制?

[解决办法]
探讨
只用纯软件的方式

[解决办法]
对一般用户,你随便写写他们都无法破解;对于专业的黑客或红客,你怎么写都没用....

[解决办法]
这个基本上很难,特别在我们的国度
[解决办法]
如果一个软件,别人肯这么折腾、千方百计地使用它,哪么,你用加密狗又有何不可
[解决办法]
用网络时间验证是否到期
[解决办法]
没有绝对安全的方式,就像任何加密算法都可能被穷举法破解,只是投入成本是否值得。
结合软件的功能采取措施:

1)联网软件
每次登录用网络认证,服务端控制是否过期

2)与日期密切相关的软件(数据记录的键值中包含日期)
在所有输入、使用日期的地方,都限定不能超过某个期限(注意不能用全局常量,要在每个地方都直接用常数,常数的时分秒最好随机)。
即使修改系统时间,也只能处理过期数据,没意义。

3)数据量大的软件
用户不可能重装系统再输入数据,肯定要重用数据文件。


将加密后的限制信息写在数据文件中(要有多处)。
[解决办法]
安装的时候作额外的限制,或者设计一个小的辅助程序安装,没有这个,就算他备份了也没用.
自安装时开始计时(记录起来),改系统时间也没用,过了就超期.
[解决办法]

探讨
这个基本上很难,特别在我们的国度

[解决办法]
探讨
引用:
安装的时候作额外的限制,或者设计一个小的辅助程序安装,没有这个,就算他备份了也没用.
自安装时开始计时(记录起来),改系统时间也没用,过了就超期.

重新装系统之后,你这个办法就失效了。

[解决办法]
顶13楼
[解决办法]
dingding
[解决办法]
重装系统,也不能,是不可能的。。。
其他,有待商榷。。
[解决办法]
学习!写入磁道!
[解决办法]
楼主可以试试
VMProtect
应该有难度
[解决办法]
好久没见到老马了
[解决办法]
探讨
引用:
引用:
有一点是肯定的:你的软件必须得到一个用以判断是否在100天内的“标记点”。
既然系统重装都要不影响你的这个标记点,那只能记录到远程了。


写到硬盘指定磁道也是可以的, 只要不低格硬盘就会始终有效


呵呵!谢谢大家的回答,其实也不需要绝对,但增加他的破解难度也就可以了。

怎么写磁道?

[解决办法]
探讨
对一般用户,你随便写写他们都无法破解;对于专业的黑客或红客,你怎么写都没用....


[解决办法]
关注 学习
[解决办法]
Private Function HardInfo() As String

Dim sReturn As String
Dim objInst As Object, objChild

'BIOS
Set objInst = GetObject("winmgmts:").ExecQuery("Select * From Win32_BIOS")
For Each objChild In objInst
sReturn = objChild.Version
Exit For
Next

'硬盘
Set objInst = GetObject("winmgmts:").ExecQuery("Select * From Win32_DiskDrive")
For Each objChild In objInst
sReturn = sReturn & "|" & objChild.PNPDeviceID
'或者使用 DeviceID。但是 DeviceID 可能每次重新安装 Windows 后都会改变。
'sReturn = sReturn & "|" & objChild.DeviceID
Exit For
Next

HardInfo = sReturn
End Function

这是我之前网上搜的一段代码,得到硬件信息字符串以后,再按自己的算法得到机器码也即序列号
[解决办法]

[解决办法]
探讨
引用:
有一点是肯定的:你的软件必须得到一个用以判断是否在100天内的“标记点”。
既然系统重装都要不影响你的这个标记点,那只能记录到远程了。


写到硬盘指定磁道也是可以的, 只要不低格硬盘就会始终有效

[解决办法]
不会吧,这是我上一份工作做上位机软件时搜的一段代码,用于自己写的上位机软件的注册和注册机,各种系统均测试过,还在虚拟机里跑过繁体XP,打包给客户运行通过,不可能有死机问题吧?我刚刚又把那两个工程全部重新编译运行了一遍,没有任何问题啊
[解决办法]

程序启动、关闭和执行特定动作的时候,都记录和对比系统时钟。如果发现当前时钟早于记录,则是用户更改了,退出运行。

纯软件保护,关键在于你的记录隐秘性。我用过一个软件,到期后重装都不干活,就是找不到它记录的地方。有种说法,可以写到 CMOS 的空白区,换硬盘都不顶用。只是我没有试过。

[解决办法]

如果仅仅是增加破解难度的话,有很多方法。

众所周知,DLL 文件中有许多空白区,可以写东西的。CIH 病毒感染文件就是这么做的。而且它高潮发作时会写乱码到 CMOS。



你找一个不会经常升级的 Windows DLL,或者干脆自己写一个假的系统文件,首次运行时把机器识别编码和有效期的密文写到其中。

用户重装程序,必须同时重装系统才有用。如果能写到硬盘引导区的空白处,就更加强大,除非低格。

不过写硬盘和写 CMOS 这类事情,你要考虑好。陈盈豪写病毒时不用考虑用户机器崩溃的后果。你就不同了。让人家索赔就得不偿失了。

[解决办法]
完全可能,首先数据库尽量可能采用MSSQL或MYSQL等网络数据库,密码不能让用户知道,第二,系统表里加一表,用于检查是否到达100或某个设置值
[解决办法]
关注,直到解决...
[解决办法]
学习了
我以前搞了一个是用加密狗的方法,在里面加了三个时间点
[解决办法]
关注,直到解决...
[解决办法]
1.使用硬件加密狗:时钟狗,内部含有时钟芯片
2.使用“试用件”软加密,试用件时间限制位于磁道级,目前无法破解。开发过程也需要授权加密狗,软件发行不需要加密狗,只需要发行“试用件”
QQ:476833461
[解决办法]
如果是我,使用一个软件,每次启动的时候读取BIOS,cpu序列号,硬盘序列号....等等
我不敢用,也不会去用,如果是非要用,先破解了,不让他读取,再使用,然后分享出来
[解决办法]
你现在的问题关键点在于:记录放在哪里
解决了你的注册信息放在哪里的问题你的问题就解决了

有几个方案供参考:

1、网上验证,这个最保险,局限性是对方必须能上网
2、写数据库里,这个比较好,数据信息加密一下,只要别人不知道你的加密算法就没事,不过这个要找注册的地方简单,直接SQL跟踪一下就出来了。
3、写硬盘磁道,我原来也用这个方法,可是在实用中发现有些系统下不知道怎么回事,就是写不进去。(同样的2003系统,有的行有的不行)
4、加密狗,这个就是麻烦,如果客户试用不满意,退加密狗很麻烦
[解决办法]
确实比较麻烦,
1、通过网络与服务器的信息进行比对
2、还有就是把核心功能不放在试用程序中

不过我认为最好的就是把试用版软件安装在自己的服务器上,然后能过VPN或其它远程应用机制远程试用软件!这是让用户试用和保证软件不被破解的唯一有效手段了。

希望能帮你!!
[解决办法]
有什全能的方法了,微的系,都照常被破解。
於我,只能量加大破解的度,因不是所有客都能破解的件限制。
[解决办法]
说了那么多,都不如使用现成的加壳软件现实。

[解决办法]

探讨
引用:
说了那么多,都不如使用现成的加壳软件现实。



我主要是为了让使用者不能超期使用,过期了就不能使用。

[解决办法]
很早前网络验证这方法就已经不可靠了!
还记得02、03年的时候玩传奇,那时候出了个挂机外挂!
这外挂就是网络验证,后来出了一个免费的破解版!

据说这个版本的作者,首先用抓包工具抓到服务器IP地址
然后反汇编源程序,把服务器IP地址改成127.0.0.1
然后另外编写了一个服务端程序,来发送验证信息
[解决办法]
读取硬盘出厂日期,可以参考《希捷硬盘出厂日期计算源代码》.
[解决办法]
当你的“软件的价值”远远小于“破解所费的周折”的时候,我想就不会有人去破解你的软件了
就比如写个计算器也做个时间限制,你觉得会有人去破解它吗?
[解决办法]

呵呵,我的方法是在用户的每个或多个分区中生成同一文件~!当然这些文件的存放是比较隐藏的,

程序运行的时候就检查这些文件中1个或N是否相同或存在,不同的或是数量不够的,就是试用~~~

重装是吧,?不可能每个盘都格完吧,呵呵,~怕误删是吧,可以检测多个文件~~嘿。。

我是屡试屡爽,呵呵,你看吧。当然了,你的程序要壳得变态些~~~
[解决办法]
学习了。。。。
[解决办法]
不懂,
中;

读书人网 >VB

热点推荐