一种数据处理方法及装置的制造方法

xiaoxiao2020-10-23  17

一种数据处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其涉及一种数据处理方法及装置。
【背景技术】
[0002]随着手机的飞速发展,手机应用程序得到广泛的普及和应用。普通应用程序,包括单机游戏,均可以通过直接修改内存数据的形式来对数值进行修改,如单机游戏中的金钱数量、生命值等。而对数值不合理的修改,会大大缩短一款应用程序的寿命,从而导致营收的减少。
[0003]现有技术中,为了防止内存数据被修改,仅采用对指定数值进行加密的方法来实现。在写入指定变量的数值时,将数值通过指定算法运算后再进行存储,在读取指定变量的数值时,将存储的数值进行相应的逆运算后再读取。但是,这种方法对每个加密的指定数据都需要增加代码进行处理,处理后也不容易修改代码的逻辑。而且,指定数值的存储位置可以通过低阶分析来获得,同样可以达到修改数值的目的。
[0004]现有技术还可以通过网络传输关键数据来防止关键数据被修改。但是,这种方法必须时时连接网络,若需要保护的关键数据较多,则会消耗过多流量。而且,通过拦截网络封包来获取发送的数据,进而伪造服务器和网络封包也可以达到修改数据的目的。

【发明内容】

[0005]本发明实施例提出一种数据处理方法及装置,能够有效保护内存中的数据不被恶意修改。
[0006]本发明实施例提供一种数据处理方法,包括:
[0007]为N个待存储的变量配置M个存储空间;M彡N彡I ;
[0008]为每个变量指定一个固定的存储空间进行数值存储;
[0009]根据预设的第一移位算法,对所述M个存储空间的比特位进行移位操作。
[0010]进一步地,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括:
[0011]接收数据请求方发送的数据写入请求;所述数据写入请求包含待写入变量的名称和数值;
[0012]判断所述待写入变量的名称是否存在于预设的链表中;所述链表为每个变量的名称与其存储空间的对应关系表;
[0013]若存在,则根据所述待写入变量的名称,从所述链表中查询获得所述待写入变量的存储空间;若不存在,则将所述M个存储空间中的一个空闲的存储空间配置给所述待写入变量,并将所述待写入变量的名称和其存储空间的对应关系保存在所述链表中;
[0014]根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0015]在所述待写入变量的存储空间中写入所述待写入变量的数值;
[0016]根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0017]进一步地,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括:
[0018]接收数据请求方发送的数据读取请求;所述数据读取请求包含待读取变量的名称;
[0019]判断所述待读取变量的名称是否存在于预设的链表中;
[0020]若存在,则根据所述待读取变量的名称,从所述链表中查询获得所述待读取变量的存储空间;若不存在,则返回读取失败提示;
[0021 ] 根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0022]从所述待读取变量的存储空间中读取所述待读取变量的数值,并反馈给所述数据请求方;
[0023]根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0024]在一个优选地实施方式中,在所述为每个变量指定一个固定的存储空间进行数值存储之后,还包括:
[0025]根据预设的第一异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第一加密值,并将所述第一加密值写入对应的存储空间。
[0026]进一步地,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括:
[0027]接收数据请求方发送的数据写入请求;所述数据写入请求包含待写入变量的名称和数值;
[0028]判断所述待写入变量的名称是否存在于预设的链表中;
[0029]若存在,则根据所述待写入变量的名称,从所述链表中查询获得所述待写入变量的存储空间;若不存在,则将所述M个存储空间中的一个空闲的存储空间配置给所述待写入变量,并将所述待写入变量的名称和其存储空间的对应关系保存在所述链表中;
[0030]根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0031]根据所述第一异或算法,对所述M个存储空间中每个第一加密值分别进行异或操作,将每个第一加密值还原成数值;
[0032]在所述待写入变量的存储空间中写入所述待写入变量的数值;
[0033]根据预设的第二异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第二加密值,并将所述第二加密值写入对应的存储空间;
[0034]根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0035]进一步地,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括:
[0036]接收数据请求方发送的数据读取请求;所述数据读取请求包含待读取变量的名称;
[0037]判断所述待读取变量的名称是否存在于预设的链表中;
[0038]若存在,则根据所述待读取变量的名称,从所述链表中查询获得所述待读取变量的存储空间;若不存在,则返回读取失败提示;
[0039]根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0040]根据所述第一异或算法,对所述M个存储空间中每个第一加密值分别进行异或操作,将每个第一加密值还原成数值;
[0041]从所述待读取变量的存储空间中读取所述待读取变量的数值,并反馈给所述数据请求方;
[0042]根据预设的第二异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第二加密值,并将所述第二加密值写入对应的存储空间;
[0043]根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0044]在另一个优选地实施方式中,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括:
[0045]采用哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第一哈希值。
[0046]进一步地,在所述采用哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第一哈希值之后,还包括:
[0047]接收数据请求方发送的数据请求;
[0048]采用所述哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第二哈希值;
[0049]判断所述第二哈希值与所述第一哈希值是否相同;
[0050]若相同,则对所述数据请求进行处理;
[0051 ] 若不相同,则拒绝处理所述数据请求。
[0052]相应地,本发明实施例还提供一种数据处理装置,包括:
[0053]配置模块,用于为N个待存储的变量配置M个存储空间;M彡N彡I ;
[0054]存储模块,用于为每个变量指定一个固定的存储空间进行数值存储;以及,
[0055]移位模块,用于根据预设的第一移位算法,对所述M个存储空间的比特位进行移位操作。
[0056]进一步地,所述数据处理装置还包括:
[0057]第一写入请求接收模块,用于接收数据请求方发送的数据写入请求;所述数据写入请求包含待写入变量的名称和数值;
[0058]第一判断模块,用于判断所述待写入变量的名称是否存在于预设的链表中;所述链表为每个变量的名称与其存储空间的对应关系表;
[0059]第一存储空间获取模块,用于若存在,则根据所述待写入变量的名称,从所述链表中查询获得所述待写入变量的存储空间;若不存在,则将所述M个存储空间中的一个空闲的存储空间配置给所述待写入变量,并将所述待写入变量的名称和其存储空间的对应关系保存在所述链表中;
[0060]第一移位还原模块,用于根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0061]第一写入模块,用于在所述待写入变量的存储空间中写入所述待写入变量的数值;以及,
[0062]第一移位操作模块,用于根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0063]进一步地,所述数据处理装置还包括:
[0064]第一读取请求接收模块,用于接收数据请求方发送的数据读取请求;所述数据读取请求包含待读取变量的名称;
[0065]第一名称判断模块,用于判断所述待读取变量的名称是否存在于预设的链表中;
[0066]第一存储空间查询模块,用于若存在,则根据所述待读取变量的名称,从所述链表中查询获得所述待读取变量的存储空间;若不存在,则返回读取失败提示;
[0067]第一还原模块,用于根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0068]第一读取模块,用于从所述待读取变量的存储空间中读取所述待读取变量的数值,并反馈给所述数据请求方;以及,
[0069]第一操作模块,用于根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0070]在一个优选地实施方式中,所述数据处理装置还包括:
[0071]异或加密模块,用于根据预设的第一异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第一加密值,并将所述第一加密值写入对应的存储空间。
[0072]进一步地,所述数据处理装置还包括:
[0073]第二写入请求接收模块,用于接收数据请求方发送的数据写入请求;所述数据写入请求包含待写入变量的名称和数值;
[0074]第二判断模块,用于判断所述待写入变量的名称是否存在于预设的链表中;
[0075] 第二存储空间获取模块,用于若存在,则根据所述待写入变量的名称,从所述链表中查询获得所述待写入变量的存储空间;若不存在,则将所述M个存储空间中的一个空闲的存储空间配置给所述待写入变量,并将所述待写入变量的名称和其存储空间的对应关系保存在所述链表中;
[0076]第二移位还原模块,用于根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0077]异或模块,用于根据所述第一异或算法,对所述M个存储空间中每个第一加密值分别进行异或操作,将每个第一加密值还原成数值;
[0078]第二写入模块,在所述待写入变量的存储空间中写入所述待写入变量的数值;
[0079]加密模块,用于根据预设的第二异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第二加密值,并将所述第二加密值写入对应的存储空间;以及,
[0080]第二移位操作模块,用于根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0081]进一步地,所述数据处理装置还包括:
[0082]第二读取请求接收模块,用于接收数据请求方发送的数据读取请求;所述数据读取请求包含待读取变量的名称;
[0083]第二名称判断模块,用于判断所述待读取变量的名称是否存在于预设的链表中;
[0084]第二存储空间查询模块,用于若存在,则根据所述待读取变量的名称,从所述链表中查询获得所述待读取变量的存储空间;若不存在,则返回读取失败提示;
[0085]第二还原模块,用于根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0086]加密值还原模块,用于根据所述第一异或算法,对所述M个存储空间中每个第一加密值分别进行异或操作,将每个第一加密值还原成数值;
[0087]第二读取模块,用于从所述待读取变量的存储空间中读取所述待读取变量的数值,并反馈给所述数据请求方;
[0088]加密值获取模块,用于根据预设的第二异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第二加密值,并将所述第二加密值写入对应的存储空间;以及,
[0089]第二操作模块,用于根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0090]在另一个优选地实施方式中,所述数据处理装置还包括:
[0091]计算模块,用于采用哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第一哈希值。
[0092]进一步地,所述数据处理装置还包括:
[0093]数据请求接收模块,用于接收数据请求方发送的数据请求;
[0094]哈希值获取模块,用于采用所述哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第二哈希值;
[0095]哈希值判断模块,用于判断所述第二哈希值与所述第一哈希值是否相同;
[0096]请求处理模块,用于若相同,则对所述数据请求进行处理;以及,
[0097]请求拒绝模块,用于若不相同,则拒绝处理所述数据请求。
[0098]实施本发明实施例,具有如下有益效果:
[0099]本发明实施例提供的数据处理方法及装置,能够为每个变量指定一个固定的存储空间进行数值存储,并对所有存储空间的比特位进行移位操作来改变每个变量的存储空间,从而防止变量的存储空间通过内存扫描获得,有效保护内存中的数据不被恶意修改;在每次写入或读取存储空间中的数据后,采用不同的移位算法改变每个变量的存储空间,更有效地保护存储空间中的数据;对每个变量的数值进行异或加密,防止用户非法获得变量的明文,而且,在每次写入或读取存储空间中的数据后,采用不同的异或算法对变量的数值进行加密,进一步有效保护内存中的数据不被恶意修改;在每次接收到数据请求时,对存储空间中的所有数据采用哈希算法进行计算,并将计算后的哈希值与预先保存的哈希值进行对比,若两个哈希值不同,则拒绝处理数据请求,能够及时发现内存中的数据被非法篡改。本发明实施例可被应用到单机游戏中,能够保证游戏数据的安全。
【附图说明】
[0100]图1是本发明提供的数据处理方法的一个实施例的流程示意图;
[0101]图2是本发明提供的数据处理方法的一个实施方式的流程示意图;
[0102]图3是本发明提供的数据处理方法的另一个实施方式的流程示意图;
[0103]图4是本发明提供的数据处理装置的一个实施例的结构示意图。
【具体实施方式】
[0104]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0105]参见图1,是本发明提供的数据处理方法的第一个实施例的流程示意图。
[0106]本发明实施例提供一种数据处理方法,包括:
[0107]S1、为N个待存储的变量配置M个存储空间;M彡N彡I ;
[0108]S2、为每个变量指定一个固定的存储空间进行数值存储;
[0109]S3、根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0110]其中,为N个待存储的变量配置M个存储空间,并为每个变量指定一个固定的存储空间,同时,在M个存储空间中预留出空闲的存储空间,例如,要存储80个变量,则需配置80个以上的存储空间。预先建立一个链表,将每个变量的名称及其存储空间的对应关系保存在该链表中。预先建立多个移位表,一般建议移位表个数在64个以上,其中,移位表描述了M个存储空间的所有比特位之间的移位关系。根据不同的移位表设置不同的移位算法,使每个变量的存储空间根据不同的移位算法进行移位操作。
[0111]在变量存储后,随机选取一个第一移位表,并记录下第一移位表的表号。米用第一移位算法,即根据第一移位表对M个存储空间的所有比特位进行移位操作。例如,配置有M=100个存储空间,每个存储空间具有8个比特位,即M个存储空间共有800个比特位,根据第一移位表对所有比特位进行移位操作,即将第I个比特位移至第200个比特位的位置,将第200个比特位移至第456个比特位的位置,将第456个比特位移至第321个比特位的位置等等,直到800个比特位全部进行移位操作。通过对M个存储空间的所有比特位的移位操作,防止变量的存储空间通过内存扫描获得,有效保护内存中的数据不被恶意修改。
[0112]在一个优选地实施方式中,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括:
[0113]接收数据请求方发送的数据写入请求;所述数据写入请求包含待写入变量的名称和数值;
[0114]判断所述待写入变量的名称是否存在于预设的链表中;所述链表为每个变量的名称与其存储空间的对应关系表;
[0115]若存在,则根据所述待写入变量的名称,从所述链表中查询获得所述待写入变量的存储空间;若不存在,则将所述M个存储空间中的一个空闲的存储空间配置给所述待写入变量,并将所述待写入变量的名称和其存储空间的对应关系保存在所述链表中;
[0116]根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0117]在所述待写入变量的存储空间中写入所述待写入变量的数值;
[0118]根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0119]需要说明的是,在接收到数据写入请求时,先从链表中查询是否存在待写入变量的名称,若存在,直接从链表中查询该变量的存储空间即可;若不存在,则将M个存储空间中预留的一个空闲的存储空间指定给该变量,并将该变量的名称和指定的存储空间的对应关系保存在链表中,方便对该变量存储空间的再次查询。
[0120]在查询到待写入变量的存储空间时,先根据预先记录的第一移位表的表号,选取第一移位表对M个存储空间的所有比特位进行移位还原,即还原为变量进行存储时的存储空间。找到待写入变量的存储空间,将待写入变量的数值写入该存储空间中,即可实现变量数值的写入。在完成写入后,随机选取另一个第二移位表,并记录下第二移位表的表号,采用第二移位算法,即根据第二移位表对M个存储空间的所有比特位进行移位操作。在每次写入后,均采用不同的移位算法来对M个存储空间的所有比特位进行移位,更有效的保护存储空间中的数据。
[0121]在另一个优选地实施方式中,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括:
[0122]接收数据请求方发送的数据读取请求;所述数据读取请求包含待读取变量的名称;
[0123]判断所述待读取变量的名称是否存在于预设的链表中;
[0124]若存在,则根据所述待读取变量的名称,从所述链表中查询获得所述待读取变量的存储空间;若不存在,则返回读取失败提示;
[0125]根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0126]从所述待读取变量的存储空间中读取所述待读取变量的数值,并反馈给所述数据请求方;
[0127]根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0128]需要说明的是,在接收到数据读取请求时,先从链表中查询是否存在读取入变量的名称,若存在,直接从链表中查询该变量的存储空间即可;若不存在,则请求错误,拒绝处理该请求。
[0129]在查询到待读取变量的存储空间时,先根据预先记录的第一移位表的表号,选取第一移位表对M个存储空间的所有比特位进行移位还原,即还原为变量进行存储时的存储空间。找到待读取变量的存储空间,从该存储空间中读取数值,并将该数值反馈给数据请求方,即可实现变量数值的读取。在完成读取后,随机选取另一个第二移位表,并记录下第二移位表的表号,采用第二移位算法,即根据第二移位表对M个存储空间的所有比特位进行移位操作。在每次读取后,均采用不同的移位算法来对 M个存储空间的所有比特位进行移位,更有效的保护存储空间中的数据。
[0130]在本实施例中,进一步地,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括:
[0131]采用哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第一哈希值。
[0132]进一步地,在所述采用哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第一哈希值之后,还包括:
[0133]接收数据请求方发送的数据请求;
[0134]采用所述哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第二哈希值;
[0135]判断所述第二哈希值与所述第一哈希值是否相同;
[0136]若相同,则对所述数据请求进行处理;
[0137]若不相同,则拒绝处理所述数据请求。
[0138]需要说明的是,在每次移位操作后,还可采用哈希算法,对M个存储空间中的所有数值进行计算,获得哈希值并进行保存。在每次接收到数据请求时,采用哈希算法,对M个存储空间中的所有数值进行再次计算,并通过判断两次哈希值是否相同来判断存储空间是否有数值被恶意修改。若相同,说明数值未被恶意修改,则对数据请求进行处理,处理方法可以为本实施例中接收到数据写入请求或数据读取请求的处理方法;若不相同,说明数值已被恶意修改,则拒绝处理该请求。
[0139]本发明还提供数据处理方法的第二个实施例。
[0140]与上述第一实施例相比,第二实施例提供的数据处理方法的不同点在于:
[0141]在所述为每个变量指定一个固定的存储空间进行数值存储之后,还包括:
[0142]根据预设的第一异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第一加密值,并将所述第一加密值写入对应的存储空间。
[0143]其中,预先建立多个异或表,一般建议异或表个数在64个以上,根据不同的异或表设置不同的异或算法,使每个变量的数值根据不同的异或算法进行异或加密。在异或加密时,随机选取一个第一异或表,并记录下第一异或表的表号,采用第一异或算法,将M个存储空间中的所有数值转换为二进制值,分别对每个比特位进行异或加密,从而防止用户非法获得每个变量的明文。
[0144]在一个优选地实施方式中,如图2所示,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括:
[0145]S201、接收数据请求方发送的数据写入请求;所述数据写入请求包含待写入变量的名称和数值;
[0146]S202、判断所述待写入变量的名称是否存在于预设的链表中;若存在,则执行步骤S203,若不存在,则执行步骤S204 ;
[0147]S203、根据所述待写入变量的名称,从所述链表中查询获得所述待写入变量的存储空间,并继续执行步骤S205 ;
[0148]S204、将所述M个存储空间中的一个空闲的存储空间配置给所述待写入变量,并将所述待写入变量的名称和其存储空间的对应关系保存在所述链表中,并继续执行步骤S205 ;
[0149]S205、根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0150]S206、根据所述第一异或算法,对所述M个存储空间中每个第一加密值分别进行异或操作,将每个第一加密值还原成数值;
[0151]S207、在所述待写入变量的存储空间中写入所述待写入变量的数值;
[0152]S208、根据预设的第二异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第二加密值,并将所述第二加密值写入对应的存储空间;
[0153]S209、根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0154]需要说明的是,在接收到数据写入请求时,先从链表中查询是否存在待写入变量的名称,若存在,直接从链表中查询该变量的存储空间即可;若不存在,则将M个存储空间中预留的一个空闲的存储空间指定给该变量,并将该变量的名称和指定的存储空间的对应关系保存在链表中,方便对该变量存储空间的再次查询。
[0155]在查询到待写入变量的存储空间时,根据预先记录的第一移位表的表号,选取第一移位表对M个存储空间的所有比特位进行移位还原,即还原为变量进行存储时的存储空间。同时,根据预先记录的第一异或表的表号,选取第一异或表对M个存储空间中的所有第一加密值进行异或操作,还原为数值。找到待写入变量的存储空间,将待写入变量的数值写入该存储空间中,即可实现变量数值的写入。在完成写入后,随机选取另一个第二异或表,并记录下第二异或表的表号,采用第二异或算法,即根据第二异或表对M个存储空间中的所有数值进行异或加密。同时,随机选取另一个第二移位表,并记录下第二移位表的表号,采用第二移位算法,即根据第二移位表对M个存储空间的所有比特位进行移位操作。在每次写入后,均采用不同的异或算法和移位算法来对M个存储空间的所有比特位进行移位,更有效的保护存储空间中的数据。
[0156]在另一个优选地实施方式中,如图3所示,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括:
[0157]S301、接收数据请求方发送的数据读取请求;所述数据读取请求包含待读取变量的名称;
[0158]S302、判断所述待读取变量的名称是否存在于预设的链表中;若存在,则执行步骤S303,若不存在,则执行步骤S304 ;
[0159]S303、根据所述待读取变量的名称,从所述链表中查询获得所述待读取变量的存储空间,并继续执行步骤S305 ;
[0160]S304、返回读取失败提示;
[0161 ] S305、根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0162]S306、根据所述第一异或算法,对所述M个存储空间中每个第一加密值分别进行异或操作,将每个第一加密值还原成数值;
[0163]S307、从所述待读取变量的存储空间中读取所述待读取变量的数值,并反馈给所述数据请求方;
[0164]S308、根据预设的第二异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第二加密值,并将所述第二加密值写入对应的存储空间;
[0165]S309、根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0166]需要说明的是,在接收到数据读取请求时,先从链表中查询是否存在待读取变量的名称,若存在,直接从链表中查询该变量的存储空间即可;若不存在,则请求错误,拒绝处理该请求。
[0167]在查询到待读取变量的存储空间时,根据预先记录的第一移位表的表号,选取第一移位表对M个存储空间的所有比特位进行移位还原,即还原为变量进行存储时的存储空间。同时,根据预先记录的第一异或表的表号,选取第一异或表对M个存储空间中的所有第一加密值进行异或操作,还原为数值。找到待读取变量的存储空间,从该存储空间中读取数值,并反馈给数据请求方,即可实现变量数值的读取。在完成读取后,随机选取另一个第二异或表,并记录下第二异或表的表号,采用第二异或算法,即根据第二异或表对M个存储空间中的所有数值进行异或加密。同时,随机选取另一个第二移位表,并记录下第二移位表的表号,采用第二移位算法,即根据第二移位表对M个存储空间的所有比特位进行移位操作。在每次读取后,均采用不同的异或算法和移位算法来对M个存储空间的所有比特位进行移位,更有效的保护存储空间中的数据。
[0168]在本实施例中,进一步地,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括:
[0169]采用哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第一哈希值。
[0170]进一步地,在所述采用哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第一哈希值之后,还包括:
[0171]接收数据请求方发送的数据请求;
[0172]采用所述哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第二哈希值;
[0173]判断所述第二哈希值与所述第一哈希值是否相同;
[0174]若相同,则对所述数据请求进行处理;
[0175]若不相同,则拒绝处理所述数据请求。
[0176]需要说明的是,在每次移位操作后,还可采用哈希算法,对M个存储空间中的所有数值进行计算,获得哈希值并进行保存。在每次接收到数据请求时,采用哈希算法,对M个存储空间中的所有数值进行再次计算,并通过判断两次哈希值是否相同来判断存储空间是否有数值被恶意修改。若相同,说明数值未被恶意修改,则对数据请求进行处理,处理方法可以为本实施例中接收到数据写入请求或数据读取请求的处理方法;若不相同,说明数值已被恶意修改,则拒绝处理该请求。
[0177]本发明实施例提供的数据处理方法,能够为每个变量指定一个固定的存储空间进行数值存储,并对所有存储空间的比特位进行移位操作来改变每个变量的存储空间,从而防止变量的存储空间通过内存扫描获得,有效保护内存中的数据不被恶意修改;在每次写入或读取存储空间中的数据后,采用不同的移位算法改变每个变量的存储空间,更有效地保护存储空间中的数据;对每个变量的数值进行异或加密,防止用户非法获得变量的明文,而且,在每次写入或读取存储空间中的数据后,采用不同的异或算法对变量的数值进行加密,进一步有效保护内存中的数据不被恶意修改;在每次接收到数据请求时,对存储空间中的所有数据采用哈希算法进行计算,并将计算后的哈希值与预先保存的哈希值进行对比,若两个哈希值不同,则拒绝处理数据请求,能够及时发现内存中的数据被非法篡改。本发明实施例可被应用到单机游戏中,能够保证游戏数据的安全。
[0178]相应的,本发明还提供一种数据处理装置,能够实现上述实施例中的数据处理方法的所有流程。
[0179]参见图4,是本发明提供的数据处理装置的一个实施例的结构示意图,包括:
[0180]配置模块1,用于为N个待存储的变量配置M个存储空间; M>N> I ;
[0181]存储模块2,用于为每个变量指定一个固定的存储空间进行数值存储;以及,
[0182]移位模块3,用于根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0183]进一步地,所述数据处理装置还包括:
[0184]第一写入请求接收模块,用于接收数据请求方发送的数据写入请求;所述数据写入请求包含待写入变量的名称和数值;
[0185]第一判断模块,用于判断所述待写入变量的名称是否存在于预设的链表中;所述链表为每个变量的名称与其存储空间的对应关系表;
[0186]第一存储空间获取模块,用于若存在,则根据所述待写入变量的名称,从所述链表中查询获得所述待写入变量的存储空间;若不存在,则将所述M个存储空间中的一个空闲的存储空间配置给所述待写入变量,并将所述待写入变量的名称和其存储空间的对应关系保存在所述链表中;
[0187]第一移位还原模块,用于根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0188]第一写入模块,用于在所述待写入变量的存储空间中写入所述待写入变量的数值;以及,
[0189]第一移位操作模块,用于根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0190]进一步地,所述数据处理装置还包括:
[0191]第一读取请求接收模块,用于接收数据请求方发送的数据读取请求;所述数据读取请求包含待读取变量的名称;
[0192]第一名称判断模块,用于判断所述待读取变量的名称是否存在于预设的链表中;
[0193]第一存储空间查询模块,用于若存在,则根据所述待读取变量的名称,从所述链表中查询获得所述待读取变量的存储空间;若不存在,则返回读取失败提示;
[0194]第一还原模块,用于根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0195]第一读取模块,用于从所述待读取变量的存储空间中读取所述待读取变量的数值,并反馈给所述数据请求方;以及,
[0196]第一操作模块,用于根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0197]在一个优选地实施方式中,所述数据处理装置还包括:
[0198]异或加密模块,用于根据预设的第一异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第一加密值,并将所述第一加密值写入对应的存储空间。
[0199]进一步地,所述数据处理装置还包括:
[0200]第二写入请求接收模块,用于接收数据请求方发送的数据写入请求;所述数据写入请求包含待写入变量的名称和数值;
[0201]第二判断模块,用于判断所述待写入变量的名称是否存在于预设的链表中;
[0202]第二存储空间获取模块,用于若存在,则根据所述待写入变量的名称,从所述链表中查询获得所述待写入变量的存储空间;若不存在,则将所述M个存储空间中的一个空闲的存储空间配置给所述待写入变量,并将所述待写入变量的名称和其存储空间的对应关系保存在所述链表中;
[0203]第二移位还原模块,用于根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0204]异或模块,用于根据所述第一异或算法,对所述M个存储空间中每个第一加密值分别进行异或操作,将每个第一加密值还原成数值;
[0205]第二写入模块,在所述待写入变量的存储空间中写入所述待写入变量的数值;
[0206]加密模块,用于根据预设的第二异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第二加密值,并将所述第二加密值写入对应的存储空间;以及,
[0207]第二移位操作模块,用于根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0208]进一步地,所述数据处理装置还包括:
[0209]第二读取请求接收模块,用于接收数据请求方发送的数据读取请求;所述数据读取请求包含待读取变量的名称;
[0210]第二名称判断模块,用于判断所述待读取变量的名称是否存在于预设的链表中;
[0211]第二存储空间查询模块,用于若存在,则根据所述待读取变量的名称,从所述链表中查询获得所述待读取变量的存储空间;若不存在,则返回读取失败提示;
[0212]第二还原模块,用于根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原;
[0213]加密值还原模块,用于根据所述第一异或算法,对所述M个存储空间中每个第一加密值分别进行异或操作,将每个第一加密值还原成数值;
[0214]第二读取模块,用于从所述待读取变量的存储空间中读取所述待读取变量的数值,并反馈给所述数据请求方;
[0215]加密值获取模块,用于根据预设的第二异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第二加密值,并将所述第二加密值写入对应的存储空间;以及,
[0216]第二操作模块,用于根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。
[0217]在另一个优选地实施方式中,所述数据处理装置还包括:
[0218]计算模块,用于采用哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第一哈希值。
[0219]进一步地,所述数据处理装置还包括:
[0220]数据请求接收模块,用于接收数据请求方发送的数据请求;
[0221]哈希值获取模块,用于采用所述哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第二哈希值;
[0222]哈希值判断模块,用于判断所述第二哈希值与所述第一哈希值是否相同;
[0223]请求处理模块,用于若相同,则对所述数据请求进行处理;以及,
[0224]请求拒绝模块,用于若不相同,则拒绝处理所述数据请求。
[0225]本发明实施例提供的数据处理装置,能够为每个变量指定一个固定的存储空间进行数值存储,并对所有存储空间的比特位进行移位操作来改变每个变量的存储空间,从而防止变量的存储空间通过内存扫描获得,有效保护内存中的数据不被恶意修改;在每次写入或读取存储空间中的数据后,采用不同的移位算法改变每个变量的存储空间,更有效地保护存储空间中的数据;对每个变量的数值进行异或加密,防止用户非法获得变量的明文,而且,在每次写入或读取存储空间中的数据后,采用不同的异或算法对变量的数值进行加密,进一步有效保护内存中的数据不被恶意修改;在每次接收到数据请求时,对存储空间中的所有数据采用哈希算法进行计算,并将计算后的哈希值与预先保存的哈希值进行对比,若两个哈希值不同,则拒绝处理数据请求,能够及时发现内存中的数据被非法篡改。本发明实施例可被应用到单机游戏中,能够保证游戏数据的安全。
[0226]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0227]专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能宄竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0228]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0229]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种数据处理方法,其特征在于,包括: 为N个待存储的变量配置M个存储空间;M彡N彡I ; 为每个变量指定一个固定的存储空间进行数值存储; 根据预设的第一移位算法,对所述M个存储空间的比特位进行移位操作。2.如权利要求1所述的数据处理方法,其特征在于,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括: 接收数据请求方发送的数据写入请求;所述数据写入请求包含待写入变量的名称和数值; 判断所述待写入变量的名称是否存在于预设的链表中;所述链表为每个变量的名称与其存储空间的对应关系表; 若存在,则根据所述待写入变量的名称,从所述链表中查询获得所述待写入变量的存储空间;若不存在,则将所述M个存储空间中的一个空闲的存储空间配置给所述待写入变量,并将所述待写入变量的名称和其存储空间的对应关系保存在所述链 表中; 根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原; 在所述待写入变量的存储空间中写入所述待写入变量的数值; 根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。3.如权利要求1或2所述的数据处理方法,其特征在于,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括: 接收数据请求方发送的数据读取请求;所述数据读取请求包含待读取变量的名称; 判断所述待读取变量的名称是否存在于预设的链表中; 若存在,则根据所述待读取变量的名称,从所述链表中查询获得所述待读取变量的存储空间;若不存在,则返回读取失败提示; 根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原; 从所述待读取变量的存储空间中读取所述待读取变量的数值,并反馈给所述数据请求方; 根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。4.如权利要求1所述的数据处理方法,其特征在于,在所述为每个变量指定一个固定的存储空间进行数值存储之后,还包括: 根据预设的第一异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第一加密值,并将所述第一加密值写入对应的存储空间。5.如权利要求4所述的数据处理方法,其特征在于,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括: 接收数据请求方发送的数据写入请求;所述数据写入请求包含待写入变量的名称和数值; 判断所述待写入变量的名称是否存在于预设的链表中; 若存在,则根据所述待写入变量的名称,从所述链表中查询获得所述待写入变量的存储空间;若不存在,则将所述M个存储空间中的一个空闲的存储空间配置给所述待写入变量,并将所述待写入变量的名称和其存储空间的对应关系保存在所述链表中; 根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原; 根据所述第一异或算法,对所述M个存储空间中每个第一加密值分别进行异或操作,将每个第一加密值还原成数值; 在所述待写入变量的存储空间中写入所述待写入变量的数值; 根据预设的第二异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第二加密值,并将所述第二加密值写入对应的存储空间; 根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。6.如权利要求4或5所述的数据处理方法,其特征在于,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括: 接收数据请求方发送的数据读取请求;所述数据读取请求包含待读取变量的名称; 判断所述待读取变量的名称是否存在于预设的链表中; 若存在,则根据所述待读取变量的名称,从所述链表中查询获得所述待读取变量的存储空间;若不存在,则返回读取失败提示; 根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原; 根据所述第一异或算法,对所述M个存储空间中每个第一加密值分别进行异或操作,将每个第一加密值还原成数值; 从所述待读取变量的存储空间中读取所述待读取变量的数值,并反馈给所述数据请求方; 根据预设的第二异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第二加密值,并将所述第二加密值写入对应的存储空间; 根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。7.如权利要求1或4所述的数据处理方法,其特征在于,在所述根据预设的第一移位算法,对所述M个存储空间的所有比特位进行移位操作之后,还包括: 采用哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第一哈希值。8.如权利要求7所述的数据处理方法,其特征在于,在所述采用哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第一哈希值之后,还包括: 接收数据请求方发送的数据请求; 采用所述哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第二哈希值; 判断所述第二哈希值与所述第一哈希值是否相同; 若相同,则对所述数据请求进行处理; 若不相同,则拒绝处理所述数据请求。9.一种数据处理装置,其特征在于,包括: 配置模块,用于为N个待存储的变量配置M个存储空间;M多N多I ; 存储模块,用于为每个变量指定一个固定的存储空间进行数值存储;以及, 移位模块,用于根据预设的第一移位算法,对所述M个存储空间的比特位进行移位操作。10.如权利要求9所述的数据处理装置,其特征在于,所述数据处理装置还包括: 第一写入请求接收模块,用于接收数据请求方发送的数据写入请求;所述数据写入请求包含待写入变量的名称和数值; 第一判断模块,用于判断所述待写入变量的名称是否存在于预设的链表中;所述链表为每个变量的名称与其存储空间的对应关系表; 第一存储空间获取模块,用于若存在,则根据所述待写入变量的名称,从所述链表中查询获得所述待写入变量的存储空间;若不存在,则将所述M个存储空间中的一个空闲的存储空间配置给所述待写入变量,并将所述待写入变量的名称和其存储空间的对应关系保存在所述链表中; 第一移位还原模块,用于根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原; 第一写入模块,用于在所述待写入变量的存储空间中写入所述待写入变量的数值;以及, 第一移位操作模块,用于根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。11.如权利要求9或10所述的数据处理装置,其特征在于,所述数据处理装置还包括: 第一读取请求接收模块,用于接收数据请求方发送的数据读取请求;所述数据读取请求包含待读取变量的名称; 第一名称判断模块,用于判断所述待读取变量的名称是否存在于预设的链表中; 第一存储空间查询模块,用于若存在,则根据所述待读取变量的名称,从所述链表中查询获得所述待读取变量的存储空间;若不存在,则返回读取失败提示; 第一还原模块,用于根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原; 第一读取模块,用于从所述待读取变量的存储空间中读取所述待读取变量的数值,并反馈给所述数据请求方;以及, 第一操作模块,用于根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。12.如权利要求9所述的数据处理装置,其特征在于,所述数据处理装置还包括: 异或加密模块,用于根据预设的第一异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第一加密值,并将所述第一加密值写入对应的存储空间。13.如权利要求12所述的数据处理装置,其特征在于,所述数据处理装置还包括: 第二写入请求接收模块,用于接收数据请求方发送的数据写入请求;所述数据写入请求包含待写入变量的名称和数值; 第二判断模块,用于判断所述待写入变量的名称是否存在于预设的链表中; 第二存储空间获取模块,用于若存在,则根据所述待写入变量的名称,从所述链表中查询获得所述待写入变量的存储空间;若不存在,则将所述M个存储空间中的一个空闲的存储空间配置给所述待写入变量,并将所述待写入变量的名称和其存储空间的对应关系保存在所述链表中; 第二移位还原模块,用于根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原; 异或模块,用于根据所述第一异或算法,对所述M个存储空间中每个第一加密值分别进行异或操作,将每个第一加密值还原成数值; 第二写入模块,在所述待写入变量的存储空间中写入所述待写入变量的数值; 加密模块,用于根据预设的第二异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第二加密值,并将所述第二加密值写入对应的存储空间;以及, 第二移位操作模块,用于根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。14.如权利要求12或13所述的数据处理装置,其特征在于,所述数据处理装置还包括: 第二读取请求接收模块,用于接收数据请求方发送的数据读取请求;所述数据读取请求包含待读取变量的名称; 第二名称判断模块,用于判断所述待读取变量的名称是否存在于预设的链表中; 第二存储空间查询模块,用于若存在,则根据所述待读取变量的名称,从所述链表中查询获得所述待读取变量的存储空间;若不存在,则返回读取失败提示; 第二还原模块,用于根据所述第一移位算法,对所述M个存储空间的所有比特位进行移位还原; 加密值还原模块,用于根据所述第一异或算法,对所述M个存储空间中每个第一加密值分别进行异或操作,将每个第一加密值还原成数值; 第二读取模块,用于从所述待读取变量的存储空间中读取所述待读取变量的数值,并反馈给所述数据请求方; 加密值获取模块,用于根据预设的第二异或算法,对每个存储空间中的数值分别进行异或加密,获得每个数值的第二加密值,并将所述第二加密值写入对应的存储空间;以及,第二操作模块,用于根据预设的第二移位算法,对所述M个存储空间的所有比特位进行移位操作。15.如权利要求9或12所述的数据处理装置,其特征在于,所述数据处理装置还包括: 计算模块,用于采用哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第一哈希值。16.如权利要求15所述的数据处理装置,其特征在于,所述数据处理装置还包括: 数据请求接收模块,用于接收数据请求方发送的数据请求; 哈希值获取模块,用于采用所述哈希算法,对所述M个存储空间中的所有比特位的值进行计算,获得第二哈希值; 哈希值判断模块,用于判断所述第二哈希值与所述第一哈希值是否相同; 请求处理模块,用于若相同,则对所述数据请求进行处理;以及, 请求拒绝模块,用于若不相同,则拒绝处理所述数据请求。
【专利摘要】本发明公开了一种数据处理方法及装置。所述数据处理方法包括:为N个待存储的变量配置M个存储空间;M≥N≥1;为每个变量指定一个固定的存储空间进行数值存储;根据预设的第一移位算法,对所述M个存储空间的比特位进行移位操作。采用本发明实施例,能够有效保护内存中的数据不被恶意修改;本发明实施例可被应用到单机游戏中,能够保证游戏数据的安全。
【IPC分类】G06F21/62
【公开号】CN104899522
【申请号】CN201510313189
【发明人】冯世杰
【申请人】网易(杭州)网络有限公司
【公开日】2015年9月9日
【申请日】2015年6月9日

最新回复(0)