frida hook調(diào)試安卓app環(huán)境安裝

1. 安裝frida-tools

  • 這里給出的是python的安裝指令: pip install frida-tools

2. 安裝adb

mac中adb的安裝推薦使用Homebrew指令安裝, 安裝Homebrew中遇到問題可以參考另一篇

  • 在終端中執(zhí)行指令: brew cask install android-platform-tools

windows中則推薦到http://adbshell.com/downloads下載ADB Kits蹈胡,解壓后得到adb.exe顶考、AdbWinApi.dll、AdbWinUsbApi.dll三個(gè)文件,然后將這三個(gè)文件拷貝到C:\Windows\System32\目錄下栖秕,保險(xiǎn)起見,同時(shí)拷貝這三個(gè)文件到C盤中的Windows/System/目錄下 及Windows/SysWOW64/
如果不拷貝到System/目錄下有可能執(zhí)行adb時(shí)會出錯(cuò):"找不到AdbWinApi.dll文件" 如果不拷貝到Windows/SysWOW64/有可能執(zhí)行adb時(shí)會出錯(cuò)"CreateProcess failure. error 2"
Windows安裝方法參考: windows安裝adb方法及問題解決

  • 然后測試是否安裝成功: adb devices, 出現(xiàn)以下形式內(nèi)容則說明安裝成功
List of devices attached
e312073d    device

3. 安裝frida-server

  • github/frida下載frida-server, 選擇自己所要操作的對應(yīng)版本的server就可以了, 安卓設(shè)備注意對應(yīng)自己設(shè)備的架構(gòu)(例如arm, arm64, x86等等, 安裝了xposed可以在xposed中看到自己設(shè)備對應(yīng)的架構(gòu))
  • 下載完成后將文件名改為frida-server(改成自己想要的名稱都可以, 不用解壓), 然后放到指定目錄下, 一般安卓手機(jī)放在/data/local/tmp/目錄下

4. 啟動frida-server

  • 首先連接安裝有frida的設(shè)備(需打開USB調(diào)試), 終端運(yùn)行指令: adb root以root運(yùn)行adb
  • 查看設(shè)備是否連接: adb devices
  • 進(jìn)入adb shell: adb shell
  • 在adb shell中執(zhí)行frida-server運(yùn)行指令: /data/local/tmp/frida-server &(后面加上&使其在后臺執(zhí)行, 目錄即為frida-server的存放目錄, 首次執(zhí)行前最好先修改frida-server文件的權(quán)限: chmod 755 /data/local/tmp/frida-server)
  • 運(yùn)行完成后可通過exit;退出adb shell

5. 調(diào)試安卓app

frida hook調(diào)試app首先需要該app的源碼, 找到自己想要調(diào)試的函數(shù)的位置
一切準(zhǔn)備就緒后,就可以開始調(diào)試安卓程序了,參考以下步驟

  • 在運(yùn)行有frida-server的設(shè)備上安裝需要調(diào)試的app
  • 運(yùn)行app然后在終端里運(yùn)行指令: adb shell dumpsys activity top即可查看該app的包名, 這里假設(shè)我們找到的是com.xxx.xxx
  • 然后使用python編寫hook腳本
# -*- coding:utf-8 -*-

import frida, sys

# frida -U --no-pause -f "com.xxx.xxx"


package_name = "com.xxx.xxx" # 該app的包名


def on_message(message, data):
 if message['type'] == 'send':
     print("[*] {0}".format(message['payload']))
 else:
     print(message)

# hook腳本
jscode = """
Java.perform(function () {
 console.log("start hook")
 var userLogin = Java.use("com.a.b.c"); //com.a.b.c中c是需要調(diào)試函數(shù)所在的類名, com.a.b是c類所在的包名
 send("userLogin: " + userLogin);
 userLogin.Encrypt.overload("java.lang.String", "java.lang.String").implementation = function(a1, a2){
     console.log(a1);
     var result = this.Encrypt(a1, a2);
     console.log(result);
     return result;
 }// Encrypt是我們想要hook的函數(shù)放坏,"java.lang.String"則為相應(yīng)位置的參數(shù)類型占位, a1,a2即為該函數(shù)的兩個(gè)參數(shù)
});
"""

device = frida.get_usb_device()
print("[*] 找到設(shè)備")
# pid = device.spawn([package_name])
# print(pid)
process = device.attach(package_name)
print("[*] 找到進(jìn)程")
# device.resume(pid)
script = process.create_script(jscode)
script.on('message', on_message)
print('[*] Running CTF')
script.load()
sys.stdin.read()
process.detach()
  • 由于進(jìn)程過多,可能導(dǎo)致上述代碼不能成功執(zhí)行hook功能老玛,此時(shí)可通過在終端中執(zhí)行frida -U --no-pause -f "com.xxx.xxx"來打開app(需將設(shè)備中待調(diào)試的app退出)淤年, 然后再將hook腳本代碼貼到終端中即可實(shí)現(xiàn)hook功能
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钧敞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子麸粮,更是在濱河造成了極大的恐慌溉苛,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豹休,死亡現(xiàn)場離奇詭異炊昆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)威根,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來视乐,“玉大人洛搀,你說我怎么就攤上這事∮拥恚” “怎么了留美?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長伸刃。 經(jīng)常有香客問我谎砾,道長,這世上最難降的妖魔是什么捧颅? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任景图,我火速辦了婚禮,結(jié)果婚禮上碉哑,老公的妹妹穿的比我還像新娘挚币。我一直安慰自己,他們只是感情好扣典,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布妆毕。 她就那樣靜靜地躺著,像睡著了一般贮尖。 火紅的嫁衣襯著肌膚如雪笛粘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天湿硝,我揣著相機(jī)與錄音薪前,去河邊找鬼。 笑死图柏,一個(gè)胖子當(dāng)著我的面吹牛序六,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蚤吹,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼例诀,長吁一口氣:“原來是場噩夢啊……” “哼随抠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起繁涂,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤拱她,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后扔罪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秉沼,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年矿酵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了唬复。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡全肮,死狀恐怖敞咧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辜腺,我是刑警寧澤休建,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站评疗,受9級特大地震影響测砂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜百匆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一砌些、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧胧华,春花似錦寄症、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至悲没,卻和暖如春篮迎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背示姿。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工甜橱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人栈戳。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓岂傲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親子檀。 傳聞我的和親對象是個(gè)殘疾皇子镊掖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容