返回顶部
首页 > 资讯 > 精选 >或与运算和安全整数(数的影子)
  • 697
分享到

或与运算和安全整数(数的影子)

2023-06-05 03:06:50 697人浏览 薄情痞子
摘要

​ 八门神器是安卓、iOS、塞班平台上通用的游戏修改工具,可以修改内存中的数值和参数。在游戏运行时,内存和处理器都会对于游戏进行非常复杂的数据交换和变更。因为游戏有很多的数据,例如金钱、HP值、等级、攻击力、防御力、战斗力等数据,尤其

​ 八门神器是安卓、iOS、塞班平台上通用的游戏修改工具,可以修改内存中的数值和参数。在游戏运行时,内存和处理器都会对于游戏进行非常复杂的数据交换和变更。因为游戏有很多的数据,例如金钱、HP值、等级、攻击力、防御力、战斗力等数据,尤其是PVE战斗在客户端进行。服务器校验缺失等。而这些数据,就在内存和处理器的各个地址当中,玩家只需要在八门神器中搜索相关的数据值,八门神器就会将搜索出记录此数据的各个地址显示,玩家进行多次的数据变更后再次搜索,到最后就会确定此地址到底是哪一个,然后将此地址的数值进行修改,回到游戏中,相关的数据也会变化,八门神器的原理就如金山游侠、整人专家、游戏修改大师等类型的修改软件,只不过八门神器只可以在智能手机中使用而已。

​ 对于八门神器在修改游戏时发生无法修改或无法保存修改后的数据等情况,是因为游戏本身经过特殊处理。安全整型。主要用来内存存放功能。防止八门神器等外挂篡改。根据外挂机制可以在游戏开发中内存整形的简单加密。也就是真实值A隐藏。内存中值只是A的影子而已。具体原理就是或与运算的巧妙应用。

或运算原理

1.常数A或变量=常数B。变量或常数A=常数B。常数A:383391203常数B:34603266分析:分布转换成二进制得出结论公式10110110110100001010111100011&0X01X00X10X0XXXX0X0X1000XXX10等于:00010000100000000000100000010结论:变量有规律,其中X可以是0或者1则12个X可以取值个数为:1<<13=8192个数例如:?383391203&34867974;00010000101000000101100000110?383391203&34867978;00010000101000000101100001010?383391203&34867982;00010000101000000101100001110

与运算原理

2.常数A与变量=常数B。变量与常数A=常数B常数A:383391203常数B:1459600891分析:分布转换成二进制得出结论公式0010110110110100001010111100011|10X0XX0XX1XX1X1101X1X0XXXX110XX等于:1010110111111111011110111111011例如:?383391203|1076739384;1000000001011011011110100111000?383391203|1076210840;1000000001001011010110010011000?383391203|1076209688;1000000001001011010100000011000?383391203|1076210168;1000000001001011010100111111000

得出结论。发散思维。推广应用。

最后结论是把32位整形拆分:每位分解成两个整数表示:算法即可得出参照SaftInt类XXX0X01X    00X10X0X    XXX0X0X1    000XXX10010X0XX0    XX1XX1X1    101X1X0X    XXX110XX拓展:把整数对应位分别去除来应用推广:    如何一个整数A可以和另外一个变量互转。    有了这个依据则可以用于游戏开发中内存整形的简单加密。    也就是真实值A隐藏。内存中值只是A的影子而已。

Gk8safeInt.cs

