完整内容及源碼關注公衆号:ReverseCode,發送沖
https://developers.google.com/android/images#angler
開機鍵+音量減 進入recovery
ES檔案浏覽器 檢視系統檔案
玩逆向必備一台真機,那麼非谷歌親兒子莫屬,模拟器缺失native/so層,屬于精簡版系統,故還是真機香呀。
官網下載下傳pixel 8.1.0鏡像,建議刷OPM1.171019.011版本安卓8.1.0
設定-關于手機-版本号8下點選-進入開發者模式,進入系統-進階-打開開發者選項-USB調試
twrp作為第三方刷機工具,刷入Magisk,nethunter等魔改系統。
fastboot flash recovery twrp-3.3.0-0-angler.img
linux下載下傳最新的platform-tools刷機的時候,fastboot會報各種unknow command或接近的錯誤,把fastboot檔案替換成随着aosp一起編譯出來的即可,使用自行編譯的fastboot即可。
通過wifi連接配接adb可實作群控
<code>adb -s 192.168.0.104:5555 install com.ttxapps.wifiadb_2.1.3-810031745_minAPI15(nodpi)_apkmirror.com.apk</code> 安裝apk
<code>adb connect 192.168.0.104:5555</code> 使用adb連接配接手機
termux
<code>adb -s 192.168.0.104:5555 install com.termux_92.apk</code> adb被禁時在app端使用指令行操作
<code>pkg update && pkg install htop</code> 在app端安裝管理程序的包
xdebuggable && XAppDebug
啟動EdXposed,搜尋xdebuggable 和XAppDebug子產品并安裝開啟debug apk(需要借助梯子)
ro.debuggable
<code>adb push MagiskHidePropsConf-v5.3.4.zip /sdcard/Download</code> 并通過Magisk Manager-子產品-下載下傳-安裝MagiskHidePropsConf-v5.3.4.zip
reboot-adb shell-props
getprop ro.debuggable 即可檢視1,開啟全局可調式
lineageos,twrp
marlin,SR5-SuperSU-v2.82-SR5-20171001224502.zip,xposed-v89-sdk25-arm64.zip,XposedInstaller_3.1.5
pixel系列安裝xposed不可使用xposed-v89-sdk25-arm64.zip,隻能ssr後谷歌下載下傳xposed架構安裝。
設定-關于手機-版本号8下點選-進入開發者模式-打開開發者選項
adb push UPDATE-SuperSU-v2.79-20161211114519.zip /sdcard
adb push xposed-v89-sdk25-arm64.zip /sdcard
rom:https://dl.google.com/dl/android/aosp/angler-n2g48c-factory-6a21e528.zip
解壓得到angler-n2g48c-factory-6a21e528\angler-n2g48c\image-angler-n2g48c
superSu:https://download.chainfire.eu/1016/SuperSU/UPDATE-SuperSU-v2.79-20161211114519.zip
xposed安卓7.1對應sdk:https://dl-xda.xposed.info/framework/sdk25/arm64/xposed-v89-sdk25-arm64.zip
xposed apk:https://dl.xda-cdn.com/4/3/9/3/0/8/2/XposedInstaller_3.1.5.apk?key=4Rkip9MZy_4KitcodXSxBw&ts=1598862686
twrp:https://dl.twrp.me/angler/twrp-3.4.0-0-angler.img
搭配QtScrcpy就可以在電腦上觀看手機螢幕上的内容,或者通過usb一拖四實作滑鼠鍵盤完全電腦操作。該系統自動內建了java,BurpSuite2020.06,charles,python3,python。
點開<code>Nethunter</code>這個<code>app</code>
切換到<code>Kali Chroot Manager</code>,START KALI CHROOT
切換到<code>Kali Services</code>,将<code>SSH</code>啟動并且勾選<code>Start at Boot</code>,這樣就擁有了<code>sshd</code>
切換到<code>Kex Manage</code>--<code>SETUP LOCAL SERVER</code> 設定好密碼後--取消Localhost Only--START SERVER--OPEN KEX CLIENT

