吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 822|回复: 6
上一主题 下一主题

[Android CrackMe] 简单的签名校验CrackMe

[复制链接]
跳转到指定楼层
楼主
小骚 发表于 2020-5-21 17:24 回帖奖励
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

各路大神的签名校验合集
内置7种签名校验方法,5种在java层,2种在so层
都非常简单,不需要IDA,不需要调试
1.普通的签名校验(MD5计算)
2.校验Application(检查是否被动态代{过}{滤}理)
3.提早检测(在调用attachBaseContext之前检测签名)
4.检测PM代{过}{滤}理(检查IPackageManager有没有被动态代{过}{滤}理)
5.较新的API检测(用API28以上的新API去获取)
6.普通校验sha1值(so层,不过这个延迟3秒退出程序)
7.普通签名校验(so层)

MT一键去签名校验无法完美通过,过60加固签名校验方法也无法完美通过

总共涉及3个MD5,通用方法生成的,我把工具类放出来,也可以把自己的签名转换md5替换我的,也可以达到过签名校验
成功条件,修改红框文本,并过签名校验,让所有都显示通过
(核心破解以及只改显示字符串不算)
仅简单混淆了一下,再加一个乐固版本
练手之作,大神勿喷


[Asm] 纯文本查看 复制代码
//生成大写的MD5
public static String MD5(String str) {
        char hexDigits[] = {
                '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd',
                'e', 'f' };
        try {
            byte[] strTemp = str.getBytes();
            MessageDigest mdTemp = MessageDigest.getInstance("MD5");
            mdTemp.update(strTemp);
            byte tmp[] = mdTemp.digest();
            char strs[] = new char[16 * 2];
            int k = 0;
            for (int i = 0; i < 16; i++) {
                byte byte0 = tmp[i];
                strs[k++] = hexDigits[byte0 >>> 4 & 0xf];
                strs[k++] = hexDigits[byte0 & 0xf];
            }
            return new String(strs).toUpperCase();
        } catch (Exception e) {
            return null;
        }
    }



[Asm] 纯文本查看 复制代码
//生成小写的MD5
public static String MD55(String sourceStr) {
        String result = "";
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(sourceStr.getBytes());
            byte b[] = md.digest();
            int i;
            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < b.length; offset++) {
                i = b[offset];
                if (i < 0)
                    i += 256;
                if (i < 16)
                    buf.append("0");
                buf.append(Integer.toHexString(i));
            }
            result = buf.toString();
        } catch (NoSuchAlgorithmException e) {
            System.out.println(e);
        }

        return result;

    }


[Asm] 纯文本查看 复制代码
//其中MyApplication类中的是sign转base64转换过的

public class Base64Util {
    /**
     * 二进制数组 编码成 二进制数组
     * [url=home.php?mod=space&uid=952169]@Param[/url] input
     * @return
     */
    public static byte[] encodeToBytes(byte[] input) {
        return Base64.encode(input, Base64.NO_WRAP);
    }

    /**
     * 二进制数组 编码成 字符串
     * @param input
     * @return
     */
    public static String encodeToString(byte[] input) {
        return Base64.encodeToString(input, Base64.NO_WRAP);
    }

    /**
     * 二进制数组 解码成 二进制数组
     * @param input
     * @return
     */
    public static byte[] decode(byte[] input) {
        return Base64.decode(input, Base64.NO_WRAP);
    }

    /**
     * 字符串 解码成 二进制数组
     * @return
     */
    public static byte[] decode(String str) {
        return Base64.decode(str, Base64.NO_WRAP);
    }
}

AndroidCrackMe.zip

2.15 MB, 下载次数: 52

免费评分

参与人数 3吾爱币 +8 热心值 +2 收起 理由
CrazyNut + 6 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
冰雪冬樱250 + 1 + 1 谢谢@Thanks!
longge188 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

受到警告 沙发
longge188 发表于 2020-5-21 17:59
用心讨论,共获提升!
3#
图拉柏 发表于 2020-5-21 23:34
4#
资料终结者 发表于 2020-5-22 07:48
小程序发送请求的时候加密,然后后台解密,大佬知道吗?这种密文传输
5#
你说我说 发表于 2020-5-22 10:14
太棒了,谢谢分享
6#
Light紫星 发表于 2020-5-22 10:39
厉害厉害,so签名验证难过
7#
yuxinxianzi 发表于 2020-5-23 13:38
我是来学习的。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2020-5-27 14:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表