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被破解的 ...
随机推荐
- Python中repr(变量)和str(变量)的返回值有什么区别和联系
Python中repr(变量)和str(变量)都返回一个描述对象的字符串,二者有关联又有不同.由于Python3.0后都是新式类,我们的分析也是基于新式类进行的.基于object派生的新式类中二者之间 ...
- PyQt(Python+Qt)学习随笔:QTreeView树形视图的rootIsDecorated属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.属性说明 QTreeView树形视图的rootIsDecorated属性用于控制是否展示对顶层项 ...
- PyQt(Python+Qt)学习随笔:QAbstractItemView的alternatingRowColors属性
老猿Python博文目录 老猿Python博客地址 alternatingRowColors属性用于控制视图中不同行记录背景色是否使用交替不同的颜色. 如果此属性为True,则将使用QPalette. ...
- 水星路由器自动更换IP工具
这个工具是本人抢火车票的时候,自己写的换IP工具,仅支持自己的水星,其他水星不知道,请自测!!!! 点击更换IP,他会断开链接,重新拨号!!(达到更换IP的目的) !!开发语言:易语言(源码在下方)使 ...
- 你知道Python基本数据类型是哪6个么
Python 是强类型语言,在学习 Python 时,有必要了解 Python 有哪些基本数据类型,一共 6 个:Number(数字).String(字符串).List(列表).Tuple(元组).S ...
- Docker 命令自动补全?要的
前言 不知道这个小伙伴有多久没用过 Docker 了, 突然对我说 Docker 命令怎么发生变化了 docker run ... #变成了 docker container run ... 他说,本 ...
- CSS基础-列表
列表字体和间距 当创建样式列表时,需要调整样式,使其保持与周围元素相同的垂直间距和相互间的水平间距. 示例代码 /* 基准样式 */ html { font-family: Helvetica, ...
- 如何设置10px
chrome浏览器小于12px字体默认显示12px? font-size:10px: -webkit-transform:scal(0.83):
- WPF源代码分析系列一:剖析WPF模板机制的内部实现(一)
众所周知,在WPF框架中,Visual类是可以提供渲染(render)支持的最顶层的类,所有可视化元素(包括UIElement.FrameworkElment.Control等)都直接或间接继承自Vi ...
- git基础使用(超级详细)
使用git前的步骤: 1. 安装git (安装步骤省略) 2. 使用git设置用户名和邮箱 git config --global user.name "Your Name" gi ...