using System.Collections;public class Gk8SafeInt{    private int m_nInt1;            //内放整型1    private int m_nInt2;            //内放整型2    //private int m_nMaskRnd;            //随机掩码    //XXX0X01X    00X10X0X    XXX0X0X1    000XXX10    //010X0XX0    XX1XX1X1    101X1X0X    XXX110XX    //取对应位    static int g_nMaskBit1=383391203;    static int g_nMaskBit2=-383391204;    //合并    static int g_nUionBit1=1076209688;    static int g_nUionBit2=34603266;    public override string ToString ()    {        return GetInt().ToString ();    }    private void MakeInt(int nValue)    {        //m_nMaskRnd=383391203;        m_nInt1=g_nMaskBit1&nValue|g_nUionBit1;        m_nInt2=g_nMaskBit2&nValue|g_nUionBit2;    }    private int GetInt()    {        return (m_nInt1&g_nMaskBit1)+(m_nInt2&g_nMaskBit2);    }    public Gk8SafeInt()    {        MakeInt(0);    }    public Gk8SafeInt(int nValue)    {        MakeInt(nValue);    }    public static explicit operator Gk8SafeInt(int nValue)    {        return new Gk8SafeInt(nValue);    }    public static implicit operator int(Gk8SafeInt iSafeInt)    {        return iSafeInt.GetInt();    }    //重载加减乘除    public static Gk8SafeInt operator + (Gk8SafeInt iSafeInt,int nValue)    {        int n=iSafeInt.GetInt();        n+=nValue;        return  new Gk8SafeInt(n);    }    public static Gk8SafeInt operator - (Gk8SafeInt iSafeInt,int nValue)    {        int n=iSafeInt.GetInt();        n-=nValue;        return  new Gk8SafeInt(n);    }    public static Gk8SafeInt operator * (Gk8SafeInt iSafeInt,int nValue)    {        int n=iSafeInt.GetInt();        n*=nValue;        return  new Gk8SafeInt(n);    }    public static Gk8SafeInt operator / (Gk8SafeInt iSafeInt,int nValue)    {        int n=iSafeInt.GetInt();        n/=nValue;        return  new Gk8SafeInt(n);    }    //重载比较操作    public static bool operator < (Gk8SafeInt iSafeInt,int nValue)    {        if(iSafeInt.GetInt()< nValue) return true;        return false;    }    public static bool operator <= (Gk8SafeInt iSafeInt,int nValue)    {        if(iSafeInt.GetInt()<= nValue) return true;        return false;    }    public static bool operator == (Gk8SafeInt iSafeInt,int nValue)    {        if(iSafeInt.GetInt()==nValue) return true;        return false;    }    public static bool operator != (Gk8SafeInt iSafeInt,int nValue)    {        if(iSafeInt.GetInt()!=nValue) return true;        return false;    }    public static bool operator >= (Gk8SafeInt iSafeInt,int nValue)    {        if(iSafeInt.GetInt()>=nValue) return true;        return false;    }    public static bool operator > (Gk8SafeInt iSafeInt,int nValue)    {        if(iSafeInt.GetInt()>nValue) return true;        return false;    }}

--结束END--

本文标题: 或与运算和安全整数(数的影子)

本文链接: https://lsjlt.com/news/241051.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 或与运算和安全整数(数的影子)
    ​ 八门神器是安卓、iOS、塞班平台上通用的游戏修改工具,可以修改内存中的数值和参数。在游戏运行时,内存和处理器都会对于游戏进行非常复杂的数据交换和变更。因为游戏有很多的数据,例如金钱、HP值、等级、攻击力、防御力、战斗力等数据,尤其...
    99+
    2023-06-05
  • 数据库系统原理与设计——投影运算、选择运算
    书籍:数据库系统原理与设计(第3版)——万常选 廖国琼等编著数据库版本:SQL Server 2005--通配符的使用--转义字符的使用,以下两种方法相似该教材相关资料请点击如下链接:https://blo...
    99+
    2024-04-02
  • 如何实现大整数乘法运算与分治算法
    本篇内容主要讲解“如何实现大整数乘法运算与分治算法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现大整数乘法运算与分治算法”吧!普通乘数运算对于乘数运算有...
    99+
    2024-04-02
  • 利用Go语言实现高效的整除运算与余数计算
    利用Go语言实现高效的整除运算与余数计算 在编程中,整除运算和余数计算是常见的操作,特别在处理循环和数学运算时经常会用到。Go语言作为一种高效、简洁的编程语言,提供了丰富的内置函数和运...
    99+
    2024-04-02
  • 全面剖析java 数据类型与运算符
    目录java的变量和类型基本数据类型——数值型整型浮点型字符型布尔型运算符运算符:|运算符:&运算符:^运算符:~运算符:>>运算符:<<运算符:&g...
    99+
    2024-04-02
  • Python函数参数中的*与**运算符
    问题描述 在阅读某些代码时,经常会看到函数定义/调用时的参数前带有 * 或者 ** 运算符,比较糊涂,今天来探究记录一番. 函数定义时的 * 和 ** 查阅相关资料得知,在参数前...
    99+
    2024-04-02
  • 如何实现超出JavaScript安全整数限制的数字计算BigInt
    这篇文章主要介绍了如何实现超出JavaScript安全整数限制的数字计算BigInt,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JavaS...
    99+
    2024-04-02
  • 深入理解Go语言中的除法运算:整除与余数
    深入理解Go语言中的除法运算:整除与余数 在Go语言中,除法运算是我们日常编程中经常会用到的一个运算符。除法运算主要涉及两个概念:整除和余数。在本文中,我们将深入探讨Go语言中的除法运...
    99+
    2024-04-02
  • Go语言中的除法运算:整除与余数的处理方式
    标题:Go语言中的除法运算:整除与余数的处理方式 Go 语言是一种现代化的编程语言,支持多种数学运算操作,其中除法运算是编写程序时经常使用的一种。在Go语言中,除法运算分为整除和余数两...
    99+
    2024-04-02
  • 计算机中进行数据运算的子系统是哪个
    这篇文章主要为大家展示了“计算机中进行数据运算的子系统是哪个”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“计算机中进行数据运算的子系统是哪个”这篇文章吧。计算机中进行数据运算的子系统是CPU,C...
    99+
    2023-06-20
  • Python tensorflow与pytorch的浮点运算数怎么计算
    这篇文章主要讲解了“Python tensorflow与pytorch的浮点运算数怎么计算”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python tensorflow...
    99+
    2023-07-04
  • Teradata中怎么保证数据的安全性和完整性
    在Teradata中,可以采取以下措施来确保数据的安全性和完整性: 访问控制:通过对用户和角色进行权限管理,限制用户对数据库和表...
    99+
    2024-04-09
    Teradata
  • 云计算中的数据安全与隐私保护策略
    文章目录 1. 云计算中的数据安全挑战1.1 数据泄露和数据风险1.2 多租户环境下的隔离问题 2. 隐私保护策略2.1 数据加密2.2 访问控制和身份验证 3. 应对方法与技术3.1 零知识证明(Zero-Know...
    99+
    2023-08-30
    云计算
  • Go语言中的整除运算及余数计算方法详解
    Go语言中的整除运算及余数计算方法详解 在Go语言中,整除运算和余数计算是常见的数学运算操作。本文将介绍如何在Go语言中进行整除运算和余数计算,同时提供具体的代码示例。 整除运算 在G...
    99+
    2024-04-02
  • 怎么保证Redis序列化数据的完整性与安全性
    要保证Redis序列化数据的完整性与安全性,可以采取以下措施: 使用合适的序列化机制:选择合适的序列化机制可以确保数据的完整性和...
    99+
    2024-04-29
    Redis
  • 四、MySQL的数据类型和运算符
    4.1、MySQL数据类型介绍 MySQL支持多种数据类型,主要有数值类型、日期/时间类型和字符串类型。数值数据类型:  包括整数类型   TINYINT、SMALLINT、M...
    99+
    2024-04-02
  • Mysql中的数据类型和运算符
    文章目录 Mysql的数据类型数值型数据整数型数据类型浮点型型数据类型 字符型数据字符串数据文本类型数据枚举类型数据SET类型数据二进制形式的文本数据 日期时间型数据 Mysq...
    99+
    2023-08-31
    mysql 数据库 数据类型 运算符
  • JavaScript JSON 与网络安全:确保数据传输和存储的安全性
    2. 使用 JSON Web 令牌(JWT):JWT 是一种开放式标准,用于创建安全且 kompakte Token,其中包含已签名和加密的信息。 3. JSONP:JSONP(JSON with Padding)是一种技术,允许跨域请求...
    99+
    2024-04-02
  • java求输入一个正整数,计算并输出整数的各位数字之和
    输入一个正整数,计算并输出整数的各位数字之和。 如输入12345,结果显示15,如下图所示。 【代码如下】: import java.util.Scanner;public class NumSum{ public static vo...
    99+
    2023-10-04
    java
  • Python数值运算与赋值的快捷方式
    一种比较常见的操作是对一个变量进行一项数学运算并将运算得出的结果返回给这个变量,因此对于这类运算通常有如下的快捷表达方式: a = 2a = a * 3   同样也可写作: a = 2a *= 3   要注意到 变量 = 变量 运...
    99+
    2023-01-31
    赋值 数值 快捷方式
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作