zoukankan      html  css  js  c++  java
  • 启xin宝app的token算法破解——token分析篇(三)

    前两篇文章分析该APP的抓包、的逆向:
    启xin宝app的token算法破解——抓包分析篇(一)
    启xin宝app的token算法破解——逆向篇(二)
    本篇就将对token静态分析,其实很简单就可以搞定那种。通过idea的全局搜索,直接搜索"token"直接找到token在哪里,上图。


    找到了,进去看看,这是MessageUtil类里面,可以看下MessageUtil的具体方法:

    具体代码就不贴了,分析到这里发现使用ndk,也就是c编译之后的so文件,这就有点难办了,先不管这个,继续分析下。
    static {
        System.loadLibrary("encrypt-lib");
        }
    

    在该类里面有这个return b.a(str);方法,该方法是具体的算法分析。

        /* renamed from: a reason: collision with root package name */
        public static String f1288a = "CryptoTool_KEY";
        public static String b = "CryptoTool_IV";
        public static String c = MessageUtil.getKey();
        public static String d = MessageUtil.getIV();
        private static final String e = "AES/CBC/PKCS5Padding";
        private static byte[] f = a.a(c);
        private static SecretKeySpec g = new SecretKeySpec({}, "AES");
        private static Cipher h;
        
    
        public static String a(String str) {
            try {
                if (h == null) {
                    f = a.a(c);
                    g = new SecretKeySpec(f, "AES");
                    h = Cipher.getInstance(e);
                    h.init(1, g, new IvParameterSpec(a.a(d)));
                }
                byte[] bytes = str.getBytes("UTF-8");
                byte[] bArr = new byte[h.getOutputSize(bytes.length)];
                h.doFinal(bArr, h.update(bytes, 0, bytes.length, bArr, 0));
                return Base64.encodeToString(bArr, 2);
            } catch (Exception e2) {
                e2.printStackTrace();
                return null;
            }
        }
    

    看到该token使用的是AES进行加密,具体的秘钥和偏移则在encrypt-lib里面。
    如何能拿到秘钥和偏移呢?这里可以借助frida和xposed的hook进行提取,下一篇进行frida的hook提取。

    欢迎关注小白微信公众号【小白技术社】,一起学习一起交流

  • 相关阅读:
    LeetCode题解(2)-- Add Two Numbers
    LeetCode题解(1)--Two Sum
    STL review:vector & string & map & struct
    机器学习导论(一) 基本概念
    Single Number
    Single Number II
    Copy List with Random Pointer
    Word Break
    Populating Next Right Pointers in Each Node II
    Binary Tree Inorder Traversal
  • 原文地址:https://www.cnblogs.com/xbjss/p/11415171.html
Copyright © 2011-2022 走看看