frida愈來愈流行,針對他的檢測也愈來愈多了,什麼特徵串檢測,TracerPid檢測,雙進程保護。搞的咱們茶飯不思,啤酒都不香了。android
今天的目標是數字殼的調試,雙進程保護。git
-f spawn模式啓動App, 提示:github
frida -U -f com.asiainfo.app -l test.js --no-pause
Process crashed: Illegal instruction
複製代碼
卒......安全
先啓動App,再attach上去,提示微信
frida -U -l test.js com.asiainfo.app
Failed to spawn: ambiguous name; it matches: com.asiainfo.app (pid: 18486), com.asiainfo.app (pid: 18632)
複製代碼
搞事情呢,一個App啓動兩個進程幹嗎?markdown
不怕,咱們有雕牌超白。app
frida -U -l test.js -p 18486
Attaching...
Failed to attach: unable to access process with pid 18632 due to system restrictions; try `sudo sysctl kernel.yama.ptrace_scope=0`, or run Frida as root
複製代碼
歇了,爲啥指定了進程id仍是掛不上?oop
cat /proc/18486/status | grep TracerPid
TracerPid: 18634
複製代碼
原來 18486 已經被子進程 18634 給掛上了,後來的frida就掛不上了。學習
咋辦。ui
原貼 bbs.pediy.com/thread-2637… 提供了一個方案,你們能夠嘗試下。
github.com/svengong/xc… 提供了基於Xposed的frida腳本持久化方案。簡單的說能夠脫離pc,直接相似跑Xposed插件同樣來跑Frida腳本。
可是無心中(也許是有意的)提供了反反調試的能力。
. 安裝Xcubebase.apk, 從Xposed中啓用該程序,而後重啓。
. 啓動Xcubebase, 點擊初始化按鈕,須要賦予su權限
. 在 /data/local/tmp/xcube/xcube.yaml 文件中,增長一行 com.asiainfo.app: /data/local/tmp/test.js . 把腳本塞進去 adb push test.js /data/local/tmp
TIP: test.js就是簡單hook一下 StringBuilder.toString
跑起來,從哪看結果呀?
// js裏打印的時候增長一個 TAG
let TAG = "ffasiainfo: ";
console.log(TAG+" start 01");
// 而後adb 看log
adb logcat | grep ffasiainfo
06-23 09:36:09.201 28745 28786 D Xcube_gumjshook: [*] log : ffasiainfo: zh-Hans-CN
06-23 09:36:09.203 28745 28786 D Xcube_gumjshook: [*] log : ffasiainfo: (W)-TbsCommonConfig-TBS:TbsCommonConfig constructing...
06-23 09:36:09.205 28745 28786 D Xcube_gumjshook: [*] log : ffasiainfo: /storage/emulated/0/
06-23 09:36:09.206 28745 28786 D Xcube_gumjshook: [*] log : ffasiainfo: zh-Hans-CN
06-23 09:36:09.206 28745 28786 D Xcube_gumjshook: [*] log : ffasiainfo: /storage/emulated/0/tencent/tbs/com.asiainfo.app
06-23 09:36:09.207 28745 28786 D Xcube_gumjshook: [*] log : ffasiainfo: (E)-TbsCommonConfig-TBS:Config file is null, default values will be applied
06-23 09:36:09.208 28745 28786 D Xcube_gumjshook: [*] log : ffasiainfo: android.content.res.ResourcesKey#mResDir
06-23 09:36:09.208 28745 28786 D Xcube_gumjshook: [*] log : ffasiainfo: android.app.ActivityThread#mBoundApplication
06-23 09:36:09.209 28745 28786 D Xcube_gumjshook: [*] log : ffasiainfo: android.app.ActivityThread$AppBindData#appInfo
......
複製代碼
木問題,結果出來了。
目前惟一的缺點就是:腳本更新以後,功能不會動態更新,須要把App殺掉重啓下App。 最好是從 設置->應用 裏面去殺進程。
掛萬漏一,攻防都有本身的優點,找到一個被忽略的點,金身就破了。
雲在青天水在瓶
TIP: 本文的目的只有一個就是學習更多的逆向技巧和思路,若是有人利用本文技術去進行非法商業獲取利益帶來的法律責任都是操做者本身承擔,和本文以及做者不要緊,本文涉及到的代碼項目能夠去 奮飛的朋友們 知識星球自取,歡迎加入知識星球一塊兒學習探討技術。有問題能夠加我wx: fenfei331 討論下。
關注微信公衆號: 奮飛安全,最新技術乾貨實時推送