
學習吾愛破解論壇正己的《安卓逆向這檔事》的筆記,視頻和配套工具可以去課程主頁獲取:https://www.52pojie.cn/thread-1714727-1-1.html。
工具
- 雷電模擬器
- 教程Demo
- MT管理器/NP管理器
- jeb
- XappDebug
動態調試環境配置
安裝 jeb
配置 Java 環境
- 下載 jdk 並安裝
- 配置環境變數
這裡我之前裝過,而且網上教程很多,就不演示了。
正己給的 Java 環境是 11 的,需要比這個版本高的,正好我之前裝的是 19。
在命令行輸入 java --version
測試一下:
安裝
解壓了就行了,註冊啥的正己都弄好了。
動態調試
獲取 debug 許可權
法一:修改 AndroidManifest.xml
在 AndroidManifest.xml 的 application 標籤里添加:
android:debuggable="true"
法二:XAppDebug 模塊 hook 對應的 app
XAppDebug 項目地址:https://github.com/Palatis/XAppDebug
啟用模塊之後勾選系統框架(需要重啟)和要進行 debug 的 app 即可。
法三:Magisk 命令(重啟會失效)
通過 adb 進入命令行或者用 MT 管理器的終端模擬器都可以。
- adb 進入命令行(在你電腦終端里輸):
adb shell
- MT 管理器的終端模擬器:
然後依次輸入下面的命令就行了:
# 切換至超級用戶
su
# 啟用 debug
magisk resetprop ro.debuggable 1
# 一定要通過該方式重啟
stop;start;
法四:刷入 MagiskHide Props Config 模塊(永久有效)
下載 MagiskHide Props Config:https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/releases
在 Magisk 里找到模塊,點擊盒子按鈕選擇剛剛下載的 zip 文件即可開始刷入。
出現 Done 說明刷入成功,重啟設備。
進入終端,輸入 props
命令,會出現一個菜單,選擇Edit MagiskHide props (active)
,也就是輸入 4
:
進入新菜單,找到 ro.debuggable
選項,並選擇(我這裡顯示 enabled
,表示已經是 1
了,就不用改了,否則需要改),將 ro.debuggable
的值設為 1
:
修改完後重啟設備,然後使用以下命令驗證 ro.debuggable
是否已經改為 1
:
getprop ro.debuggable
埠轉發以及開啟 adb 調試許可權
埠轉發
雷電模擬器默認開啟埠轉發,其他模擬器需要用 adb 連一下,類似下面的命令:
adb connect 127.0.0.1:<port>
這個埠號不同模擬器不同,具體可以去查一下。
開啟 adb 調試許可權
進入開發者模式
按」設置->關於本機->版本號「順序找到」版本號「,點擊 7 次進入開發者模式。
開啟 USB 調試
按」設置->系統->高級->開發者選項「順序進入」開發者選項「,找到」USB 調試「選項並開啟:
下斷點
在對應 smali 代碼處 Ctrl-B
下斷點
debug 模式啟動
命令行輸入以下命令:
adb shell am start -D -n <package_name>/<activity_name>
adb
:Android Debug Bridge 的縮寫,它是一個用於在開發者計算機和 Android 設備之間建立通信的工具。shell
:指示 adb 命令將要在設備的命令行 shell 中運行。am
:代表活動管理器(Activity Manager),它是一個在 Android 設備上跟蹤和管理應用程序活動的系統服務。start
:指示活動管理器啟動一個新的應用程序或活動。-D
:指示在啟動應用程序時要清除先前的任務和棧,以便該應用程序成為新任務的開始。-n /
:指示要啟動的應用程序和特定的 activity。- `` 是應用程序的包名。
- `` 是要啟動的 activity 的名稱。
比如這裡要啟動的名為 "com.zj.wuaipojie" 的應用程序中的 ".ui.MainActivity" 活動,命令將如下所示:
adb shell am start -D -n com.zj.wuaipojie/.ui.MainActivity
這裡不知道是我看視頻看漏了還是怎麼的,我的環境里好像沒有
adb
,所以這裡我去另外安裝了一下。
然後模擬器會打開對應應用並等待調試器啟動:
Jeb附加調試進程
在工具欄找到「調試器」一欄的」開始「並點擊,或者通過菜單欄的」調試器->開始「,喚出「附加調試」菜單,然後找到對應的進程選擇」附上「即可開始調試。
接著在 app 中觸發剛剛下斷點處的邏輯,可以看到代碼停在斷點處了。此時就可以查看各種調試信息了,這裡主要關注局部變數的信息:
快捷鍵:
Ctrl-F6
:進入方法F6
:跳過方法F7
:跳出方法Ctrl-R
:運行到游標位置
這裡在最後相等比較前的函數看到一個 base64 的值,複製下來放到 flag{}
之間就是密鑰了。
我的密鑰正確了:
這裡調試的時候發現 v0 的值(也就是最後函數返回值賦給的變數)沒有出現在局部變數里,正己說是因為模擬器的問題,真機就會有這部分值。
本文鏈接:https://linuxstory.org/android-reverse-dynamic-debugging-guide/
原文鏈接:https://www.52pojie.cn/thread-1714727-1-1.html
Linux Story 整理,對原文有刪節、補充;轉載請註明,否則將追究相關責任!
nordvpn special coupon code 2025 350fairfax
Hello Dear, are you truly visiting this website regularly, if so afterward you will definitely take good know-how.
Thank you for the good writeup. It in fact was a amusement account it.
Look advanced to more added agreeable from you!
However, how can we communicate?
Also visit my homepage; nordvpn coupons inspiresensation (wall.sh)
Wow, fantastic blog layout! How long have you been blogging for?
you made blogging look easy. The overall look of your web site is great, as well as the content!
Stop by my webpage … nordvpn coupons inspiresensation
I am in fact grateful to the owner of this site who has
shared this enormous post at at this place.
Here is my blog: nordvpn coupons inspiresensation – https://t.co/5gaT0Nh9CJ,
My family every time say that I am killing my time here at net, however I
know I am getting knowledge daily by reading such nice posts.
my web-site :: Nordvpn coupons Inspiresensation