System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及到数据结构、数据存储和系统内存分配的原理及方法。
技术介绍
1、随着移动互联网的崛起,各种应用在使用过程中产生的大量的数据都需要进行存储,除强联网的应用或游戏在存储或运算时全部通过服务端进行外,大部分脱机或弱联网的应用与游戏则会将数据在本地进行逻辑运算和保存。
2、数据在本地保存时,可以对保存的数据使用加密算法后进行保存,但在运行时,数据都是通过变量的方式在内存栈中进行暂存,这就给攻击者或破坏者一个修改数据的机会。若对内存中的变量也采用加密方式存储,由于数据运算与交换密集,频繁进行解密->运算->加密的形式,会让应用的性能开销变得很大,并不是一个有效的杜绝攻击者在内存中修改数据的方法。
技术实现思路
1、在内存地址查找方面,通常使用精确查找和模糊查找两种方式,精确查找用于查找那些没有做过任何数据保护的内存变量。扫描整个应用占用的内存地址中符合此数值16进制的内存地址,在完成第一次扫描后保存下这次符合条件的地址,当数据发生变化后,对前一次满足条件的地址再进行扫描,查找出第二次满足条件的地址,以此类推。通常通过2-3次的查找就能锁定这个数值在内存中的地址,并在内存中进行修改。这就是一个基本的对应用或游戏修改数值的方法。
2、模糊查找也类似,所不同的是只能知道增减,并不知道具体数值,如在应用或游戏的界面中使用血槽这样的进度条来表示,同样也能通过对内存地址的多次扫描锁定到对应值的内存地址。可以看出,当我们分配变量后,数据放在内存中的位置是固
3、
4、本方法通过将数值数据进行拆分成多个子变量,每个变量随便保存原变量的一部分,当数据发现变化时,这些子变量数据会全部汇总赋予原变量进行运行,运算结束后,再随机拆分交由其子变量进行保存。
5、首先,在内存中一个变量数值被拆成了多个变量,无法通过精确查找的方式,找到所需要数值在内存中的地址。当数值发生增减变化后,子变量数据汇总完成运算后,又被分配保存,假如源数据发生了增加变化,运算过后,由于子变量是随机分配保存,并不能确保第一次承担保存部分源变量的子变量,在数据发生增加变化后,不能保证继续承担保存数据的职能,以及所分配保存的部分一定是增加,所以使得模糊查找方式也不能定位到变量在内存中的地址,从而达到保护数据免被篡改的目的。
6、
7、以上即为如何有效的在内存栈中隐藏内存地址的方法,在实践过程中,可以通过编写一个类实现赋值、取值、分配数组,取址以及基础运算等方法,以简化代码编写,提高工作效率。本方法是通过对数据的加工,以达到防止攻击者在程序运行时通过内存来篡改数据的目的,同时在隐藏真实数据地址方面,还可以通过增加一个异或运算的步骤,对数据进行进一步的伪装。
本文档来自技高网...【技术保护点】
1.一种对数据在内存地址中进行伪装和隐藏的方法,其特征在于一个变量的数据变为多个变量来汇总保存,这样,在内存中,原本一个变量的内存地址,将会变为多个内存地址保存,以防止内存扫描工具对指定数据的扫描,从而达到保护数据安全的要求。
2.根据权利要求1所太空,一种对数据在内存地址中进行伪装和隐藏的方法,其特征在于:原变量与伪装变量数组之间是联动关系,真实数据在变量数组当中,数据发生改变后,变量数组找散数据保存,原变量可通过变量数组中提取到正确数据后写入内存地址中,做为诱饵。
3.根据权利要求1所述,一种对数据在内存地址中进行伪装和隐藏的方法,其特征在于:一个变量在内存中保存的数据将由多个变量地址进行保存,由于是一个同数据类型变量数组,所以在内存中是一个连续的内存块。
4.原变量数据的变化,除原变量的内存地址数据发生变化外,还会引发另一个连续内存块中的数据发生变动。
【技术特征摘要】
1.一种对数据在内存地址中进行伪装和隐藏的方法,其特征在于一个变量的数据变为多个变量来汇总保存,这样,在内存中,原本一个变量的内存地址,将会变为多个内存地址保存,以防止内存扫描工具对指定数据的扫描,从而达到保护数据安全的要求。
2.根据权利要求1所太空,一种对数据在内存地址中进行伪装和隐藏的方法,其特征在于:原变量与伪装变量数组之间是联动关系,真实数据在变量数组当中,数据发生改变后,变量...
【专利技术属性】
技术研发人员:潘文宇,邢青,徐伟峰,
申请(专利权)人:新国脉数字文化股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。