或與運(yùn)算和安全整數(shù)(數(shù)的影子)

? 八門神器是安卓、iOS、塞班平臺上通用的游戲修改工具,可以修改內(nèi)存中的數(shù)值和參數(shù)。在游戲運(yùn)行時,內(nèi)存和處理器都會對于游戲進(jìn)行非常復(fù)雜的數(shù)據(jù)交換和變更。因為游戲有很多的數(shù)據(jù),例如金錢、HP值、等級、攻擊力、防御力、戰(zhàn)斗力等數(shù)據(jù),尤其是PVE戰(zhàn)斗在客戶端進(jìn)行。服務(wù)器校驗缺失等。而這些數(shù)據(jù),就在內(nèi)存和處理器的各個地址當(dāng)中,玩家只需要在八門神器中搜索相關(guān)的數(shù)據(jù)值,八門神器就會將搜索出記錄此數(shù)據(jù)的各個地址顯示,玩家進(jìn)行多次的數(shù)據(jù)變更后再次搜索,到最后就會確定此地址到底是哪一個,然后將此地址的數(shù)值進(jìn)行修改,回到游戲中,相關(guān)的數(shù)據(jù)也會變化,八門神器的原理就如金山游俠、整人專家、游戲修改大師等類型的修改軟件,只不過八門神器只可以在智能手機(jī)中使用而已。

成都創(chuàng)新互聯(lián)專注于雙牌企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),成都商城網(wǎng)站開發(fā)。雙牌網(wǎng)站建設(shè)公司,為雙牌等地區(qū)提供建站服務(wù)。全流程按需策劃設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

? 對于八門神器在修改游戲時發(fā)生無法修改或無法保存修改后的數(shù)據(jù)等情況,是因為游戲本身經(jīng)過特殊處理。安全整型。主要用來內(nèi)存存放功能。防止八門神器等外掛篡改。根據(jù)外掛機(jī)制可以在游戲開發(fā)中內(nèi)存整形的簡單加密。也就是真實值A(chǔ)隱藏。內(nèi)存中值只是A的影子而已。具體原理就是或與運(yùn)算的巧妙應(yīng)用。

或運(yùn)算原理

1.常數(shù)A或變量=常數(shù)B。變量或常數(shù)A=常數(shù)B。
常數(shù)A:383391203
常數(shù)B:34603266
分析:分布轉(zhuǎn)換成二進(jìn)制得出結(jié)論公式
10110110110100001010111100011
&
0X01X00X10X0XXXX0X0X1000XXX10
等于:
00010000100000000000100000010
結(jié)論:變量有規(guī)律,其中X可以是0或者1
則12個X可以取值個數(shù)為:1<<13=8192個數(shù)
例如:
?383391203&34867974;
00010000101000000101100000110
?383391203&34867978;
00010000101000000101100001010
?383391203&34867982;
00010000101000000101100001110

與運(yùn)算原理

2.常數(shù)A與變量=常數(shù)B。變量與常數(shù)A=常數(shù)B
常數(shù)A:383391203
常數(shù)B:1459600891
分析:分布轉(zhuǎn)換成二進(jìn)制得出結(jié)論公式
0010110110110100001010111100011
|
10X0XX0XX1XX1X1101X1X0XXXX110XX
等于:
1010110111111111011110111111011
例如:
?383391203|1076739384;
1000000001011011011110100111000
?383391203|1076210840;
1000000001001011010110010011000
?383391203|1076209688;
1000000001001011010100000011000
?383391203|1076210168;
1000000001001011010100111111000

得出結(jié)論。發(fā)散思維。推廣應(yīng)用。

最后結(jié)論是把32位整形拆分:每位分解成兩個整數(shù)表示:算法即可得出參照SaftInt類
XXX0X01X    00X10X0X    XXX0X0X1    000XXX10
010X0XX0    XX1XX1X1    101X1X0X    XXX110XX
拓展:把整數(shù)對應(yīng)位分別去除來
應(yīng)用推廣:
    如何一個整數(shù)A可以和另外一個變量互轉(zhuǎn)。
    有了這個依據(jù)則可以用于游戲開發(fā)中內(nèi)存整形的簡單加密。
    也就是真實值A(chǔ)隱藏。內(nèi)存中值只是A的影子而已。

Gk8SafeInt.cs

using System.Collections;
/**
 * 安全整型:用主要用來內(nèi)存存放功能。防止八門神器外掛等
 * @Thinker
 **/
public class Gk8SafeInt
{
    private int m_nInt1;            //內(nèi)放整型1
    private int m_nInt2;            //內(nèi)放整型2
    //private int m_nMaskRnd;            //隨機(jī)掩碼
    //XXX0X01X    00X10X0X    XXX0X0X1    000XXX10
    //010X0XX0    XX1XX1X1    101X1X0X    XXX110XX
    //取對應(yīng)位
    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;
    }
}

網(wǎng)頁標(biāo)題:或與運(yùn)算和安全整數(shù)(數(shù)的影子)
文章源于:http://bm7419.com/article38/jjcipp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計云服務(wù)器、品牌網(wǎng)站建設(shè)、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)