• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

app逆向万能的md5加密hook破解入参方法(其他加密用通用方法原理差不多,小白推荐)

python 搞java代码 3年前 (2022-05-21) 48次浏览 已收录 0个评论

一.原理

安卓开发调用md5加密时候都会调用到系统类java.security.MessageDigest

加密时候会会调用里面2个关键方法update以及digest

根据这个原理我们开始写代码吧

二.代码

hook.js

<code class="language-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
    }
});

</code>

www#gaodaima.com来源gaodai#ma#com搞@代~码网搞代码

可以直接cmd窗口调用(老手推荐)

<code class="language-cmd">frida -U 包名 -l js
#修改js他会热更新
</code>

可以用python调用(新手推荐)

<code class="language-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()
</code>

三.显示效果

为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话
为什么博客园要限制字数,简单明确的说明方法他不香吗,一定要来一堆废话


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:app逆向万能的md5加密hook破解入参方法(其他加密用通用方法原理差不多,小白推荐)
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址