app逆向万能的md5加密hook破解入参方法(其他加密用通用方法原理差不多,小白推荐)
一.原理
安卓开发调用md5加密时候都会调用到系统类java.security.MessageDigest
加密时候会会调用里面2个关键方法update以及digest
根据这个原理我们开始写代码吧
二.代码
hook.js
function Uint8ArrayToString(fileData){ //Uint8Array转字符串
var dataString = "";
for (var i = 0; i < fileData.length; i++) {
dataString += String.fromCharCode(fileData[i]);
// console.log(dataString)
}
return dataString
}
function byteToHexString(uint8arr) { //byte数组转16进制字符串
if (!uint8arr) {
return '';
}
var hexStr = '';
for (var i = 0; i < uint8arr.length; i++) {
var hex = (uint8arr[i] & 0xff).toString(16);
hex = (hex.length === 1) ? '0' + hex : hex;
hexStr += hex;
}
return hexStr.toUpperCase();
}
Java.perform(function () {
var BB = Java.use("java.security.MessageDigest");
BB.update.overload('[B').implementation = function (args1, args2, args3, args4, args5, args6) {
console.log(Uint8ArrayToString(args1))
var args = this.update(args1)
console.log("update", args)
return args
}
BB.digest.overload().implementation = function (args1, args2, args3, args4, args5, args6) {
var args = this.digest()
console.log(byteToHexString(args))
return args
}
});
可以直接cmd窗口调用(老手推荐)
frida -U 包名 -l js
#修改js他会热更新
可以用python调用(新手推荐)
import logging
import frida
import sys
def on_message(message, data):
if message['type'] == 'send':
print("[*] {0}".format(message['payload']))
else:
print(message)
with open('hook.js', 'r', encoding='utf-8') as f: # js文件
sta = ''.join(f.readlines())
rdev = frida.get_remote_device()
session = rdev.attach("xxxxxx") #app包名
print(session)
script = session.create_script(sta)
print(script)
def show(message,data):
print(message)
script.on("message",show)
# 加载脚本
script.load()
sys.stdin.read()
三.显示效果

为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
app逆向万能的md5加密hook破解入参方法(其他加密用通用方法原理差不多,小白推荐)的更多相关文章
- 对称加密——对入参进行DES加密处理
体验更优排版请移步原文:http://blog.kwin.wang/programming/symmetric-encryption-des-js-java.html 对称加密是最快速.最简单的一种加 ...
- 一文了解安卓APP逆向分析与保护机制
"知物由学"是网易云易盾打造的一个品牌栏目,词语出自汉·王充<论衡·实知>.人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道."知物 ...
- Android 逆向实战篇(加密数据包破解)
1. 实战背景由于工作需要,要爬取某款App的数据,App的具体名称此处不便透露,避免他们发现并修改加密逻辑我就得重新破解了. 爬取这款App时发现,抓包抓到的数据是加密过的,如图1所示(原数据较长, ...
- [转帖]APP逆向神器之Frida【Android初级篇】
APP逆向神器之Frida[Android初级篇] https://juejin.im/post/5d25a543e51d455d6d5358ab 说到逆向APP,很多人首先想到的都是反编译,但是单看 ...
- MD5算法 —— C语言实现(字符串的加密)
转 https://blog.csdn.net/weixin_42167759/article/details/81209320 网上找到的实现md5函数代码,包括一个头文件md5.h和一个源文件md ...
- MD5加密、时间戳转换、base64算法加密、解密
#region MD5加密 /// <summary> /// MD5加密 /// </summary> /// <param name="str"& ...
- 老王教您怎么做cass7.1 8.0 9.1所有系列的复制狗 加密狗 破解狗
cass7.1 8.0 9.1所有系列的复制狗 加密狗 破解狗本来是出于好奇看到网上有这样的东西,学了下感觉挺简单的,如果你是cass的初学者想仅仅是想学习这个软件,不想花大价格购买正版的,这个是可以 ...
- JAVA逆向&反混淆-追查Burpsuite的破解原理(转)
0x00 摘要: 本系列文章通过对BurpLoader的几个版本的逆向分析,分析Burpsuite的破解原理,分析Burpsuite认证体系存在的安全漏洞. 0x01 JD-GUI的用途与缺陷: JD ...
- Flash 加密和破解
关于Flash(swf),我们需要明确一点: ***Flash字节码的意义都是公开的 所以如果cracker真的有足够的耐心他最终还是可以破解掉你的Flash.我们能做的只是尽量提高Flash被破解的 ...
随机推荐
- PyQt(Python+Qt)学习随笔:QAbstractItemView的textElideMode属性
老猿Python博文目录 老猿Python博客地址 一.概述 textElideMode属性用于控制省略文本中省略号"-"的位置,当项的内容过多视图无法显示完整时会显示部分内容,并 ...
- js 导出div 中的类容为 word 文件
//引入包 <script src="/FileSaver.js"></script> <script src="/jquery.word ...
- Social Infrastructure Information Systems Division, Hitachi Programming Contest 2020 C题题解
首先,我们将题目理解成若\(i\)与\(j\)距离恰好为\(3\),则不可能\(p_i \equiv p_j \equiv 1 \space or \space 2 (\bmod 3)\).这就相当于 ...
- IDEA注册码(附修改hosts文件的方法)
推荐获取IDEA注册码的网站:http://idea.lanyus.com/ 亲测好用! 也可复制下边的注册码: K71U8DBPNE-eyJsaWNlbnNlSWQiOiJLNzFVOERCUE5F ...
- eclipse提示JVM版本太低
解决方案:去eclipse的安装路径找到eclipse.ini文件,然后在头部指定JVM的版本(第一第二行) -vm C:/Program Files/Java/jdk-11.0.9/bin -sta ...
- UML—20—001
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 这个作业要求在哪里 https://edu.cnblogs.com/campus/fz ...
- Clickhouse 在大数据分析平台 - 留存分析上的应用
导语 | 本文实践了对于千万级别的用户,操作总数达万级别,每日几十亿操作流水的留存分析工具秒级别查询的数据构建方案.同时,除了留存分析,对于用户群分析,事件分析等也可以尝试用此方案来解决. 文章作者: ...
- Spring Cloud Alibaba (一): SpringCloud与SpringBoot版本选型
前言 近年SpringCloud与SpringBoot更新迭代非常频繁,导致我们对两者的版本选型非常的困难.若是版本选择有问题, 会导致开发中调试兼容性占用非常多的得必要时间. SpringClo ...
- ubuntu 16.04 编译安装 python3.9
下载 python包 wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz 解压 tar zxf Python-3.9.1.tgz ...
- Flink内存溢出
Flink内存模型 此图是基于flink1.12版本. 一个taskmanager给了6g内存,可以有很清楚的看到各个部分占用的内存,还是实时变化的. 名词解释 组件 配置项 描述 Framework ...