仿《雷霆战机》飞行射击掌游开发–防破解美高梅4688.com

③ 、在cpp工程中追加检查指纹的函数,相比较从java中得到的md5值与大家友好的md5是或不是一致,假如差异,则以为指纹错误,重临false

游戏截图:

   
如今最常见也是最简易的单机游戏破解方法便是直接反编写翻译apk,然后搜索三流年营商的计费函数调用代码,然后残忍的将开发结果强制改为成功,然后用破解者本人的keystore打包公布。上面大家要介绍的防破解方法,便是检查keystore是还是不是被转换,一旦发现更换,就一向退出行戏。

玩耍简单介绍:

① 、执行命令keytool -list -v -keystore thorqq.keystore ,
个中thorqq.keystore改成你的秘钥库文件名。

cocos2d-x
手游源代码站

将实施结果中MD5后边的一长串字符串去掉冒号并改为小写后保存下去(在这边是:3f8e70eea5bedb593525623c0c47822f)。

保护开发人士的劳动成果。未经允许请勿转发

美高梅4688.com 1

http://blog.csdn.net/haomengzhu

本文将介绍一个简易的防破解版的方法,希望能跟大家齐声谈论学习。

http://www.mumayi.com/android-853293.html

 

三八日游界面能够简洁。游戏规则简单明了,AI聪明有趣。

private static String FingerprintMd5 = "";

    public static String getFingerprintMd5()
    {
        return FingerprintMd5;
    }

    public Signature[] getRawSignature(Context context) {

        PackageManager pkgMgr = context.getPackageManager();
        PackageInfo info = null;
        try {
            info = pkgMgr.getPackageInfo(getPackageName(),
                    PackageManager.GET_SIGNATURES);
        } catch (PackageManager.NameNotFoundException e) {
            return null;
        }
        if (info == null) {
            return null;
        }
        return info.signatures;
    }

    private static String FingerprintMd5 = "";

    public String stringToMD5(byte[] string) {  
        byte[] hash;  

        try {  
            hash = MessageDigest.getInstance("MD5").digest(string);  
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();  
            return "";  
        } catch (Exception e) {  
            e.printStackTrace();  
            return "";  
        }  

        StringBuilder hex = new StringBuilder(hash.length * 2);  
        for (byte b : hash) {  
            if ((b & 0xFF) < 0x10)  
                hex.append("0");  
            hex.append(Integer.toHexString(b & 0xFF));  
        }  

        return FingerprintMd5 = hex.toString();  
    }  

   @Override
    public void onCreate() {

        //MD5 fingerprint
        stringToMD5(getRawSignature(this)[0].toByteArray());

        super.onCreate();
    }

尽快下载来玩吧!

本游戏正式开放源代码啦~~

美高梅4688.com 2美高梅4688.com 3美高梅4688.com 4美高梅4688.com 5美高梅4688.com 6

 

APP下载地址:

④ 、在上层业务逻辑中调用checkFingerprint(),若是回到false,则提示用户并直接退出行戏。

一款益智棋类游戏。通过两枚棋子对上敌方的一枚棋子便可击杀对方。

② 、在android工程中新建MyApplication.java,扩展如下代码获取apk包签名的md5值。

过多别的娱乐开源请前往:

    bool checkFingerprint()
    {    
        //check fingerprint
        JniMethodInfo minfo;
        bool isHave = JniHelper::getStaticMethodInfo(minfo,
            "org/cocos2dx/cpp/MyApplication", "getFingerprintMd5", "()Ljava/lang/String;");
        //没有在java中找到getFingerprintMd5这个函数
        if (!isHave)
        {
            return false;
        }
        else
        {
            //调用getFingerprintMd5  
            jstring jstr = (jstring)minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID);
            std::string ret = JniHelper::jstring2string(jstr);

            Analytics::getInstance()->event(AnalyticsEvent::FingerPrint, ret.c_str());
            GameData::getInstance()->setValue(GAMEDATA::FINGER_PRINT, ret);

            //这里就是上面我们在keytool命令后保存的md5指纹。为增加破解难度,这里最好要对字符串进行加密处理
            std::string a = "3f8e70eea5bedb593525623c0c47822f";
            //判断指纹是否一致
            if (a != ret)
            {
                return false;
            }
        }

        return true;
    }

大千世界对阵,人机对阵,固定时间,固定步数,分享系统。让游戏内容愈发助长。

代码库https://git.oschina.net/thorqq/RaidenFree

无数任何娱乐请关心:

 

Win版试玩http://pan.baidu.com/s/1hsbrUug

发表评论

电子邮件地址不会被公开。 必填项已用*标注