1.一种软件保护方法,其特征在于,应用于目标软件的客户端,包括:
在接收到针对目标软件的使用指令时,获得所述目标软件的注册码;
将所述注册码和自身所在终端的机器码发送给服务器,以使所述服务器在映射表中查询是否存在与所述注册码和所述机器码相匹配的对应关系项,如果是,则向所述客户端返回所述目标软件对应的业务代码串,如果否,则在确定所述注册码为合法注册码后,在所述映射表中记录所述注册码和所述机器码的对应关系项,并执行所述向所述客户端返回所述目标软件对应的业务代码串的步骤;
接收所述服务器返回的所述目标软件对应的业务代码串;
获得所述业务代码串包含的若干个业务代码段;
将获得的业务代码段分别还原至所述目标软件的源代码的相应位置处,以启动所述目标软件,使用户正常使用所述目标软件。
2.根据权利要求1所述的软件保护方法,其特征在于,所述获得所述目标软件的注册码,包括:
查询本地是否保存有所述目标软件的注册码;
如果是,则获得本地保存的所述目标软件的注册码;
如果否,则输出注册窗口,并接收用户在所述注册窗口输入的注册码。
3.根据权利要求2所述的软件保护方法,其特征在于,在查询本地未保存有所述目标软件的注册码的情况下,在所述启动所述目标软件之后,还包括:
在本地保存所述目标软件的注册码。
4.根据权利要求1至3任一项所述的软件保护方法,其特征在于,所述业务代码串为经过加密处理的业务代码串,所述获得所述业务代码串包含的若干个业务代码段,包括:
对所述业务代码串进行解密处理;
将解密后的业务代码串拆分为若干个业务代码段。
5.根据权利要求4所述的软件保护方法,其特征在于,所述业务代码串包含的业务代码段为所述目标软件的关键业务功能的代码段。
6.一种软件保护装置,其特征在于,应用于目标软件的客户端,包括:
注册码获得模块,用于在接收到针对目标软件的使用指令时,获得所述目标软件的注册码;
注册码发送模块,用于将所述注册码和自身所在终端的机器码发送给服务器,以使所述服务器在映射表中查询是否存在与所述注册码和所述机器码相匹配的对应关系项,如果是,则向所述客户端返回所述目标软件对应的业务代码串,如果否,则在确定所述注册码为合法注册码后,在所述映射表中记录所述注册码和所述机器码的对应关系项,并执行所述向所述客户端返回所述目标软件对应的业务代码串的步骤;
业务代码串接收模块,用于接收所述服务器返回的所述目标软件对应的业务代码串;
业务代码段获得模块,用于获得所述业务代码串包含的若干个业务代码段;
业务代码段还原模块,用于将获得的业务代码段分别还原至所述目标软件的源代码的相应位置处,以启动所述目标软件,使用户正常使用所述目标软件。
7.根据权利要求6所述的软件保护装置,其特征在于,所述注册码获得模块,具体用于:
查询本地是否保存有所述目标软件的注册码;
如果是,则获得本地保存的所述目标软件的注册码;
如果否,则输出注册窗口,并接收用户在所述注册窗口输入的注册码。
8.根据权利要求7所述的软件保护装置,其特征在于,还包括:
注册码保存模块,用于在查询本地未保存有所述目标软件的注册码的情况下,在所述启动所述目标软件之后,在本地保存所述目标软件的注册码。
9.根据权利要求6至8任一项所述的软件保护装置,其特征在于,所述业务代码串为经过加密处理的业务代码串,所述业务代码段获得模块,具体用于:
对所述业务代码串进行解密处理;
将解密后的业务代码串拆分为若干个业务代码段。
10.根据权利要求9所述的软件保护装置,其特征在于,所述业务代码串包含的业务代码段为所述目标软件的关键业务功能的代码段。