app逆向時,參數(shù)與函數(shù)的確定很關(guān)鍵,找到可疑的函數(shù),不確定是否由該函數(shù)生成,該怎么解決?hook就應(yīng)允而生了,首先是要求本地電腦和安卓模擬器(網(wǎng)易mumu模擬器支持多系統(tǒng),該模擬器作為主流)或真機的連接,無論是網(wǎng)易mumu模擬器還是真機都要取得超級權(quán)限(root),用兩者的區(qū)別在于是否java函數(shù)中調(diào)用c,java函數(shù)中調(diào)用c就用真機。
adb連接安卓模擬器或真機hook參數(shù)加密詳細過程(frida)
一、終端安裝frida第三方包
pip install frida==14.2.18
pip install frida-tools==9.2.5
二、adb連接安卓模擬器與真機的詳細過程
>>>adb kill-server
?
>>>adb start-server
模擬機的連接/真機自動連接
>>>adb connect 127.0.0.1:7555
>>>adb devices
List of devices attached
emulator-5554 device
1a9f22350107 device
?
電腦上的apk安裝
>>>adb -s emulator-5554 install F:xxx/xxx/xxx/x.apk
cpu架構(gòu)
>>>adb -s bmus5t7dvkofmvgu shell getprop ro.product.cpu.abi
arm64-v8a 表示模擬器CPU是arm -> 64位
?
>>>adb -s 1a9f22350107 shell getprop ro.product.cpu.abi
x86_64 表示模擬器CPU是x86 -> 64位
>>>adb -s 1a9f22350107 shell getprop ro.product.cpu.abi
armeabi-v7a 表示模擬器CPU是arm -> 32位
?
>>>adb -s 1a9f22350107 shell # 登錄設(shè)備
>>>adb -s emulator-5554 shell # 登錄設(shè)備
>>>adb shell 一個設(shè)備
cezanne:/ $ su - 相當(dāng)于root最高權(quán)限
?
本地電腦文件遷移到設(shè)備上 移動文件
>>>adb push D:\xxxx\xxxxxx\xxxxxxx /sdcard/
三、安裝frida
下載:https://github.com/frida/frida/releases
安裝:
- 【電腦】解壓
- 【電腦】文件上傳到設(shè)備
adb push C:\2345Downloads\... /sdcard
- 【手機】將frida-server..文件移動到手機的 /data/local/tmp 目錄
>>>adb shell
>>>su -
>>>cd sdcard
>>>ls
>>>mv frida-server-14.2.18-android-x86_64 /data/local/tmp
- 【進入】
>>>cd /data/local/tmp
- 【授權(quán)】授予可執(zhí)行的權(quán)限
>>>chmod 777 frida-server-14.2.18-android-x86_64
# chmod 777 frida-server-14.2.18-android-arm64
四、 啟動和Hook
>>>adb shell
>>>su -
>>>cd /data/local/tmp/
>>>./frida-server-14.2.18-android-x86_64
端口的轉(zhuǎn)發(fā)
>>>adb forward tcp:27042 tcp:27042
>>>adb forward tcp:27043 tcp:27043
查看包名文章來源:http://www.zghlxwxcb.cn/news/detail-536073.html
# 枚舉手機上的所有進程 & 前臺進程
import frida
# 獲取設(shè)備信息
rdev = frida.get_remote_device()
print(rdev)
# 枚舉所有的進程
processes = rdev.enumerate_processes()
for process in processes:
print(process)
# 獲取在前臺運行的APP
front_app = rdev.get_frontmost_application()
print(front_app)
搜索url或關(guān)鍵詞
找到可疑之處查看包、類、方法名文章來源地址http://www.zghlxwxcb.cn/news/detail-536073.html
import frida
import sys
# 連接手機設(shè)備
rdev = frida.get_remote_device()
# Hook手機上的那個APP(app的包名字)
# 注意事項:在運行這個代碼之前,一定要先在手機上啟動app
session = rdev.attach("app的包名字")
scr = """
Java.perform(function () {
// 包.類
var AHAPIHelper = Java.use("包.類");
// Hook,替換 implementation實現(xiàn)
類.方法名.implementation = function(context,map){
console.log(123);
// 執(zhí)行原來的方法
this.方法名(context,map);
// 執(zhí)行原來的方法(如果有返回值)
// var x = this.方法名(context,map);
// retrun x;
console.log(666);
}
});
"""
// 讀取腳本
script = session.create_script(scr)
// 回調(diào)函數(shù)
def on_message(message, data):
print(message, data)
script.on("message", on_message)
// 加載
script.load()
// 等待
sys.stdin.read()
到了這里,關(guān)于adb連接安卓模擬器或真機hook參數(shù)加密詳細過程(frida)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!