一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

动态库调用方法、装置、终端设备以及存储介质与流程

2021-10-24 07:42:00 来源:中国专利 TAG:
1.本技术涉及互联网
技术领域
:,尤其涉及一种动态库调用方法、装置、终端设备以及存储介质。
背景技术
::2.随着软件改变一切的来临,软件越来越强大,软件的功能不断升级时,通常会收取一定的费用,为企业获取更多的利润。3.在软件升级的过程中,为了更好的用户体验,通常不会删除用户之前的配置,例如鉴权码,身份认证文件之类的数据,只会升级相关的应用和动态库,方便用户升级后就直接使用。这样就给了一些盗版者可乘之机,这样就给了一些盗版者可乘之机,盗版者可以升级一台合法的设备后,或者购买一台装载新版本软件的设备,将该设备中的动态库文件拷贝出来,替换其他设备中动态库,达到不用交钱,就可以享受升级的目的。现有技术中,动态库的安全性无法得到保障。技术实现要素:4.本技术实施例提供一种动态库调用方法、装置、终端设备以及存储介质,可防止动态库被非法拷贝到其他的设备上。5.本技术一方面提供了一种动态库调用方法,包括:6.读取目标动态库中的目标字段以及访问设备的访问设备特征值;所述目标动态库中的目标字段用于存储合法设备的合法设备特征值;7.若所述访问设备特征值存储于所述目标字段中,则调用所述目标动态库;8.若所述访问设备特征值未存储于所述目标字段中,则破坏所述目标动态库。9.进一步地,在所述读取目标动态库中的目标字段之前,还包括:10.在初始动态库中增加所述目标字段;11.获取所述合法设备的合法设备特征值;12.将所述合法设备特征值写入所述目标字段,得到所述目标动态库。13.进一步地,所述在初始动态库中增加所述目标字段之后,还包括:14.将所述目标字段进行数据初始化;15.所述获取所述合法设备的合法设备特征值之前,还包括:16.检测所述目标字段是否为初始化数据;17.若是,则执行所述获取所述合法设备的合法设备特征值以及将所述合法设备特征值赋值到所述目标字段的步骤。18.进一步地,所述将所述合法设备特征值写入所述目标字段,得到所述目标动态库,包括:19.将所述初始动态库读取到内存中;20.解析所述初始动态库,获取所述目标字段的地址和长度;21.根据所述目标字段的地址和长度,将所述目标字段中的初始内容替换为所述合法设备的合法设备特征值,得到更新后的内存数据;22.将所述更新后的内存数据保存到临时文件中;23.删除所述初始动态库;24.将所述临时文件命名为所述目标动态库的名称。25.进一步地,所述将所述合法设备特征值写入所述目标字段,得到所述目标动态库,包括:26.若合法设备的数量为至少两个,则将至少两个合法设备的合法设备特征值进行首尾拼接,得到拼接设备特征值,将所述拼接设备特征值赋值到所述初始动态库中的目标字段,得到所述目标动态库。27.进一步地,所述破坏所述目标动态库文件,包括:28.生成与所述目标动态库大小相等的随机数据,根据所述随机数据生成无效数据动态库;将所述目标动态库替换为所述无效数据动态库。29.进一步地,所述生成与所述目标动态库文件大小相等的随机数据,包括:30.以系统时间或系统熵池的数值或硬件的唯一识别码为参数,生成系统自带的随机函数;31.根据所述系统自带的随机函数生成与所述目标动态库大小相等的随机数据。32.本技术一方面提供了一种动态库调用装置,包括:33.读取模块,用于读取目标动态库中的目标字段以及访问设备的访问设备特征值;所述目标动态库中的目标字段用于存储合法设备的合法设备特征值;34.调用模块,用于若所述访问设备特征值存储于所述目标字段中,则调用所述目标动态库;35.破坏模块,用于若所述访问设备特征值未存储于所述目标字段中,则破坏所述目标动态库。36.进一步地,动态库调用装置还包括:37.字段增加模块,用于在初始动态库中增加所述目标字段;38.获取模块,用于获取所述合法设备的合法设备特征值;39.赋值模块,用于将所述合法设备特征值赋值到所述目标字段,得到所述目标动态库。40.进一步地,动态库调用装置还包括:41.初始化模块,用于将所述目标字段进行数据初始化;42.检测模块,用于检测所述目标字段是否为初始化数据,若是,则通知所述获取模块获取所述合法设备的合法设备特征值。43.其中,所述赋值模块,具体用于将所述初始动态库读取到内存中,解析所述初始动态库,获取所述目标字段的地址和长度,根据所述目标字段的地址和长度,将所述目标字段中的初始化数据替换为所述合法设备的合法设备特征值,得到更新后的内存数据,将所述更新后的内存数据保存到临时文件中,删除所述初始动态库,将所述临时文件命名为所述目标动态库的名称。44.其中,所述赋值模块,具体用于若合法设备的数量为至少两个,则将至少两个合法设备的合法设备特征值进行首尾拼接,得到拼接设备特征值,将所述拼接设备特征值赋值到所述初始动态库中的目标字段,得到所述目标动态库。45.其中,所述破坏模块,具体用于生成与所述目标动态库大小相等的随机数据,根据所述随机数据生成无效数据动态库,将所述目标动态库替换为所述无效数据动态库。46.其中,所述破坏模块,具体用于以系统时间或系统熵池的数值或硬件的唯一识别码为参数,生成系统自带的随机函数,根据所述系统自带的随机函数生成与所述目标动态库大小相等的随机数据。47.本技术另一方面提供了一种终端设备,包括:处理器、存储器以及网络接口;48.所述处理器分别与所述存储器和所述网络接口相连,其中,所述网络接口用于连接终端设备,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如本技术实施例中一方面中的方法。49.本技术另一方面提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如本技术实施例中一方面中的方法。50.本技术实施例通过获取目标动态库中的目标字段,读取所述访问设备的访问设备特征值,所述目标动态库中的目标字段用于存储合法设备的合法设备特征值;若所述访问设备特征值存储于所述目标字段中,则调用所述动态库;若所述访问设备特征值未存储于所述目标字段中,则破坏所述目标动态库。本技术通过在目标动态库中加入合法设备特征值,可以绑定合法用户的设备,因此,当检测到访问设备的设备特征值无法与目标字段中的合法设备特征值匹配时,直接破坏目标动态库,从而使得非法设备无法拷贝和调用目标动态库,保证了目标动态库的安全性。附图说明51.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。52.图1是本技术实施例提供的一种动态库调用的场景示意图;53.图2是本技术实施例提供的一种动态库调用方法的流程示意图;54.图3是本技术实施例提供的另一种动态库调用方法的流程示意图;55.图4是本技术实施例提供的一种动态库调用装置的结构示意图;56.图5是本技术实施例提供的另一种动态库调用装置的结构示意图。具体实施方式57.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。58.请参见图1,是本技术实施例提供的一种动态库调用的场景示意图。该场景示意图可以包括可以调用目标动态库的终端设备(如图1所示,具体包括终端设备100),终端设备100可以安装各种软件(如安全管家),动态库可以在终端设备内部完成调用,终端设备可以包括手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mid,mobileinternetdevice)、pos(pointofsales,销售点)机、可穿戴设备(例如智能手表、智能手环等)。每种支持该软件的终端设备都可以在软件应用中发起调用目标动态库请求。例如,当终端设备是智能手机时,打开杀毒软件(如电脑管家),申请调用该杀毒软件的目标动态库。同样也可以获取访问设备(该访问设备可以为终端设备100)的访问设备特征值。若所述访问设备特征值存储于所述目标字段中,则说明终端设备100是合法设备,终端设备100就可以调用所述目标动态库,提供目标动态库给终端设备100使用;若所述访问设备特征值未存储于所述目标字段中,则说明终端设备100是非法设备,即没有访问目标动态库的权限,此时终端设备100可以生成无效数据动态库,将所述目标动态库替换为所述无效数据动态库,调用所述无效数据动态库,所述无效数据动态库用于触发程序进入死循环,即终端设备100就会基于无效数据动态库触发程序进入死循环,以此达到破坏调用目标动态库的效果。通过上述所提供的防拷贝方法,可实现访问设备是否合法的鉴别,以达到防拷贝目的,保证了目标动态库的安全性。59.请参见图2,是本技术实施例提供的一种动态库调用方法的流程示意图,所述方法可以包括:60.s201,读取目标动态库中的目标字段以及访问设备的访问设备特征值;所述目标动态库中的目标字段用于存储合法设备的合法设备特征值;61.其中,终端设备可以包括手机、电脑等客户端,申请调用的动态库即可以是本设备中的动态库,也可以是其他设备中的动态库。申请调用本设备中的目标动态库时,此时的调用场景如图1所示,此时终端设备内部调用动态库。62.s202,若所述访问设备特征值存储于所述目标字段中,则调用所述目标动态库;63.具体的,所述访问设备特征值与所述目标字段中的所述合法设备特征值的比对,是通过每位字符的逐一遍历而得出的结果。例如所述访问设备特征值为12345678,所述目标字段中的所述合法设备特征值也为12345678,则比对顺序为所述访问设备特征值第一位为数值1,所述目标字段中的所述合法设备特征值第一位也为数值1,数值一致,继续下一位的比对。所述访问设备特征值第二位为数值2,所述目标字段中的所述合法设备特征值第二位也为数值2,数值一致,继续下一位的比对。依此类推,直到所述访问设备特征值第八位为数值8,所述目标字段中的所述合法设备特征值第八位也为数值8,数值一致,则说明所述访问设备为合法设备,后续可以正常调用目标动态库。若中途发现所述访问设备特征值某一位与所述目标字段中的所述合法设备特征值的对应位数不相同,则立刻结束遍历,得出结果所述访问设备特征值与所述目标字段中的所述合法设备特征值不一致。64.s203,若所述访问设备特征值未存储于所述目标字段中,则破坏所述目标动态库;65.具体的,所述访问设备特征值与所述目标字段中的所述合法设备特征值的比对,是通过每位字符的逐一遍历而得出的结果。若中途发现所述访问设备特征值某一位与所述目标字段中的所述合法设备特征值的对应位数不相同,则立刻结束遍历,得出结果所述访问设备特征值与所述目标字段中的所述合法设备特征值不一致,则破坏目标动态库访问设备特征值可以是可以用emmc(embeddedmultimediacard,内嵌式存储器标准规格)的cid(cardidentificationnumber,卡标识号码)、通讯模块的imei(internationalmobileequipmentidentity,国际移动设备识别码)号、cpuid(centralprocessingunitidentitydocument,中央处理器身份标识号码)等可以唯一标识设备,且第三方无法篡改的id。可根据系统的实际情况而定,此处不做限制。通过硬件的唯一id来标识每一台访问设备,判断是否非法拷贝到其他访问设备上,第三方无法篡改硬件id,当检测到id不匹配时,将动态库文件破坏,可靠性更高。66.本技术实施例通过读取目标动态库中的目标字段以及所述访问设备的访问设备特征值;若所述访问设备特征值存储于所述目标字段中,则调用所述目标动态库;若所述访问设备特征值未存储于所述目标字段中,则破坏所述目标动态库。本技术通过在动态库中加入合法设备特征值,可以绑定合法用户的设备,因此,当检测到访问设备的设备特征值无法与目标字段中的合法设备特征值匹配时,直接破坏目标动态库,从而使得非法设备无法拷贝和调用目标动态库,保证了目标动态库的安全性。67.请参见图3,是本技术实施例提供的另一种动态库调用方法的流程示意图,所述方法可以包括:68.s301,在初始动态库中增加所述目标字段,将所述目标字段进行数据初始化;69.具体的,在初始动态库中增加关于所述目标字段的代码,确定相关属性,所述目标字段可以是so_id常数组,例如目标字段代码的具体位数可以与合法设备的合法设备特征值位数相同,方便之后对目标字段的赋值;将所述目标字段进行数据初始化,数据初始化的目的是为了在检测到所述目标字段为初始化数据时,能够将所述合法设备的合法设备特征值赋值到所述目标字段中,例如,可以让每一位数据都为零,便于检测所述目标字段是否为初始化数据,初始化后的so_id常数组可以是“0…000”,也可以设置为其他的初始化数据,只要事先预设好即可;70.进一步的,so_id在目标动态库的源码中定义,这样每一次编译的时候,位置都是不固定的,破解更加困难。为目标动态库的安全提供有效防护。71.s302,若检测到所述目标字段为初始化数据,则读取所述合法设备的合法设备特征值;72.具体的,若检测到所述目标字段为初始化数据,则证明目标动态库中防拷贝字段还未被赋值,此时应读取所述合法设备的合法设备特征值,便于之后为目标字段赋值,做好预先的准备步骤。73.s303,将所述合法设备特征值赋值到所述目标字段,得到所述目标动态库。74.进一步的,将所述合法设备的合法设备特征值赋值到所述目标字段中,可以便于比对访问设备是否合法,例如,将一个所述合法设备的合法设备特征值赋值给so_id常数组后,当比对一个访问设备是否合法时,只需比对所述访问设备的访问设备特征值与so_id常数组是否一致,即可判断出所述访问设备是否合法,用极少的终端设备工作量就达到了防拷贝的效果,而且通过硬件的唯一id来标识每一台访问设备,判断是否非法拷贝到其他访问设备上,第三方无法篡改硬件id,可靠性更高。75.在本技术的其他实施例中,上述步骤s303,包括:76.s303.1:将所述初始动态库读取到内存中,解析所述初始动态库,获取所述目标字段的地址和长度;77.s303.2:根据所述目标字段的地址和长度,将所述目标字段中的初始内容替换为所述合法设备的合法设备特征值,得到更新后的内存数据;78.s303.3:将所述更新后的内存数据保存到临时文件中;删除所述初始动态库;将所述临时文件命名为所述目标动态库的名称。79.具体的,在步骤s303.1中,终端设备可以解析所述初始动态库,所述初始动态库具体可以是可执行与可链接格式“executableandlinkableformat,elf”文件,elf文件是unix系统实验室作为应用程序二进制接口而开发和发布的,也是linux的主要可执行文件格式,elf文件由4部分组成,分别是elf头(elfheader)、程序头表(programheadertable)、节(section)和节头表(sectionheadertable)。80.下面以elf文件进行说明,读取elf头,获取程序头部表的偏移地址;进一步的,获取所述偏移地址所指示的动态库程序头部表;所述动态库程序头部表,用于告诉系统如何将elf文件内的数据加载到内存中,数据是否需要被加载到内存中,要加载到内存中的虚拟地址,内存对应的物理地址,程序表头记录相对于文件内的偏移,程序表头记录所描述的数据长度,以及数据加载到内存后的长度等;解析所述动态库程序头部表,获取动态程序段的地址;所述动态程序段用于存储运行时需要链接的共享库列表,全局偏移表的地址,重定位条目的相关信息等;具体的,在elf文件中,动态程序段的地址可以为dynamic段的偏移地址。进一步的,解析所述动态程序段,获取symtab段和strtab段的偏移地址,最后通过遍历symtab段获取到关键函数字段对应的地址和长度,所述symtab用于存储符号的基本信息,是否是全局符号等;一般而言,可以通过关键函数的名称在symtab段中寻找对应的数据地址和长度;终端设备进一步遍历所述symtab段,symtab段中包含着的基本信息可以指示目标字段在初始动态库中的指针地址,再根据所述目标字段在初始动态库中的指针地址,就能获取到所述初始动态库中的目标字段。81.进一步的,目标动态库防止非法拷贝流程在动态库的初始化函数中被调用,确保动态库开始执行时,会先进入防止非法拷贝的检测流程。82.具体的,若检测到所述初始动态库中的目标字段为初始化数值,证明初始动态库中的目标字段还未被赋值,假如初始化数值为全零,因起初定义所述目标字段时已设置好所述目标字段位数与所述合法设备特征值位数相同,所以只需把所述合法设备特征值替换到所述目标字段中,即可实现初始动态库中目标字段的防拷贝意义;然后再将所述更新后的内存数据保存至临时文件,此时临时文件中的所述初始动态库数据中的目标字段即含有所述合法设备的合法设备特征值;将所述临时文件确定为所述目标动态库,即完成了对初始动态库的更新,主要更新的数据为初始动态库中的具有防拷贝效果的目标字段,借用所述目标字段可以鉴定访问设备是否为合法设备;删除所述初始动态库,防止占用过多的系统内存,合理利用存储空间;83.可选的,若合法设备的数量为至少两个,则将至少两个合法设备的合法设备特征值进行首尾拼接,得到拼接设备特征值,将所述拼接设备特征值赋值到所述初始动态库中的目标字段,得到所述目标动态库,同时设置一个校验常数组,所述校验常数组的第一位表示合法设备数量,所述校验常数组的第二位和第三位用来表示第二个合法设备特征值在所述目标字段中的开始位数,所述校验常数组的第四位和第五位用来表示第二个合法设备特征值的总长度,当有第三个合法设备时,可以依此类推来扩展校验常数组。例如若存在合法设备一与合法设备二,合法设备一的合法设备特征值为12345678,合法设备二的合法设备特征值为87654321,则目标动态库中的目标字段可以为1234567887654321,此时校验常数组可以为20908,校验常数组中的“2”代表目标字段中存在两个合法设备特征值,校验常数组中的“09”代表第二个合法设备特征值的起始位为目标字段的第九位,所以若要遍历第一个合法设备特征值,则可以从目标字段的第一位开始遍历;若要遍历第二个合法设备特征值,则可以从目标字段的第九位开始遍历;校验常数组中的“08”代表目标字段中的第二个合法设备特征值的总长度。84.可选的,若合法设备的数量为至少两个,则也可以设置与所述合法设备数量相等的常数组表示目标字段,这样可以高效看出合法设备的数量,同时也便于将访问设备特征值与目标字段中的每个常数组依次进行匹配。85.s304,读取目标动态库中的目标字段以及访问设备的访问设备特征值;所述目标动态库中的目标字段用于存储合法设备的合法设备特征值。86.具体的,读取目标动态库中的目标字段以及访问设备的访问设备特征值,若合法设备的数量为至少两个,且所述目标字段为至少两个合法设备的合法设备特征值进行首尾拼接,则读取上述所提及的校验常数组,通过校验常数组获取所述合法设备的个数,且获取所述每个合法设备的开始位数与所述合法设备的合法设备特征值长度,再将每个合法设备的合法设备特征值与所述访问设备的访问设备特征值逐一进行比对;例如,若目标动态库中的目标字段为1234567887654321,校验常数组为20908,所述校验常数组共有五位,第一位表示所述合法设备数量,第二位和第三位表示第二个合法设备特征值在所述目标字段中的开始位数,所述校验常数组的第四位和第五位表示第二个合法设备特征值的总长,则通过所述校验常数组第一位为“2”可知,所述目标字段中的所述合法设备数量为两个;校验常数组中的“09”代表第二个合法设备特征值的起始位为目标字段的第九位,校验常数组中的“08”代表目标字段中的第二个合法设备特征值的总长度为8,所以在遍历第一个合法设备特征值12345678时,就可以从目标字段的第一位开始遍历,比对访问设备特征值是否与第一个合法设备特征值相同,若相同,则说明所述访问设备特征值存储于所述目标字段中;在遍历第二个合法设备特征值87654321时,就可以从目标字段的第九位开始遍历,比对访问设备特征值是否与第二个合法设备特征值相同,若相同,则说明所述访问设备特征值存储于所述目标字段中。若访问设备特征值与2个合法设备特征值均不相同,则说明所述访问设备特征值未存储于所述目标字段中。87.可选的,读取目标动态库中的目标字段以及访问设备的访问设备特征值,若合法设备的数量为至少两个,且所述目标字段为至少两个常数组,则将所述合法设备的每个合法设备特征值常数组与所述访问设备的访问设备特征值逐一进行比对;例如,若目标动态库中的目标字段包括第一常数组和第二常数组,且第一常数组中存储有第一个合法设备特征值12345678,第二常数组中存储有第二个合法设备特征值87654321;遍历第一常数组,比对访问设备特征值是否与第一个合法设备特征值相同,若相同,则说明所述访问设备特征值存储于所述目标字段中;遍历第二常数组,比对访问设备特征值是否与第二个合法设备特征值相同,若相同,则说明所述访问设备特征值存储于所述目标字段中。若访问设备特征值与2个合法设备特征值均不相同,则说明所述访问设备特征值未存储于所述目标字段中。88.s305,若所述访问设备特征值存储于所述目标字段中,则调用所述目标动态库。89.具体的,若所述访问设备特征值存储于所述目标字段中,则证明所述访问设备为所述合法设备,调用所述目标动态库。例如,若目标动态库中的目标字段为1234567887654321,校验常数组为20908,则所述访问设备特征值只要与第一个合法设备特征值12345678或第二个合法设备特征值87654321相同,即可调用所述目标动态库。或者,若目标动态库的目标字段包含第一常数组12345678和第二常数组87654321,则所述访问设备特征值只要存储于第一常数组或第二常数组,即可证明所述访问设备为所述合法设备,即可调用所述目标动态库。90.s306,若所述访问设备特征值未存储于所述目标字段中,则破坏所述目标动态库。91.在本技术其他实施例中,上述破坏所述目标动态库的步骤s203或步骤s306,包括:92.生成与所述目标动态库大小相等的随机数据,根据所述随机数据生成无效数据动态库;93.将所述目标动态库替换为所述无效数据动态库。94.所述生成与所述目标动态库文件大小相等的随机数据,包括:95.以系统时间或系统熵池的数值或硬件的唯一识别码为参数,生成系统自带的随机函数;96.根据所述系统自带的随机函数生成与所述目标动态库文件大小相等的随机数据。97.可选的,若所述访问设备特征值未存储于所述目标字段中,则以系统时间或系统熵池的数值或硬件的唯一识别码为参数,生成系统自带的随机函数;利用编程系统中的随机函数可以生成范围在0到最大随机数(在程序文件中定义,值为2147483647)的数值,但是一般来讲,为了达到更好的随机效果,需要利用随机函数设置相应的随机种子(或者说随机数的起始值),种子相同,所产生的随机数也是相同的,因此,要想获得随机效果好的随机数,一定要保证每次的随机种子有差别。常见的可作为随机种子的有三种:当前时间、符号表文件内容以及唯一识别码。以此来产生随机函数,随机函数需要接收的参数是一个无符号整型数据。随机种子的选取有以下三种方式:98.一、当随机种子为当前时间,利用时间函数每次获取当前的系统时间,并且也保证了每次的随机种子有差异。99.二、当随机种子为符号表文件内容时,产生随机种子的原理是利用当前系统的熵池来计算出一定数量的随机比特,其中熵池是根据当前系统的“环境噪音”,它是由很多参数共同评估的,如内存的使用,文件使用量等等,环境噪音直接影响着所产生的随机种子的有效性。不同的环境噪音下,会导致所获取到的种子有很大的差异性。100.三、当随机种子是通用唯一识别码时,它是一个软件建构的标准,设置唯一识别码的目的是让分布式系统中的每一个元素都有唯一识别的信息,它是由32个16进制数据组成,理论上来讲,唯一识别的总数是2128。变成系统中的唯一识别码是由内核提供的。从动态库信息段的校验码中抽取最多10位,并且小于2147483647的数据;直接抽取文件内容中的数值位,但要保证其最多10位,并且值小于2147483647,最后即可生成随机函数。根据所述系统自带的随机函数生成与所述目标动态库大小相等的随机数据,用随机函数生成无效数据动态库,将所述目标动态库替换为所述无效数据动态库,可以达到迷惑非法调用者的效果,非法调用者依然认为非法调用已经成功,以此达到保护目标动态库,防止非法拷贝的效果,删除所述目标动态库,不仅销毁了重要数据,保护数据不会非法泄露,也可以更好地掩饰数据大小相同的所述无效数据动态库的身份的作用。101.进一步的,当检测到目标动态库被非法拷贝后,程序自动在后台破坏目标动态库文件,让目标动态库彻底不能执行,也无法复原,安全性更高。102.进一步的,本方法读取访问设备id,进行比较、更新的操作,都是在目标动态库内部完成,不需要系统做修改,也不需要依赖第三方的服务,兼容性好。本技术实施例通过终端设备在软件应用中发起调用目标动态库请求,将所述合法设备特征值赋值到所述初始动态库中的目标字段,得到所述目标动态库;若所述访问设备的访问设备特征值存储于所述目标字段中,则调用所述目标动态库;若所述访问设备特征值未存储于所述目标字段中,则生成无效数据动态库,将所述目标动态库替换为所述无效数据动态库,调用所述无效数据动态库,所述无效数据动态库与目标动态库大小相同,因此当调用所述无效数据动态库时,盗用者并不知道所述无效数据动态库并非所述目标动态库,并陷入死循环,终端设备一直处于加载状态,以此达到防拷贝目的。当检测到目标动态库被非法拷贝后,程序自动在后台破坏目标动态库文件,让动态库彻底不能执行,也无法复原,安全性更高。103.请参见图4,是本技术实施例提供的一种动态库调用装置的结构示意图。如图4所示,该动态库调用装置1可以应用于上述图1对应实施例中的任意一个终端设备,该动态库调用装置1可以包括:读取模块11、调用模块12、破坏模块13、字段增加模块14、获取模块15、赋值模块16、检测模块17、初始化模块18;104.读取模块11,用于读取目标动态库中的目标字段以及访问设备的访问设备特征值;所述目标动态库中的目标字段用于存储合法设备的合法设备特征值;105.上述读取模块11的具体实施方式可以参见上述图2实施例中的步骤s201,这里不再进行赘述。106.调用模块12,用于若所述访问设备特征值存储于所述目标字段中,则调用所述目标动态库;107.其中,调用模块12的具体实施方式可以参见上述图2实施例中的步骤s202,这里不再进行赘述。108.破坏模块13,用于若所述访问设备特征值未存储于所述目标字段中,则破坏所述目标动态库;109.上述破坏模块13的具体实施方式可以参见上述图2实施例中的步骤s203,这里不再进行赘述。110.字段增加模块14,用于在初始动态库中增加所述目标字段;111.其中,字段增加模块14的具体实施方式可以参见上述图3实施例中的步骤s301,这里不再进行赘述。112.获取模块15,用于获取所述合法设备的合法设备特征值;113.上述获取模块15的具体实施方式可以参见上述图3实施例中的步骤s302,这里不再进行赘述。114.赋值模块16,用于将所述合法设备特征值赋值到所述目标字段,得到所述目标动态库;115.其中,赋值模块16的具体实施方式可以参见上述图3实施例中的步骤s304,这里不再进行赘述。116.检测模块17,用于检测所述目标字段是否为初始化数据,若是,则通知所述获取模块15获取所述合法设备的合法设备特征值;该检测模块17可以是在获取模块15执行之前进行执行。117.上述检测模块17的具体实施方式可以参见上述图3实施例中的步骤s302,这里不再进行赘述。118.初始化模块18,用于将所述目标字段进行数据初始化。119.其中,初始化模块18的具体实施方式可以参见上述图3实施例中的步骤s301,这里不再进行赘述。120.其中,所述赋值模块16,具体用于将所述初始动态库读取到内存中,解析所述初始动态库,获取所述目标字段的地址和长度,根据所述目标字段的地址和长度,将所述目标字段中的初始化数据替换为所述合法设备的合法设备特征值,得到更新后的内存数据,将所述更新后的内存数据保存到临时文件中,删除所述初始动态库,将所述临时文件命名为所述目标动态库的名称;121.其中,所述赋值模块16,具体用于若合法设备的数量为至少两个,则将至少两个合法设备的合法设备特征值进行首尾拼接,得到拼接设备特征值,将所述拼接设备特征值赋值到所述初始动态库中的目标字段,得到所述目标动态库;122.其中,赋值模块16的具体实施方式可以参见上述图3实施例中的步骤s304,这里不再进行赘述。123.其中,所述破坏模块13,具体用于生成与所述目标动态库大小相等的随机数据,根据所述随机数据生成无效数据动态库,将所述目标动态库替换为所述无效数据动态库;124.其中,所述破坏模块13,具体用于以系统时间或系统熵池的数值或硬件的唯一识别码为参数,生成系统自带的随机函数,根据所述系统自带的随机函数生成与所述目标动态库大小相等的随机数据;125.上述破坏模块13的具体实施方式可以参见上述图2实施例中的步骤s203,这里不再进行赘述。126.本技术实施例通过获取目标动态库中的目标字段,读取所述访问设备的访问设备特征值;若所述访问设备特征值存储于所述目标段中,则调用所述目标动态库;若所述访问设备特征值未存储于所述目标字段中,则生成无效数据动态库,将所述目标动态库替换为所述无效动态库,删除所述目标动态库,调用所述无效数据动态库;所述无效数据动态库用于触发程序进入死循环,以此达到破坏所述目标动态库的效果。本技术通过在动态库中加入合法设备特征值,可以绑定合法用户的设备,因此,即使非法用户窃取了合法用户的身份证文件,也会因设备的设备特征值无法与目标字段中的合法设备特征值匹配,而无法调用目标动态库,保证了目标动态库的安全性。127.请参见图5,是本技术实施例提供的又一种动态库调用装置的结构示意图。如图5示,该动态库调用装置可以应用于上述图1对应实施例中的终端设备。所述动态库调用装置500包括:处理器501,网络接口504和存储器505,此外,所述动态库调用装置500还可以包括:用户接口503,和至少一个通信总线502。其中,通信总线502用于实现这些组件之间的连接通信。其中,用户接口503可以包括显示屏(display)、键盘(keyboard),可选用户接口503还可以包括标准的有线接口、无线接口。网络接口504可选的可以包括标准的有线接口、无线接口(如wi‑fi接口)。存储器504可以是高速ram存储器,也可以是非不稳定的存储器(non‑volatilememory),例如至少一个磁盘存储器。存储器504可选的还可以是至少一个位于远离前述处理器501的存储装置。如图5所示,作为一种计算机存储介质的存储器504中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。128.在图5所示的动态库调用装置500中,网络接口504可提供网络通讯功能,以用于与服务器进行通信;而用户接口503主要用于为用户提供输入的接口;而处理器501可以用于调用存储器504中存储的设备控制应用程序,以实现:129.处理器501读取目标动态库中的目标字段以及访问设备的访问设备特征值;所述目标动态库中的目标字段用于存储合法设备的合法设备特征值;若所述访问设备特征值存储于所述目标字段中,则调用所述动态库;若所述访问设备特征值未存储于所述目标字段中,则破坏所述目标动态库。130.在一个实施例中,所述处理器501还可以执行以下步骤:131.在初始动态库中增加所述目标字段;将所述目标字段进行数据初始化;若检测到所述初始动态库中的目标字段为初始化数值,则获取合法设备的合法设备特征值,将所述合法设备特征值赋值到所述初始动态库中的目标字段,得到所述目标动态库。132.在一个实施例中,所述处理器501在将所述合法设备特征值赋值到所述初始动态库中的目标字段,得到所述目标动态库时,具体执行以下步骤:133.将所述初始动态库读取到内存中;解析所述初始动态库,获取所述目标字段的地址和长度;根据所述目标字段的地址和长度,将所述目标字段中的初始化数据替换为所述合法设备的合法设备特征值,得到更新后的内存数据;将所述更新后的内存数据保存到临时文件中;删除所述初始动态库;将所述临时文件命名为所述目标动态库的名称。134.在一个实施例中,所述处理器501在将所述合法设备特征值赋值到所述初始动态库中的目标字段,得到所述目标动态库时,具体执行以下步骤:135.若合法设备的数量为至少两个,则将至少两个合法设备的合法设备特征值进行首尾拼接,得到拼接设备特征值,将所述拼接设备特征值赋值到所述初始动态库中的目标字段,得到所述目标动态库。136.在一个实施例中,所述处理器501在所述破坏所述目标动态库时,具体执行以下步骤:137.若所述访问设备特征值与所述目标字段中的所述合法设备特征值不一致,则生成与所述目标动态库大小相等的随机数据,根据所述随机数据生成无效数据动态库,将目标动态库替换为所述无效数据动态库。138.在一个实施例中,所述处理器501在生成与所述目标动态库大小相等的随机数据时,具体执行以下步骤:139.以系统时间或系统熵池的数值或硬件的唯一识别码为参数,生成系统自带的随机函数;140.根据所述系统自带的随机函数生成与所述目标动态库大小相等的随机数据。141.本技术实施例通过获取目标动态库中的目标字段,获取所述访问设备的访问设备特征值;若所述访问设备特征值存储于所述目标字段中,则调用所述目标动态库。若所述访问设备特征值未存储于所述目标字段中,则破坏所述目标动态库,生成无效数据动态库,将所述目标动态库替换为所述无效数据动态库,删除所述目标动态库,调用所述无效数据动态库;所述无效数据动态库用于触发程序进入死循环。本技术读取访问设备id,进行比较、更新的操作,都是在目标动态库内部完成,不需要系统做修改,也不需要依赖第三方的服务,兼容性好。本技术通过在动态库中加入合法设备特征值,可以绑定合法用户的设备,因此,即使非法用户窃取了合法用户的身份证文件,也会因设备的设备特征值无法与目标字段中的合法设备特征值匹配,而无法调用目标动态库,保证了目标动态库的安全性。当检测到目标动态库被非法拷贝后,程序自动在后台破坏目标动态库文件,让目标动态库彻底不能执行,也无法复原,安全性更高。142.应当理解,本技术实施例中所描述的动态库调用装置500可执行前文图2、图3中任一个所对应实施例中对所述动态库调用方法的描述,也可执行前文图4所对应实施例中对所述动态库调用装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。143.此外,这里需要指出的是:本技术实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的动态库调用装置所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图2、图3任一个所对应实施例中对所述动态库调用方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本技术所涉及的计算机存储介质实施例中未披露的技术细节,请参照本技术方法实施例的描述。144.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read‑onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。145.以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