启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提取。
欢迎关注小白微信公众号【小白技术社】,一起学习一起交流

启xin宝app的token算法破解——token分析篇(三)的更多相关文章
- 启xin宝app的token算法破解——frida篇(四)
		
前两篇文章分析该APP的抓包.的逆向: 启xin宝app的token算法破解--抓包分析篇(一) 启xin宝app的token算法破解--逆向篇(二) 启xin宝app的token算法破解--toke ...
 - 启xin宝app的token算法破解——逆向篇(二)
		
启xin宝app的token算法破解--抓包分析篇(一)文章已经对该app进行了抓包分析,现在继续对它进行逆向. 对于一个app而言,我们要逆向app,需要知道什么呢? 逆向工具 Java基础,甚至c ...
 - 启xin宝app的token算法破解——抓包分析篇(一)
		
为了提升逆向技术,最近几日研究了企cha查的sign和启xin宝的token算法,目前已经成功破解,两个app均是最新版,并将企cha查写成爬虫小demo,放在github上,详情查看 https:/ ...
 - 【转】App开放接口api安全性—Token签名sign的设计与实现
		
前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证,那么这就需要用户提供一些信息,比如用户名密码等, ...
 - App开放接口api安全性—Token签名sign的设计与实现
		
前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证,那么这就需要用户提供一些信息,比如用户名密码等, ...
 - 天眼查sign 算法破解
		
天眼查sign 算法破解 最近真的在sign算法破解上一去不复返 前几天看过了企查查的sign破解 今天再看看天眼查的sign算法破解,说的好(zhuang)点(bi)就是破解,不好的就是这是很简单的 ...
 - 如何获取应用宝APP ID
		
二百二维码支持绑定应用宝ID后,android 扫码下载后,微信直接下载APP,不打开应用宝页面,非常方便APP进行推广 那如何获取应用宝APP ID呢, 请参考下面的教程 一, 打开http: ...
 - 淘宝SKU组合查询算法实现
		
淘宝SKU组合查询算法实现 2015-11-14 16:18 1140人阅读 评论(0) 收藏 举报 分类: JavaScript(14) 目录(?)[+] 前端有多少事情可以做,能做到多 ...
 - 重大新闻:借贷宝不用绑卡了,借贷宝APP推出肖像识别新功能!
		
动动手指,20元人民币立即到手:http://www.cnblogs.com/mfryf/p/4754384.html 滴滴打车烧钱十几个亿,狂送打车券,很多人天天免费坐车! 去年年初百度钱包注册奖励 ...
 
随机推荐
- 利用TCP协议,实现基于Socket的小聊天程序(初级版)
			
TCP TCP (Transmission Control Protocol)属于传输层协议.其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送.可靠性.有效流控.全双工操作和多路复用 ...
 - HTML--CSS样式表的基本概念
			
CSS(Cascading Style Sheet 叠层样式表) 作用:美化HTML网页 (一)样式表分类 一.内联样式表 和HTML联合显示,控制精准,但是可重用性差,冗余多. 例如:<p ...
 - linux初学者-普通磁盘分区篇
			
linux初学者-普通磁盘分区篇 磁盘是计算机的重要组成部分,是记录数据的场所.在使用磁盘时,经常需要对其进行分区来实现不同的用途.下文将介绍在linux系统中普通磁盘分区的方法. "fdi ...
 - 使用secureCRT上传下载
			
secureCRT 的 下载 http://pan.baidu.com/s/1c1Mz1ks 下载完成后,输入yum install lrzsz,安装这个东西, 然后就可以直接在secureCRT中输 ...
 - Jmeter脚本录制--HTTP代理服务器
			
Jmeter脚本录制功能依赖第三方工具Badboy,所以在安装了Jmeter之后,还需要再安装一个工具. Badboy本身自带浏览器,相关操作只能在Badboy上进行操作,偶尔可能会遇到浏览器兼容的问 ...
 - VisualStudio中的单元测试
			
1. VisualStuio中的测试资源管理器.CodeLens和ReSharper 上一篇文章重温了<单元测试的艺术>里提到的单元测试的技术及原则.这篇文章实践使用VisualStudi ...
 - 【Spring】No converter found for return value of type: class java.util.ArrayList
			
错误信息: org.springframework.http.converter.HttpMessageNotWritableException: No converter found for ret ...
 - DesignPattern系列__04里氏替换原则
			
1.内容引入--继承体系的思考 在继承中,凡是在父类已经实现的方法,其实算是一种契约或者规范,子类不应该在进行更改(重写):但是,由于这一点不是强制要求,所以当子类进行重写的时候,就会对继承体系产生破 ...
 - 湫湫系列故事——设计风景线 HDU - 4514
			
题目链接:https://vjudge.net/problem/HDU-4514 题意:判断没有没有环,如果没有环,通俗的讲就是找出一条最长的路,相当于一笔画能画多长. 思路:dfs判环. 最后就是没 ...
 - spark shuffle写操作之SortShuffleWriter
			
提出问题 1. spark shuffle的预聚合操作是如何做的,其中底层的数据结构是什么?在数据写入到内存中有预聚合,在读溢出文件合并到最终的文件时是否也有预聚合操作? 2. shuffle数据的排 ...