安卓逆向學習(1) so檔案的動態除錯方法

2021-07-26 12:41:20 字數 1079 閱讀 9881

一、所使用平台及軟體:

1、安卓手機:小公尺2s 版本6.0 系統為開發版已取得root許可權。

2、軟體:ida_pro_v6.8

3、電腦系統win10

二、步驟:

1、確保xml裡的android:debuggable=」true」

2、將android_server檔案push到手機/data/local/tmp目錄

2、執行setenforce 0

3、執行chmod 755 android_server

4、執行android_server

5、埠** adb forward tcp:23946 tcp:23946

6、除錯模式啟動程式adb shell am start -d -n 包名/類名

7、ida附加程序

8、f9執行,下斷點除錯。

三、擴充套件:

1、在有反除錯的情況下如何跳過

說明,一般來說 反除錯在這裡開啟乙個執行緒,然後不斷地做輪詢,主要的原理是判斷trackerpid字段值是否等於0,由於如果存在除錯,trackerpid就不為0,因此可以用作反除錯;要破解也簡單,我們只要把這裡的呼叫函式給nop掉即可

2、下斷點

ctrl + s 然後搜尋到so檔名

a.觸發斷點

下好斷點之後,直接f9執行吧,就能斷在jni_onload函式處~

當這種除錯手法出現之後,將特殊函式,或者反除錯函式放在jni_onload中也不是那麼的安全了。此時,程式猿們通過分析系統對so檔案的載入鏈結過程發現,jni_onload函式並不是最開始執行的。在jni_onload函式執行之前,還會執行init段和init_array中的一系列函式。

因此,現在的除錯方法,都是將斷點下在init_array中~

至於下斷點的方法,可以模擬於在jni_onload中下斷點的方法,在init_array的函式中下斷點。還有一種方法便是通過在linker模組中,通過對其中函式下斷點,然後也能單步到init_array中下面便詳細介紹下如何給任意系統函式下斷點

四、後記

從很多網上部落格中找到的資料,稍作整理,以備後用。已經過實際操作可行。

安卓逆向學習筆記(10) 安卓逆向學習資料

因為喜歡android安全,而android逆向是android安全的乙個分支,所以小弟利用業餘時間自學了一點android逆向。在學習過程中總結了一點學習資料,特此分享給大家。1 android安全大牛的部落格 鬼哥的部落格 聽鬼哥說故事 jack jia的部落格 android手機病毒分析及研究...

安卓逆向從0到1學習總結

逆向這玩意不是很玄學,不像web滲透那樣很玄學 強烈吐槽一波以前我還在做web滲透的時候,挖不出大洞也就算了,全都是一堆反射型的xss,xss到底跟我有多過不去啊 只要你基礎夠,在捨得掉頭髮,就能夠有產出,下面簡單羅列一下我個人認為的安卓逆向所需要的前置技能 正向開發越熟練,在逆向的過程越容易找到關...

攻防世界安卓逆向app1

首先拿到了乙個apk,用7zip解壓後 將classes.dex檔案用dex2jar反彙編得到乙個jar包,導進我的idea以後 開啟mainactivity分析邏輯,關鍵是這個onclick函式 public void onclick view param1view else toast.make...