Charles Mac 安装&激活&使用&手机-保姆级教程

一、下载

charles官网:Download a Free Trial of Charles • Charles Web Debugging Proxy

选择对应的下载版本就好

二、安装

。。。不加赘述,安装都会吧

三、安装&设置&‼️信任证书‼️

设置代理

设置抓取所有

四、激活

将“激活的账号名称”➡️替换成你的(随意填写)

public class CharlesRegister {

    private static final int ROUNDS = 12;
    private static final int ROUND_KEYS = 2 * (ROUNDS + 1);

    public static void main(String[] args) {
        String name = "激活的账号名称";
        System.out.println("name: " + name + "    key: " + crack(name));
    }

    public static String crack(String text) {
        byte[] name = text.getBytes();
        int length = name.length + 4;
        int padded = ((-length) & (8 - 1)) + length;

        ByteBuffer buffer = ByteBuffer.allocate(padded);
        buffer.order(ByteOrder.BIG_ENDIAN);
        buffer.putInt(name.length);
        buffer.put(name);

        long ckName = 0x7a21c951691cd470L;
        long ckKey = -5408575981733630035L;

        CkCipher ck = new CkCipher(ckName);
        ByteArrayOutputStream outBuff = new ByteArrayOutputStream();

        for (int i = 0; i < padded; i += 8) {
            long nowVar = buffer.getLong(i);
            long dd = ck.encrypt(nowVar);

            for (int shift = 56; shift >= 0; shift -= 8) {
                outBuff.write((byte) (dd >> shift));
            }
        }

        int n = 0;
        for (byte b : outBuff.toByteArray()) {
            n = rotateLeft(n ^ b, 3);
        }

        int prefix = n ^ 0x54882f8a;
        int suffix = new Random().nextInt();

        long in = ((long) prefix << 32);
        int high = (suffix >>> 16) & 0xffff;
        if (high == 0x0401 || high == 0x0402 || high == 0x0403) {
            in |= (suffix & 0xffffffffL);
        } else {
            in |= 0x01000000L | (suffix & 0xffffffL);
        }

        long out = new CkCipher(ckKey).decrypt(in);

        long n2 = 0;
        for (int i = 56; i >= 0; i -= 8) {
            n2 ^= (in >> i) & 0xff;
        }

        int vv = (int) (n2 & 0xff);
        if (vv < 0) {
            vv = -vv;
        }

        return String.format("%02x%016x", vv, out);
    }

    static class CkCipher {
        private final int[] rk = new int[ROUND_KEYS];

        public CkCipher(long key) {
            int[] ld = new int[2];
            ld[0] = (int) key;
            ld[1] = (int) (key >>> 32);

            rk[0] = -1209970333;
            for (int i = 1; i < ROUND_KEYS; i++) {
                rk[i] = rk[i - 1] + -1640531527;
            }

            int a = 0, b = 0, i = 0, j = 0;
            for (int k = 0; k < 3 * ROUND_KEYS; k++) {
                rk[i] = rotateLeft(rk[i] + (a + b), 3);
                a = rk[i];
                ld[j] = rotateLeft(ld[j] + (a + b), a + b);
                b = ld[j];
                i = (i + 1) % ROUND_KEYS;
                j = (j + 1) % 2;
            }
        }

        public long encrypt(long in) {
            int a = (int) in + rk[0];
            int b = (int) (in >>> 32) + rk[1];
            for (int r = 1; r <= ROUNDS; r++) {
                a = rotateLeft(a ^ b, b) + rk[2 * r];
                b = rotateLeft(b ^ a, a) + rk[2 * r + 1];
            }
            return packLong(a, b);
        }

        public long decrypt(long in) {
            int a = (int) in;
            int b = (int) (in >>> 32);
            for (int r = ROUNDS; r > 0; r--) {
                b = rotateRight(b - rk[2 * r + 1], a) ^ a;
                a = rotateRight(a - rk[2 * r], b) ^ b;
            }
            b -= rk[1];
            a -= rk[0];
            return packLong(a, b);
        }
    }

    private static int rotateLeft(int x, int y) {
        int s = y & 31;
        return (x << s) | (x >>> (32 - s));
    }

    private static int rotateRight(int x, int y) {
        int s = y & 31;
        return (x >>> s) | (x << (32 - s));
    }

    private static long packLong(int a, int b) {
        return ((long) b << 32) | (a & 0xffffffffL);
    }
}

运行结果:

name: "激活的账号名称"    key: xxx

打开Charles➡️Help➡️License

注意:因为我已经激活了,所以就显示 Remove。。。

最后一步:退出重启。Charles就激活并安装好了。

五、抓取手机(iPhone)

‼️‼️‼️‼️‼️‼️‼️‼️‼️‼️‼️‼️‼️‼️‼️手机电脑在同一网络下‼️‼️‼️‼️‼️‼️‼️‼️‼️‼️‼️‼️

1、安装证书

2、查看Charles IP和端口

3、设置手机网络代理,ip和端口改成上述图片中的;

4、访问 chls.pro/ssl 下载手机证书,然后一定要信任‼️ 设置➡️通用➡️关于本机➡️证书信任设置

至此,将成功抓取!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值