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()

三.顯示效果

爲什麼博客園要限制字數,簡單明確的說明方法他不香嗎,一定要來一堆廢話
爲什麼博客園要限制字數,簡單明確的說明方法他不香嗎,一定要來一堆廢話
爲什麼博客園要限制字數,簡單明確的說明方法他不香嗎,一定要來一堆廢話
爲什麼博客園要限制字數,簡單明確的說明方法他不香嗎,一定要來一堆廢話
爲什麼博客園要限制字數,簡單明確的說明方法他不香嗎,一定要來一堆廢話
爲什麼博客園要限制字數,簡單明確的說明方法他不香嗎,一定要來一堆廢話
爲什麼博客園要限制字數,簡單明確的說明方法他不香嗎,一定要來一堆廢話
爲什麼博客園要限制字數,簡單明確的說明方法他不香嗎,一定要來一堆廢話
爲什麼博客園要限制字數,簡單明確的說明方法他不香嗎,一定要來一堆廢話
爲什麼博客園要限制字數,簡單明確的說明方法他不香嗎,一定要來一堆廢話
爲什麼博客園要限制字數,簡單明確的說明方法他不香嗎,一定要來一堆廢話
爲什麼博客園要限制字數,簡單明確的說明方法他不香嗎,一定要來一堆廢話
爲什麼博客園要限制字數,簡單明確的說明方法他不香嗎,一定要來一堆廢話
爲什麼博客園要限制字數,簡單明確的說明方法他不香嗎,一定要來一堆廢話
爲什麼博客園要限制字數,簡單明確的說明方法他不香嗎,一定要來一堆廢話

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章