前两篇文章分析该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分析篇(三)的更多相关文章

  1. 启xin宝app的token算法破解——frida篇(四)

    前两篇文章分析该APP的抓包.的逆向: 启xin宝app的token算法破解--抓包分析篇(一) 启xin宝app的token算法破解--逆向篇(二) 启xin宝app的token算法破解--toke ...

  2. 启xin宝app的token算法破解——逆向篇(二)

    启xin宝app的token算法破解--抓包分析篇(一)文章已经对该app进行了抓包分析,现在继续对它进行逆向. 对于一个app而言,我们要逆向app,需要知道什么呢? 逆向工具 Java基础,甚至c ...

  3. 启xin宝app的token算法破解——抓包分析篇(一)

    为了提升逆向技术,最近几日研究了企cha查的sign和启xin宝的token算法,目前已经成功破解,两个app均是最新版,并将企cha查写成爬虫小demo,放在github上,详情查看 https:/ ...

  4. 【转】App开放接口api安全性—Token签名sign的设计与实现

    前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证,那么这就需要用户提供一些信息,比如用户名密码等, ...

  5. App开放接口api安全性—Token签名sign的设计与实现

    前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证,那么这就需要用户提供一些信息,比如用户名密码等, ...

  6. 天眼查sign 算法破解

    天眼查sign 算法破解 最近真的在sign算法破解上一去不复返 前几天看过了企查查的sign破解 今天再看看天眼查的sign算法破解,说的好(zhuang)点(bi)就是破解,不好的就是这是很简单的 ...

  7. 如何获取应用宝APP ID

    二百二维码支持绑定应用宝ID后,android 扫码下载后,微信直接下载APP,不打开应用宝页面,非常方便APP进行推广 那如何获取应用宝APP ID呢, 请参考下面的教程    一, 打开http: ...

  8. 淘宝SKU组合查询算法实现

    淘宝SKU组合查询算法实现 2015-11-14 16:18 1140人阅读 评论(0) 收藏 举报  分类: JavaScript(14)    目录(?)[+]   前端有多少事情可以做,能做到多 ...

  9. 重大新闻:借贷宝不用绑卡了,借贷宝APP推出肖像识别新功能!

    动动手指,20元人民币立即到手:http://www.cnblogs.com/mfryf/p/4754384.html 滴滴打车烧钱十几个亿,狂送打车券,很多人天天免费坐车! 去年年初百度钱包注册奖励 ...

随机推荐

  1. java多线程总结-同步容器与并发容器的对比与介绍

    1 容器集简单介绍 java.util包下面的容器集主要有两种,一种是Collection接口下面的List和Set,一种是Map, 大致结构如下: Collection List LinkedLis ...

  2. 个人永久性免费-Excel催化剂功能第98波-零代码零距离轻松接触并拥有金融大数据

    数据产生价值的一个最突出的领域-金融领域,股票.证券.上市公司财务报表等,多少人在其中发掘出宝贵的数据价值.今天Excel催化剂联合Tushare金融大数据平台,让这一切的数据都能成为你我普通人零代码 ...

  3. 个人永久性免费-Excel催化剂功能第44波-可见区域复制粘贴不覆盖隐藏内容

    Excel的复制粘贴操作,每天都在进行,若其中稍能提升一点效率,长久来说,实在是很可观的效率提升. Excel自带的复制粘贴功能,若复制的数据源或粘贴的目标位置中有隐藏的行列内容,简单一个复制粘贴充满 ...

  4. Flask项目常见面试问题

    一.你的项目中缓存粒度是如何选择的? 缓存粒度一共分为4种. 1.缓存某个数值:一个键只保存一个值,性价比较低,使用率低,如果存储的话我们使用redis的String 2.缓存数据对象:数据库记录对应 ...

  5. luogu题解 P5020 【货币系统 】

    思路 判断钱数是否可以转化为其他钱数的和 与楼下不同,我没有用sort.而是用了一个数组来特判. 思路其实只是简单dp. 详见代码. #include<cstdio> using name ...

  6. linux初学者-iscsi篇

     linux初学者-iscsi篇         之前介绍过网络文件共享系统NFS和CIFS.在系统中,设备也是可以共享的,这就是iSCSI,它可以用来建立和管理IP存储设备.主机和客户机等之间的相互 ...

  7. Go语言圣经习题练习_1.7. Web服务

    练习 1.12: 修改Lissajour服务,从URL读取变量,比如你可以访问 http://localhost:8000/?cycles=20 这个URL,这样访问可以将程序里的cycles默认的5 ...

  8. Jquery 小结

    1. 名词解释 实例对象:var p1=new Person();  p1就是实例对象 构造:function Person(){} 原型对象:在 JavaScript 中,每当定义一个对象(函数也是 ...

  9. Redis(六)--- Redis过期策略与内存淘汰机制

    1.简述 关于Redis键的过期策略,首先要了解两种时间的区别,生存时间和过期时间: 生存时间:一段时长,如30秒.6000毫秒,设置键的生存时间就是设置这个键可以存在多长时间,命令有两个 expir ...

  10. Java_转换流和缓冲流

    今日内容介绍 转换流 缓冲流 1 转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamR ...