CN108628611A - 一种数据调用方法及数据调用装置 - Google Patents

一种数据调用方法及数据调用装置 Download PDF

Info

Publication number
CN108628611A
CN108628611A CN201810360254.2A CN201810360254A CN108628611A CN 108628611 A CN108628611 A CN 108628611A CN 201810360254 A CN201810360254 A CN 201810360254A CN 108628611 A CN108628611 A CN 108628611A
Authority
CN
China
Prior art keywords
target
interface
chained library
hash table
hash
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810360254.2A
Other languages
English (en)
Other versions
CN108628611B (zh
Inventor
张颂来
陈浩
陈辰
吴兴花
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WUXI IDATA TECHNOLOGY Co Ltd
Original Assignee
WUXI IDATA TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WUXI IDATA TECHNOLOGY Co Ltd filed Critical WUXI IDATA TECHNOLOGY Co Ltd
Priority to CN201810360254.2A priority Critical patent/CN108628611B/zh
Publication of CN108628611A publication Critical patent/CN108628611A/zh
Application granted granted Critical
Publication of CN108628611B publication Critical patent/CN108628611B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information

Abstract

本发明实施例公开了一种数据调用方法及数据调用装置,可以提高核心动态链接库被破解的难度。该方法包括:接收通过受限接口调用条码识别设备的目标动态链接库的调用请求;基于随机算法判断调用请求是否需要校验;当调用请求需要校验时,通过代理函数获取访问钥匙;使用预设加密算法的私钥对访问钥匙进行解密,以得到解密结果;将解密结果与随机因子的值进行校验,以检验使用受限接口调用目标动态链接库是否合法;当校验成功时,则确定使用受限接口调用目标动态链接库合法;基于代理函数查找当前时刻目标散列哈希表中保存的目标动态链接库的目标调用接口地址的索引下标;根据索引下标在所述目标散列哈希表中查找,以得到目标动态链接库。

Description

一种数据调用方法及数据调用装置
技术领域
本发明涉及通信领域,尤其涉及一种数据调用方法及数据调用装置。
背景技术
在当今信息化时代的背景下,国内的产业升级,不少企业也开始加大研发的力度,在这样的背景下,拥有核心技术显得尤为重要。
在条码识别行业,最为核心的技术当属条码识别算法,而此类算法主流都是通过动态链接库提供,随着反编译技术的进步,如著名的交互式反汇编器专业版(InteractiveDisassembler Professional,IDA)等反编译软件的升级更新,在对动态链接库进行加固时,通常都会把着眼点放在加密方式上,设备绑定等方面。
然而这样的做法会较少的关注反汇编对动态链接库带来的影响,使得对动态链接库的调用存在一定的安全隐患。
发明内容
针对上述技术问题,本发明实施例提供了一种数据调用方法及数据调用装置,可以保证核心算法的安全,防止核心算法被破解和非法调用。
本发明实施例的第一方面提供一种数据调用方法,应用于条码识别设备,包括:
接收通过受限接口调用所述条码识别设备的目标动态链接库的调用请求;
基于随机算法判断所述调用请求是否需要校验;
当所述调用请求需要校验时,通过代理函数获取访问钥匙,所述访问钥匙是通过预设加密算法的公钥对随机因子的值进行加密得到;
使用所述预设加密算法的私钥对所述访问钥匙进行解密,以得到解密结果;
将所述解密结果与所述随机因子的值进行校验,以检验使用受限接口调用所述目标动态链接库是否合法;
当校验成功时,则确定使用受限接口调用所述目标动态链接库合法;
基于所述代理函数查找当前时刻所述目标散列哈希表中保存的所述目标动态链接库的目标调用接口地址的索引下标;
根据所述索引下标在所述目标散列哈希表中查找,以得到所述目标动态链接库。
可选地,所述基于所述代理函数查找当前时刻所述目标散列哈希表中保存的所述目标动态链接库的目标调用接口地址的索引下标之前,所述方法还包括:
获取所述条码识别设备的目标动态链接库的目标调用接口地址;
将所述目标调用接口地址保存至所述目标散列哈希表,所述目标散列哈希表为包括假数据的散列表;
根据随机算法对所述目标散列哈希表进行刷新,以得到所述目标调用接口地址在所述目标散列中的索引下标。
可选地,所述获取所述条码识别设备的目标动态链接库的目标调用接口地址包括:
获取所述条码识别设备的目标密文片段;
构建目标内存文件,所述目标内存文件为固定大小的内存文件;
将所述密文片段进行解密,以得到目标明文片段;
将所述目标明文片段在所述目标内存文件中合成所述目标动态链接库;
加载所述目标动态链接库至所述条码设备的当前程序的进程空间,以得到所述目标动态链接库的目标调用接口地址。
可选地,所述通过代理函数获取访问钥匙包括:
通过非受限接口获取随机因子的值,所述随机因子的值为基于所述条码识别设备的当前系统时间以及所述目标散列哈希表对应的目标函数进行计算得到;
利用预设加密算法的公钥对所述随机因子的值进行加密,以得到访问钥匙。
可选地,当所述调用请求无需校验时,所述方法还包括:
直接通过所述受限接口调用所述目标动态链接库。
本发明实施例第二方面提供了一种数据调用装置,应用于条码识别设备,包括:
接收单元,用于接收通过受限接口调用所述条码识别设备的目标动态链接库的调用请求;
校验单元,用于基于随机算法判断所述调用请求是否需要校验;
第一获取单元,用于当所述调用请求需要校验时,通过代理函数获取访问钥匙,所述访问钥匙是通过预设加密算法的公钥对随机因子的值进行加密得到;
解密单元,用于使用所述预设加密算法的私钥对所述访问钥匙进行解密,以得到解密结果;
所述校验单元,还用将所述解密结果与所述随机因子的值进行校验,以检验使用受限接口调用所述目标动态链接库是否合法;
确定单元,用于当校验成功时,则确定使用受限接口调用所述目标动态链接库合法;
查找单元,用于基于所述代理函数查找当前时刻所述目标散列哈希表中保存的所述目标动态链接库的目标调用接口地址的索引下标;
所述查找单元,还用于根据所述索引下标在所述目标散列哈希表中查找,以得到所述目标动态链接库。
可选地,所述装置还包括:
第二获取单元,用于获取所述条码识别设备的目标动态链接库的目标调用接口地址;
存储单元,用于将所述目标调用接口地址保存至所述目标散列哈希表,所述目标散列哈希表为包括假数据的散列表;
刷新单元,用于根据随机算法对所述目标散列哈希表进行刷新,以得到所述目标调用接口地址在所述目标散列中的索引下标。
可选地,所述第二获取单元具体用于:
获取所述条码识别设备的目标密文片段;
构建目标内存文件,所述目标内存文件为固定大小的内存文件;
将所述密文片段进行解密,以得到目标明文片段;
将所述目标明文片段在所述目标内存文件中合成所述目标动态链接库;
加载所述目标动态链接库至所述条码设备的当前程序的进程空间,以得到所述目标动态链接库的目标调用接口地址。
本发明实施例第三方面提供了一种处理器,所述处理器用于运行计算机程序,所述计算机程序运行时执行如上述任意一项所述的数据调用方法的步骤。
本发明实施例第六方面提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述任意一项所述的数据调用方法的步骤。
综上所述,本发明提供的实施例中,接收通过受限接口调用条码识别设备的目标动态链接库的调用请求,基于随机算法判断调用请求是否需要校验,当调用请求需要校验时,获取访问钥匙,访问钥匙由代理函数提供,且访问钥匙是通过预设加密算法的公钥对随机因子的值进行加密得到,使用预设加密算法的私钥对所述访问钥匙进行解密,以得到解密结果,将解密结果与随机因子的值进行校验,以检验使用受限接口调用目标动态链接库是否合法,当校验成功时,则确定使用受限接口条用目标动态链接库合法,基于代理函数查找当前时刻目标散列哈希表中保存的目标动态链接库的目标调用接口地址的索引下标,根据索引下标在所述目标散列哈希表中查找,以得到目标动态链接库。由此可以看出,本发明中,采用了带有公钥和私钥的加密算法,加密部分和解密部分具有一对一的强耦合特点,具有不可分割的强耦合性,难以通过反汇编来单独剥离目标动态链接库,通过本技术方案可以大大的提高核心动态链接库被破解的难度。
附图说明
图1为本发明实施例提供的数据调用方法的实施例示意图;
图2为本发明实施例提供的数据调用装置的一个实施例示意图;
图3为本发明实施例提供的数据调用装置的一个实施例示意图;
图4为本发明实施例提供的数据调用装置的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例可以应用于条码识别设备,下面从数据调用装置的角度,对本发明中数据调用方法进行详细说明,所述数据调用装置可以为服务器,也可以为该服务器中的功能单元。其中,数据调用装置可以分为应用调用层,加固层和动态链接库层,动态库层在条码识别设备的文件存储中是密文,该加固层一方面面向应用层提供接口调用,另一方面面向动态链接库,提供应用接口的调用代理。其中,该加固层面向应用层提供的接口按照权限分为两类,受限接口和非受限接口,受限接口需要应用层提供当前访问的钥匙;非受限接口则不存在上述限制,应用层对非受限接口的调用和正常的接口无差异,主要针对如更新当前的Random因子等状态获取类接口,而应用层通过受限接口的调用即需要通过校验,只有当校验通过时,才准许调用,否则拒绝调用。
请参阅图1,图1为本发明实施例提供的数据调用方法的一个实施例示意图,具体包括:
101、接收通过受限接口调用的条码识别设备的目标动态链接库的调用请求。
本实施例中,数据调用装置可以接收通过受限接口调用条码识别设备的目标动态链接库的调用请求,该目标动态链接库为预先在条码识别设备的文件系统中生成的,该目标动态链接库为预设数目(例如3个或5个)个明文片段合成的,其中,该预设数目为大于2的正整数,该预设数目个明文片段为对条码识别设备内存文件系统中存储的预设数目个密文片段进行解密得到。
需要说明的是,在条码识别设备的文件系统中动态链接库是以3-5个密文片段存储的,在加固层初始化的时候会去读取正确的密文片段,将其通过算法解密,在内存中合并成正确的目标动态链接库。
102、基于随机算法判断调用请求是否需要校验,若是,则执行步骤103,若否,则执行步骤109。
本实施例中,当数据调用装置接收到通过受限接口调用条码识别设备的目标动态库的调用请求,可以基于随机算法判断调用请求是否需要校验,当该调用请求需要校验时,则执行步骤103,当该调用请求无需校验时,则执行步骤109。具体的,数据调用装置会根据自身的随机算法来决定何时对调用请求进行校验,当无需校验时,受限接口的访问不会存在任何限制。
103、当调用请求需要校验时,通过代理函数获取访问钥匙。
本实施例,当数据调用装置确定该调用请求需要校验时,数据调用装置通过代理函数获取访问钥匙,该访问钥匙是通过预设加密算法的公钥对随机因子的值进行加密得到。该随机因子的值为基于条码识别设备的系统时间为种子,根据目标散列哈希表的函数定时计算出来随机数。
需要说明的是,在加固层初始化的时候会把所有目标动态链接库的函数地址(即目标调用接口)散列到目标散列哈希表中,并且会定期去对目标散列哈希表做循环移位,并且在每次刷新之后,会重新计算随机因子,其实就是一个随机数,只是这个随机数是由目标散列哈希表计算出来的,
104、使用预设加密算法的私钥对访问钥匙进行解密,以得到解密结果。
本实施例中,数据调用装置在得到访问钥匙时,可以使用预设加密算法的私钥对访问钥匙进行解密,得到解密结果。需要说明的时,该预设加密算法可以为RSA(Rivest-Shamir-Adleman,RSA)非对称加密算法,当然也可以是其他的包括公钥和私钥的加密算法,具体不做限定。
105、将解密结果与随机因子的值进行校验,以校验使用受限接口调用目标动态链接库是否合法,当校验成功时,执行步骤106,当校验不成功时,则执行步骤110。
本实施例中,条码识别设备可以将解密结果与随机因子的值进行校验,以校验使用受限接口调用目标动态链接库是否合法,当校验成功时,则校验成功时,则执行步骤106,当校验不成功时,则执行凋110。
106、当校验成功时,则确定使用受限接口调用目标动态链接库合法。
本实施例中,当数据调用装置对加密结果和随机因子的值校验成功时,则确定使用该受限接口调用目标动态链接库合法,即可以使用该受限接口对该目标动态链接库进行调用。
需要说明的时,RSA算法是目前公认最安全的算法,其应用很广,典型的如银行系统等,属于一种非对称的加密算法,这里假设M为明文片段,C为密文片段,则:
加密:C=MeMod(N),公钥为(E,N);
解密:M=CdMod(N),私钥为(D,N);
由于随机因子是以条码识别设备的系统时间为种子,目标散列哈希表计算得出的,且是随着时间而变化的,所以当调用时,只有知道所采用的RAS算法和对应的公钥才能计算出正确的钥匙,当进行校验时,会解密调用参数的钥匙得到的结果与当前的随机因子做对比,从而保证调用者的合法性。
107、基于代理函数查找当前时刻目标散列哈希表中保存的目标动态链接库的目标调用接口的索引下标。
本实施例中,由于目标动态链接库的目标调用地址预先存储在目标散列哈希表,因此,数据调用装置可以基于代理函数查找当前时刻目标散列哈希表保存的目标动态链接库的目标调用接口的索引下标。
需要说明的时,目标动态链接库的函数是不爆露给应用的,这里的代理函数是对外提供的函数,即通过该代理函数来访问目标动态链接库,这里的代理函数就是加固层的函数。
需要说明的是,该目标动态链接库的目标调用接口地址为预先存储于目标散列哈希表中,数据调用装置可以根据随机算法对目标散列哈希表进行刷新,得到目标调用接口地址在目标散列哈希表中的索引下标,具体的,数据调用装置可以在基于代理函数查找当前时刻目标散列哈希表中保存的目标动态链接库的目标调用接口的索引下标之前,获取条码识别设备的目标动态链接库的目标调用接口地址,并将该目标调用接口地址保存至目标散列哈希表中,该目标散列哈希表中包括大量的Dummy数据(这种Dummy数据为假数据,起到混淆的目的,以假乱真的效果,目标动态链接库的目标调用接口地址也是数据,其混在大量假数据中,增加分析的难度),同时,根据随机算法对目标散列哈希表进行刷新,以得到目标调用接口地址在目标散列哈希表中的索引下标。
需要说明的时,数据调用装置获取条码识别设备的目标动态链接库的目标调用接口地址包括:
获取条码识别设备的目标密文片段;
构建目标内存文件,目标内存文件为固定大小的内存文件;
将密文片段进行解密,以得到目标明文片段;
将目标明文片段在目标内存文件中合成目标动态链接库;
加载目标动态链接库至条码设备的当前程序的进程空间,以得到目标动态链接库的目标调用接口地址。
下面进行具体对数据调用装置如何得到目标动态链接库的目标调用接口地址以及数据调用装置如何对目标散列哈希表刷新进行说明:
数据调用装置,在加固层初始化的时候会去读取条码识别设备存储的正确的密文片段,将其通过算法(具体不限定该算法的种类,只要加密解密采用统一算法即可)解密,在条码识别设备的内存中合并成目标动态链接库,与此同时,数据调用装置会分配一个固定Size的目标内存,本实施例中为2048K字节(当然也可以是其他的数值,例如1024K字节,具体不限定),并将此目标内存挂载到条码识别设备的文件系统中,挂载的路径为/tmp/~data/,挂载成功后,将目标动态链接库写入到挂载的目标内存的内存文件目录下,写入完成后,当前程序会立即对目标动态链接库进行加载(具体的,使用dlopen函数加载内存文件系统中的目标动态链接库,通过dlsym获取目标动态链接库在当前进程空间的映射地址即是目标调用接口地址),以将目标动态链接库加载到当前程序的进程空间中,并将目标动态链接库映射的函数地址保存到目标散列哈希表哈希表中(即将目标动态链接库的目标调用接口地址保存至目标散列哈希表中),完成以上操作后,会立即删除动态链接库在内存文件系统路径中的原文,因为整个操作都是在内存中完成,所以原文在文件系统中出现的时间非常短暂,经过实测为20ms,增加了目标动态链接库的安全系数。
另外,数据调用装置在将目标动态链接库的目标调用接口保存至目标散列哈希表中后,可以根据随机算法不定期,无规律的对目标散列哈希表进行刷新,并在完成每一次刷新都会记录真实的目标动态链接库对应的函数入口在散列表中的下标(即目标调用接口地址的索引下标),同时在每次刷新之后会,更新随机因子。
数据调用装置,在应用层通过非受限接口获取此随机因子的值,利用RSA非对称加密算法的公钥对此随机因子的值进行加密生成访问合法性钥匙(即访问钥匙),在受限接口的使用时作为形参传入,加固层会对受限接口的调用使用校验算法,例如会使用RSA非对称加密算法的私钥对代理函数提供的形参Key(即访问钥匙)进行解密,获取到的解密结果与随机因子做校验,若校验成功,则确定通过该受限接口的调用为合法的,则通过代理函数查找当前时刻目标散列哈希表中保存的目标动态链接库的目标调用接口地址的索引下标。
108、根据索引下标在目标散列哈希表中查找,以得到目标动态链接库。
本实施例中,当得到索引下标之后,数据调用装置可以依据该索引下标在目标散列哈希表中查找,最终得到目标动态链接库。
109、执行其他操作。
本实施例中,当数据调用装置确定调用请求无需校验时,则数据调用装置可以直接基于代理函数查找当前时刻目标散列哈希表中保存的目标动态链接库的目标调用接口地址的索引下标,进而根据索引下标在目标散列哈希表中查找,以得到目标动态链接库;当数据调用装置确定校验位成功时,则确定此次使用受限接口调用目标动态链接库时不合法的,则拒绝该次调用。
需要说明的时,数据调用装置的加固层在初始化的时候,会获取条码识别的硬件特征码(identification identity,ID),根据其特征码ID经过算法的加密,形成密文1,对该密文1进行MD5(Message Digest Algorithm MD5,消息摘要算法第五版)运算求得定长密文2,然后对密文2进行高级加密标准(Advanced Encryption Standard,AES)运算,最终求得公私钥生成的初始值参数,通过这样操作可以保证因条码识别设备的差异加固层的初始状态会不同,增加分析的难度。
需要说明的时,目标动态链接库为提前合成的,同时目标动态链接库也是提前保存至目标散列哈希表中,在保存至目标散列哈希表之后,数据调用装置会不定期、无规律的根据随机算法进行刷新,与上述实施例中所述的调用方法为同步进行的,两者之间并没有先后执行顺序的限制。
需要说明的是,上述所述的随机算法可以为任意的随机算法,此处具体不限定随机算法的种类。
综上所述,本发明实施例提供的技术方案中,数据调用装置可以无规律,不定期的对接口调用加以拦截,独立的构建了一套加固系统(无规律的刷新目标散列哈希表)能够大大提高反汇编破解的难度,增加企业核心技术的安全系数,因采用了非对称的RSA加密算法,加密部分和解密部分具有一对一的强耦合特点,保证了数据调用装置的调用层和加固调用层具有不可分割的强耦合性,难以通过反汇编来单独剥离目标动态链接库,通过本发明可以有效的防止目前主流的对核心动态链接库的破解和非法调用,有效保护企业的核心技术。
上面对本发明实施例中的数据调用方法进行了描述,下面对本发明实施例中的数据调用装置进行描述,请参阅图2,图2为本发明实施例中数据调用装置的一个实施例示意图,该数据调用装置200应用于条码识别设备,具体包括:
接收单元201,用于接收通过受限接口调用所述条码识别设备的目标动态链接库的调用请求;
校验单元202,用于基于随机算法判断所述调用请求是否需要校验;
第一获取单元203,用于当所述调用请求需要校验时,通过代理函数获取访问钥匙,所述访问钥匙是通过预设加密算法的公钥对随机因子的值进行加密得到;
解密单元204,用于使用所述预设加密算法的私钥对所述访问钥匙进行解密,以得到解密结果;
所述校验单元202,还用将所述解密结果与所述随机因子的值进行校验,以检验使用受限接口调用所述目标动态链接库是否合法;
确定单元205,用于当校验成功时,则确定使用受限接口调用所述目标动态链接库合法;
查找单元206,用于基于所述代理函数查找当前时刻所述目标散列哈希表中保存的所述目标动态链接库的目标调用接口地址的索引下标;
所述查找单元206,还用于根据所述索引下标在所述目标散列哈希表中查找,以得到所述目标动态链接库。
为了便于理解,下面结合图3进行说明。
请参阅图3,图3为本发明实施例提供的数据调用装置的另一实施例示意图,该数据调用装置300应用于条码识别设备,具体包括:
接收单元301,用于接收通过受限接口调用所述条码识别设备的目标动态链接库的调用请求;
校验单元302,用于基于随机算法判断所述调用请求是否需要校验;
第一获取单元303,用于当所述调用请求需要校验时,通过代理函数获取访问钥匙,所述访问钥匙是通过预设加密算法的公钥对随机因子的值进行加密得到;
解密单元304,用于使用所述预设加密算法的私钥对所述访问钥匙进行解密,以得到解密结果;
所述校验单元302,还用将所述解密结果与所述随机因子的值进行校验,以检验使用受限接口调用所述目标动态链接库是否合法;
确定单元305,用于当校验成功时,则确定使用受限接口调用所述目标动态链接库合法;
查找单元306,用于基于所述代理函数查找当前时刻所述目标散列哈希表中保存的所述目标动态链接库的目标调用接口地址的索引下标;
所述查找单元306,还用于根据所述索引下标在所述目标散列哈希表中查找,以得到所述目标动态链接库;
第二获取单元307,用于获取所述条码识别设备的目标动态链接库的目标调用接口地址;
存储单元308,用于将所述目标调用接口地址保存至所述目标散列哈希表,所述目标散列哈希表为包括假数据的散列表;
刷新单元309,用于根据随机算法对所述目标散列哈希表进行刷新,以得到所述目标调用接口地址在所述目标散列中的索引下标。
可选地,所述第二获取单元307具体用于:
获取所述条码识别设备的目标密文片段;
构建目标内存文件,所述目标内存文件为固定大小的内存文件;
将所述密文片段进行解密,以得到目标明文片段;
将所述目标明文片段在所述目标内存文件中合成所述目标动态链接库;
加载所述目标动态链接库至所述条码设备的当前程序的进程空间,以得到所述目标动态链接库的目标调用接口地址。
可选地,所述第一获取单元303具体用于:
通过非受限接口获取随机因子的值,所述随机因子的值为基于所述条码识别设备的当前系统时间以及所述目标散列哈希表对应的目标函数进行计算得到;
利用预设加密算法的公钥对所述随机因子的值进行加密,以得到访问钥匙。
可选地,所述数据调用装置300还包括调用单元310,所述调用单元310用于,当所述调用请求无需校验时,直接通过所述受限接口调用所述目标动态链接库。
综上所述,本发明实施例提供的技术方案中,数据调用装置可以无规律,不定期的对接口调用加以拦截,独立的构建了一套加固系统(无规律的刷新目标散列哈希表)能够大大提高反汇编破解的难度,增加企业核心技术的安全系数,因采用了非对称的RSA加密算法,加密部分和解密部分具有一对一的强耦合特点,保证了数据调用装置的调用层和加固调用层具有不可分割的强耦合性,难以通过反汇编来单独剥离目标动态链接库,通过本发明可以有效的防止目前主流的对核心动态链接库的破解和非法调用,有效保护企业的核心技术。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
请参阅图4,本发明实施例还提供了一种服务器,所述服务器包括处理器401和存储器402,上述接收单元、检验单元以及第一获取单元等单元均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器401中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来对用户数据进行更新。
存储器402可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数据调用方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据调用方法。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化执行所述数据调用方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种数据调用方法,应用于条码识别设备,其特征在于,包括:
接收通过受限接口调用所述条码识别设备的目标动态链接库的调用请求;
基于随机算法判断所述调用请求是否需要校验;
当所述调用请求需要校验时,通过代理函数获取访问钥匙,所述访问钥匙是通过预设加密算法的公钥对随机因子的值进行加密得到;
使用所述预设加密算法的私钥对所述访问钥匙进行解密,以得到解密结果;
将所述解密结果与所述随机因子的值进行校验,以检验使用受限接口调用所述目标动态链接库是否合法;
当校验成功时,则确定使用受限接口调用所述目标动态链接库合法;
基于所述代理函数查找当前时刻所述目标散列哈希表中保存的所述目标动态链接库的目标调用接口地址的索引下标;
根据所述索引下标在所述目标散列哈希表中查找,以得到所述目标动态链接库。
2.根据权利要求1所述的方法,其特征在于,所述基于所述代理函数查找当前时刻所述目标散列哈希表中保存的所述目标动态链接库的目标调用接口地址的索引下标之前,所述方法还包括:
获取所述条码识别设备的目标动态链接库的目标调用接口地址;
将所述目标调用接口地址保存至所述目标散列哈希表,所述目标散列哈希表为包括假数据的散列表;
根据随机算法对所述目标散列哈希表进行刷新,以得到所述目标调用接口地址在所述目标散列中的索引下标。
3.根据权利要求2所述的方法,其特征在于,所述获取所述条码识别设备的目标动态链接库的目标调用接口地址包括:
获取所述条码识别设备的目标密文片段;
构建目标内存文件,所述目标内存文件为固定大小的内存文件;
将所述密文片段进行解密,以得到目标明文片段;
将所述目标明文片段在所述目标内存文件中合成所述目标动态链接库;
加载所述目标动态链接库至所述条码设备的当前程序的进程空间,以得到所述目标动态链接库的目标调用接口地址。
4.根据权利要求1所述的方法,其特征在于,所述通过代理函数获取访问钥匙包括:
通过非受限接口获取随机因子的值,所述随机因子的值为基于所述条码识别设备的当前系统时间以及所述目标散列哈希表对应的目标函数进行计算得到;
利用预设加密算法的公钥对所述随机因子的值进行加密,以得到访问钥匙。
5.根据权利要求1所述的方法,其特征在于,当所述调用请求无需校验时,所述方法还包括:
直接通过所述受限接口调用所述目标动态链接库。
6.一种数据调用装置,应用于条码识别设备,其特征在于,包括:
接收单元,用于接收通过受限接口调用所述条码识别设备的目标动态链接库的调用请求;
校验单元,用于基于随机算法判断所述调用请求是否需要校验;
第一获取单元,用于当所述调用请求需要校验时,通过代理函数获取访问钥匙,所述访问钥匙是通过预设加密算法的公钥对随机因子的值进行加密得到;
解密单元,用于使用所述预设加密算法的私钥对所述访问钥匙进行解密,以得到解密结果;
所述校验单元,还用将所述解密结果与所述随机因子的值进行校验,以检验使用受限接口调用所述目标动态链接库是否合法;
确定单元,用于当校验成功时,则确定使用受限接口调用所述目标动态链接库合法;
查找单元,用于基于所述代理函数查找当前时刻所述目标散列哈希表中保存的所述目标动态链接库的目标调用接口地址的索引下标;
所述查找单元,还用于根据所述索引下标在所述目标散列哈希表中查找,以得到所述目标动态链接库。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二获取单元,用于获取所述条码识别设备的目标动态链接库的目标调用接口地址;
存储单元,用于将所述目标调用接口地址保存至所述目标散列哈希表,所述目标散列哈希表为包括假数据的散列表;
刷新单元,用于根据随机算法对所述目标散列哈希表进行刷新,以得到所述目标调用接口地址在所述目标散列中的索引下标。
8.根据权利要求7所述的装置,其特征在于,所述第二获取单元具体用于:
获取所述条码识别设备的目标密文片段;
构建目标内存文件,所述目标内存文件为固定大小的内存文件;
将所述密文片段进行解密,以得到目标明文片段;
将所述目标明文片段在所述目标内存文件中合成所述目标动态链接库;
加载所述目标动态链接库至所述条码设备的当前程序的进程空间,以得到所述目标动态链接库的目标调用接口地址。
9.一种处理器,其特征在于,所述处理器用于运行计算机程序,所述计算机程序运行时执行如权利要求1至5中任意一项所述的数据调用方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至5中任意一项所述的数据调用方法的步骤。
CN201810360254.2A 2018-04-20 2018-04-20 一种数据调用方法及数据调用装置 Active CN108628611B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810360254.2A CN108628611B (zh) 2018-04-20 2018-04-20 一种数据调用方法及数据调用装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810360254.2A CN108628611B (zh) 2018-04-20 2018-04-20 一种数据调用方法及数据调用装置

Publications (2)

Publication Number Publication Date
CN108628611A true CN108628611A (zh) 2018-10-09
CN108628611B CN108628611B (zh) 2022-02-01

Family

ID=63694145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810360254.2A Active CN108628611B (zh) 2018-04-20 2018-04-20 一种数据调用方法及数据调用装置

Country Status (1)

Country Link
CN (1) CN108628611B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109492379A (zh) * 2018-11-28 2019-03-19 北京云纵信息技术有限公司 一种数据安全调用方法及装置
CN109902500A (zh) * 2019-03-11 2019-06-18 北京城市网邻信息技术有限公司 一种通过链接库实现业务调用数据安全的方法及系统
CN109992934A (zh) * 2019-04-10 2019-07-09 苏州浪潮智能科技有限公司 一种响应方法、装置、设备及介质
WO2019210471A1 (zh) * 2018-05-02 2019-11-07 无锡盈达聚力科技有限公司 一种数据调用方法及数据调用装置
CN111143087A (zh) * 2019-12-18 2020-05-12 中国平安财产保险股份有限公司 一种接口调用方法、装置、存储介质和服务器
CN112434318A (zh) * 2020-11-26 2021-03-02 江苏特思达电子科技股份有限公司 一种物联网远程设备加密方法及系统
CN112469035A (zh) * 2020-11-26 2021-03-09 江苏特思达电子科技股份有限公司 一种物联网远程设备的安全激活、控制方法及通信系统
CN112468585A (zh) * 2020-11-26 2021-03-09 五八同城信息技术有限公司 数据传输方法、装置、电子设备及存储介质
CN113536242A (zh) * 2021-07-09 2021-10-22 深圳市元征未来汽车技术有限公司 动态库调用方法、装置、终端设备以及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100122343A1 (en) * 2008-09-12 2010-05-13 Anup Ghosh Distributed Sensor for Detecting Malicious Software
CN101908119A (zh) * 2010-08-12 2010-12-08 浙江中控软件技术有限公司 一种动态链接库dll文件的处理方法和装置
CN105635147A (zh) * 2015-12-30 2016-06-01 深圳市图雅丽特种技术有限公司 基于车载特种装备系统的数据安全传输方法及系统
CN106372465A (zh) * 2016-08-30 2017-02-01 北京深思数盾科技股份有限公司 一种动态链接库安全管理方法、系统和电子设备
CN107704765A (zh) * 2017-08-28 2018-02-16 深圳市诚壹科技有限公司 一种接口访问方法、服务器及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100122343A1 (en) * 2008-09-12 2010-05-13 Anup Ghosh Distributed Sensor for Detecting Malicious Software
CN101908119A (zh) * 2010-08-12 2010-12-08 浙江中控软件技术有限公司 一种动态链接库dll文件的处理方法和装置
CN105635147A (zh) * 2015-12-30 2016-06-01 深圳市图雅丽特种技术有限公司 基于车载特种装备系统的数据安全传输方法及系统
CN106372465A (zh) * 2016-08-30 2017-02-01 北京深思数盾科技股份有限公司 一种动态链接库安全管理方法、系统和电子设备
CN107704765A (zh) * 2017-08-28 2018-02-16 深圳市诚壹科技有限公司 一种接口访问方法、服务器及计算机可读存储介质

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019210471A1 (zh) * 2018-05-02 2019-11-07 无锡盈达聚力科技有限公司 一种数据调用方法及数据调用装置
CN109492379A (zh) * 2018-11-28 2019-03-19 北京云纵信息技术有限公司 一种数据安全调用方法及装置
CN109902500A (zh) * 2019-03-11 2019-06-18 北京城市网邻信息技术有限公司 一种通过链接库实现业务调用数据安全的方法及系统
CN109902500B (zh) * 2019-03-11 2021-02-26 北京城市网邻信息技术有限公司 一种通过链接库实现业务调用数据安全的方法及系统
CN109992934A (zh) * 2019-04-10 2019-07-09 苏州浪潮智能科技有限公司 一种响应方法、装置、设备及介质
CN111143087A (zh) * 2019-12-18 2020-05-12 中国平安财产保险股份有限公司 一种接口调用方法、装置、存储介质和服务器
CN111143087B (zh) * 2019-12-18 2024-04-02 中国平安财产保险股份有限公司 一种接口调用方法、装置、存储介质和服务器
CN112434318A (zh) * 2020-11-26 2021-03-02 江苏特思达电子科技股份有限公司 一种物联网远程设备加密方法及系统
CN112469035A (zh) * 2020-11-26 2021-03-09 江苏特思达电子科技股份有限公司 一种物联网远程设备的安全激活、控制方法及通信系统
CN112468585A (zh) * 2020-11-26 2021-03-09 五八同城信息技术有限公司 数据传输方法、装置、电子设备及存储介质
CN112469035B (zh) * 2020-11-26 2023-05-26 江苏特思达电子科技股份有限公司 一种物联网远程设备的安全激活、控制方法及通信系统
CN113536242A (zh) * 2021-07-09 2021-10-22 深圳市元征未来汽车技术有限公司 动态库调用方法、装置、终端设备以及存储介质

Also Published As

Publication number Publication date
CN108628611B (zh) 2022-02-01

Similar Documents

Publication Publication Date Title
CN108628611A (zh) 一种数据调用方法及数据调用装置
US20210064784A1 (en) Managing a smart contract on a blockchain
CN106105146B (zh) 在密码证明资源处保护客户端指定凭证
CN110266467B (zh) 基于区块高度实现动态加密的方法及装置
CN110264192B (zh) 基于交易类型的收据存储方法和节点
CN107743133A (zh) 移动终端及其基于可信安全环境的访问控制方法和系统
CN110263544B (zh) 结合交易类型和判断条件的收据存储方法和节点
CN110245942B (zh) 结合用户类型和判断条件的收据存储方法和节点
CN109886040A (zh) 数据处理方法、装置、存储介质及处理器
CN110223172A (zh) 有条件的结合代码标注与类型维度的收据存储方法和节点
CN110245944B (zh) 基于用户类型的收据存储方法和节点
CN106059762B (zh) 数据安全处理方法及装置
CN113114476B (zh) 基于合约的隐私存证方法及装置
CN109960903A (zh) 一种应用加固的方法、装置、电子设备及存储介质
CN110276610B (zh) 基于交易偏移量实现动态加密的方法及装置
CN107196907A (zh) 一种安卓so文件的保护方法及装置
CN109858255A (zh) 数据加密存储方法、装置及实现装置
CN110263088A (zh) 结合代码标注与事件类型的有条件的收据存储方法和节点
CN108134673A (zh) 一种生成白盒库文件的方法及装置
CN110264197A (zh) 结合事件函数类型和判断条件的收据存储方法和节点
US10572635B2 (en) Automatic correction of cryptographic application program interfaces
CN108183796A (zh) 利用白盒库文件和白盒密钥文件进行加解密的方法及装置
CN108416224B (zh) 一种数据加解密方法及装置
CN110263089A (zh) 结合交易与事件类型的条件限制的收据存储方法和节点
CN106446697A (zh) 隐私数据的保存方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A data call method and data call device

Effective date of registration: 20230131

Granted publication date: 20220201

Pledgee: Bank of Nanjing Limited by Share Ltd. Wuxi branch

Pledgor: WUXI IDATA TECHNOLOGY Co.,Ltd.

Registration number: Y2023320010069

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Granted publication date: 20220201

Pledgee: Bank of Nanjing Limited by Share Ltd. Wuxi branch

Pledgor: WUXI IDATA TECHNOLOGY Co.,Ltd.

Registration number: Y2023320010069

PC01 Cancellation of the registration of the contract for pledge of patent right