打開VNC Viewer,通過NetHunter 終端檢視ip位址,顯示器為1,開啟VNC登入
通過一拖四的typec轉USB,連接配接鍵盤滑鼠,将Nexus 6p變成一台kali電腦。
adb push .\xposed-v89-sdk23-arm.zip /sdcard
打開開發者選項-usb調試
-裝置解鎖狀态-綁定賬号和裝置
adb reboot bootloader 解鎖bootloader,執行miflash_unlock.exe
EdXposed-SandHook-v0.4.6.2.4529.-release.zip
twrp-3.3.1-1-chiron.img
安裝全程開全局代理,安裝nexus 5x 8.0
network mode選擇Bridge或者在virtualbox中修改網絡為橋接,如virtualbox網絡連接配接裡沒有橋接網卡選擇
修改D:\VirtualBox\drivers\network\netlwf\VBoxNetLwf.inf
settings-system-Languages&input-Languages-Add a language-簡體中文
adb 無法連接配接genymotion怎麼辦? 修改genymotion的settings,Use custom Android SDK tools為本地android sdk路徑 adb kill-server + adb start-server 重新開機adb 安裝wifiadb後即可,預設可以連接配接192網段,配置橋接,可adb connect 192.168.0.104:5555
arm橋接
<code>uname -a i686</code> 檢視cpu架構為x86 32位 不支援arm,需要安裝arm橋,直接将 Genymotion-ARM-Translation_for_8.0.zip拖入nexus 5x 8.0, 進行安裝
adb reboot 即可安裝帶有arm的so的apk
别用Windows了,魯迅曾經說過,他在逆向生涯中超過一半的苦難均由Windows賜予。
vmware安裝檔案 秘鑰:YC34H-6WWDK-085MQ-JYPNX-NZRA2
kali-linux-2020.4-vmware-amd64.7z種子,使用vmware打開vmx檔案,配置6g記憶體,80g磁盤存儲,網絡适配選擇橋接到本地網卡(虛拟網絡編輯器),預設賬密:kali/kali,sudo passwd root 修改密碼123456
重新開機後使用root登入,android-studio-ide-201.7042882-linux.tar.gz安裝包
~/.cache/vmware/drag_and_drop 定期删除拷貝的檔案緩存
as若報錯<code>To build this project, accept the SDK license agreements and install the missing components?</code> 執行/root/Android/Sdk/tools/bin/sdkmanager --licenses
Android裝置投屏
NodeJs
jadx-1.2.0.zip多dex打開,修改jadx-gui中<code>set DEFAULT_JVM_OPTS="-Xms512M" "-Xmx8g"</code>,加入zshrc的環境變量中<code>export PATH="/root/Android/Sdk/ndk-bundle:/root/Android/Sdk/platform-tools:${JAVA_HOME}/bin:$PATH:/root/Desktop/charles/bin:/root/Desktop/jadx-1.2.0/bin:$NDK_HOME"</code>
jeb-pro-3.19.1.202005071620_pwd_ilbtcdnwiuypbzeo_.7z 運作./jeb_linux.sh,輸入密碼:ilbtcdnwiuypbzeo,進入界面點選Manual Key Generation中間按鈕擷取LICENSE DATA,運作jebKeygen.py 擷取license key後輸入到界面的key中,continue
Kali Linux裡的as4的DDMS啟動失敗,原因是要用as自帶的jre來啟動,直接./monitor用的是Kali系統的jdk,版本太高了<code>ln -s /root/Desktop/android-studio/jre/ /root/Android/Sdk/tools/lib/monitor-x86_64/</code>,然後通過~/Android/Sdk/tools/monitor打開ddms
vim ~/.bashrc && source ~/.bashrc
<code>export PATH=$PATH:/root/Android/Sdk/platform-tools</code>
jdk1.8
nexus 5x
安裝流程 twrp->SuperSu-> nethunter
kali nethunter下載下傳nexus 5x nethunter,使用投屏可變成一個迷你的linux滲透系統,通過twrp進行install ,<code>sh userinit.sh</code> 同步時間
tab
smali與java代碼轉換
ctrl+b
下斷點(注意這個必須在smali代碼界面才有用)
esc
回退上一級引用
activity_main.xml中配置的view元件:jeb中以十六進制存在于代碼中,利用電腦的程式員模式轉為十進制,jadx将該十進制存入resources.arsc,gda有APK入口直接進入MainActivity,同樣以十六進制存入代碼中。
getprop ro.product.cpu.abi
判斷系統cpu版本 虛拟機一般都是x86
dumpsys meminfo pid
檢視程序占用記憶體映射的資訊
cat /proc/pid/maps
程序加載的so
cat /proc/pid/maps | grep -i libart.so
所有java代碼通過libart.so解析,脫殼機的關鍵
dumpsys activity top
顯示目前的Activity,顯示View Hierarchy,看view的類資訊
dumpsys package com.soviet.hook4crawler
檢視運作包資訊
pm list packages
檢視所有安裝的包
對python不同包(frida,objection...)多版本管理
全套安裝最新版本:<code>proxychains pip install objection</code>
7z x frida-server-12.8.0-android-arm64
特定版本frida
按照這個順序,在裝objection的時候,就會直接Requirement already satisfied,不會再去下載下傳新的frida來安裝了。
frida開發環境
pyenv local 3.8.0 && ./fs128arm64
git clone https://github.com/oleavr/frida-agent-example.git
cd frida-agent-example/
npm install
使用VSCode等IDE打開此工程,在agent下編寫typescript,會有智能提示。
npm run watch會監控代碼修改自動編譯生成js檔案
frida -UF -l demo.js usb連接配接手機儲存将自動調用demo.js 進行hook <code>Java.perform(function(){console.log("frida hook")})</code>
frida -UF -l demo.js --runtime=v8 使用v8引擎 <code>Java.perform(()=>{console.log("Hello World")})</code>
frida-ps -U 檢視所有程序
frida -H 192.168.0.100:5555 -f com.ttxapps.wifiadb -l demo.js --runtime=v8 遠端hook,-l指定腳本
frida -Uf com.android.settings -l demo.js --runtime=v8 --no-pause 經過usb主動啟動應用調用demo.js,-f是spawn模式,--no-pause直接加載應用,沒有的話需要%resume啟動主線程
frida -UF --runtime=v8 -e "Java.perform(()=>{console.log('Hello World')})" -o /root/log.txt 直接執行腳本寫入檔案
遠端連接配接
<code>./fs128arm64 -v -l 0.0.0.0:8888</code> 指定端口啟動frida,預設端口27042
<code>frida-ps -H 192.168.0.8:8888</code> 指定-U表示usb,-H表示主機ip
<code>frida -H 192.168.0.8:8888 -F</code> 指定-H表示主機ip,-F表示前台應用,輸入frida即可檢視Frida資訊
cd frida-agent-example/ && npm install && npm run watch && frida -H 192.168.0.8:8888 -F -l agent/demo.js 遠端調用js腳本
遠端調用
plugins
本文由部落格一文多發平台 OpenWrite 釋出!