前两篇文章分析该APP的抓包、的逆向:

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

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

启xin宝app的token算法破解——token分析篇(三)

本篇就将对token的秘钥进行hook,使用上篇提到的frida进行hook,hooknative方法,获取到秘钥和偏移。

对于frida是什么?

Frida是一个动态代码插桩框架,这里的介绍主要以应用在Android平台应用程序上。动态二进制插桩(DBI)是将外部代码注入到现有的正在运行的二进制文件中,从而让它执行额外操作。DBI可以:

  1. 访问进程内存
  2. 在应用程序运行时覆盖函数
  3. 从导入的类调用函数
  4. 在堆上查找对象实例并使用
  5. Hook、跟踪和拦截函数等

怎么使用呢?

  1. pip install frida (python环境)
  2. 下载服务器二进制文件frida-server要和pip的版本相同
  3. $ adb push frida-server-10.0.1-android-arm /data/local/tmp/frida-server
  4. $ adb shell
  5. cd /data/local/tmp
  6. chmod 755 frida-server
  7. ./frida-server

查看frida-server是否启动成功:

frida-ps -U能看到安卓的应用进程就行

启动成功后开始写python和具体的hook代码。

python代码:

import sys
import frida
def onmsg(msg, data):
print(msg)
jscode = open('qxb.js', 'r', encoding='utf8').read()
session = frida.get_usb_device().attach("com.bertadata.qxb")
script = session.create_script(jscode)
script.on('message', onmsg)
script.load()
sys.stdin.read()

现在可以对该app的具体方法hook

需要hook是MessageUtil类下的具体方(该代码为参考代码,并不是该app的实际应用代码)

setImmediate(function () {
//延迟1秒调用Hook方法
console.log('start----')
setInterval(test, 1000);
// test()
}); function test() {
Java.perform(function () { var hook = Java.use('com.类名');
hook.方法.overload('传参类型', 'java.lang.String', 'java.lang.String').implementation = function (a1, a2, a3) {
var ss = this.方法(a1, a2, a3);//调用是本方法
console.log('a1参数1 =' + a1);//打印
console.log('a2参数2 =' + a2);
console.log('a3参数3 =' + a3);
console.log('res=' + ss);
return ss;
};

执行python代码就可以直接打印出需要秘钥和偏移。



拿到秘钥之后我们就需要验证该秘钥了,使用第一篇的token进行解密就可以咯。在实际中需要对改密要进行byte数组转换,更具体的转换方法。需要的话可以关注小白技术公众号讨论技术。

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

启xin宝app的token算法破解——frida篇(四)的更多相关文章

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

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

  2. 启xin宝app的token算法破解——token分析篇(三)

    前两篇文章分析该APP的抓包.的逆向: 启xin宝app的token算法破解--抓包分析篇(一) 启xin宝app的token算法破解--逆向篇(二) 本篇就将对token静态分析,其实很简单就可以搞 ...

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

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

  4. 天眼查sign 算法破解

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

  5. 如何获取应用宝APP ID

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

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

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

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

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

  8. 天天乐宝APP开发

    "互联网+"时代是一个"信息过剩"的时代,也是一个"注意力稀缺"的时代,怎样在"无限的信息中"获取"有限的注意 ...

  9. 淘宝App直播宝贝数据采集

    淘宝App直播宝贝数据采集   前段时间,有人问我关于淘宝app直播频道宝贝如何采集?我尝试了下可以获取的到,模拟器登录不了淘宝,这里有一个坑就是,模拟器有时候会跳到登录页面,登录不了淘宝: 一.用A ...

随机推荐

  1. 个人永久性免费-Excel催化剂功能第33波-报表形式数据结构转标准数据源

    一般来说,如果有标准的数据源结构,对后续的分析工作将会带来极大的方便.但现实中,许多的原始数据并不预期那样,一个主题的数据已经干净地存放在一个工作表中.今天Excel催化剂再次送上批量化操作,将不规则 ...

  2. 创建PaletteSet的一个问题

    下面是一个常规创建PaletteSet面板的代码: public static PaletteSet m_ps = null; [CommandMethod("MyPalette" ...

  3. 模拟ssh远程执行命令,粘包问题,基于socketserver实现并发的socket

    06.27自我总结 1.模拟ssh远程执行命令 利用套接字编来进行远程执行命令 服务端 from socket import * import subprocess server = socket(A ...

  4. python基础-python解释器多版本共存-变量-常量

    一.编程语言的发展史 机器语言-->汇编语言-->高级语言,学习难度及执行效率由高到低,开发效率由低到高 机器语言:二进制编程,0101 汇编语言:用英文字符来代替0101编程 高级语言: ...

  5. 《VR入门系列教程》之15---配置Oculus的开发环境

    安装Oculus SDK     在使用类似Unity3D之类的引擎开发Oculus Rift应用之前,你必须先安装Oculus的SDK,在Oculus的官网上可以下载:http://develope ...

  6. On The Way—Step 1 :python入门之Python的历程

    1.python的历史 2004 Django框架 python2 和 python3的区别 python2 源码不统一 有重复功能代码 python3 源码统一 没有重复功能代码 Python的发展 ...

  7. C# 二维码的生成

    nuget 搜索qrcodenet,然后选择下载gma.qrcodenet public partial class Form1 : Form { public Form1() { Initializ ...

  8. 传输层的TCP和UDP协议

    作者:HerryLo 原文永久链接: https://github.com/AttemptWeb... TCP/IP协议, 你一定常常听到,其中TCP(Transmission Control Pro ...

  9. Node.js 环境搭建及简单应用

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型.如果你想创建自己的服务,那么Node.js是一个非 ...

  10. X-Admin&ABP框架开发-设置管理

    在网站开发中,设置是不可缺少的一环,如用户设置.系统设置.甚至是租户设置等.ABP对于设置的管理已经做了很好的处理,我们可以借助巨人的力量来完成我们的冒险. ABP官网地址:https://aspne ...