《xp過堆棧檢測app(XP過檢測)》是一種軟件應(yīng)用程序,旨在幫助開發(fā)人員檢測和解決在應(yīng)用程序中可能出現(xiàn)的堆棧溢出錯誤。堆棧溢出是一種常見的編程錯誤,當(dāng)一個函數(shù)遞歸調(diào)用自己或者太多函數(shù)被嵌套調(diào)用時,會導(dǎo)致堆棧溢出。這會導(dǎo)致程序崩潰或者產(chǎn)生不確定的行為,從而導(dǎo)致數(shù)據(jù)丟失或系統(tǒng)不穩(wěn)定。
越來越多的app對xposed進(jìn)行了檢測
通過分析了其中部分對xposed檢查的代碼,希望通過xposed的方式阻止xposed檢測達(dá)到通用的目的。
一般檢查手段有很多,樓主也沒分析完,這里列舉了幾個和處理方式。
1、通過 ClassLoader 的 loadClass 加載XposedHelper 來修改一些局部變量值,阻止hook.
處理方式,通過Hook 類加載修改 加載的類名
2、通過 代碼拋出一個異常,在堆棧中,查找Xposed相關(guān)的內(nèi)容,進(jìn)行判定處理方式,通過Hook堆棧獲取類名替換的方式進(jìn)行阻止
3、通過讀取 shell 命令 /proc/pid(應(yīng)用進(jìn)程id)/maps 可以拿到當(dāng)前上下文的so和jar列表,查找Xposed相關(guān)
處理方式,樓主看到大部分多試通過使用 BufferedReader進(jìn)行讀取命令的內(nèi)容,過濾掉 XposedBridge.jar就好。
繞過簽名驗(yàn)證
隱藏你指定的應(yīng)用
隱藏模擬位置
隱藏xposed框架
隱藏root
過濾Error級別的日志,得到以下信息:
導(dǎo)出/data/tombstones/tombstone_18到電腦,查看內(nèi)存(方法棧)(也可以用MT管理器直接在模擬器或者手機(jī)上查看):
首先通過java.lang.Thread.currentThread獲得當(dāng)前線程對象,然后調(diào)用getStackTrace獲得StackTraceElement數(shù)組,遍歷該數(shù)組,調(diào)用getClassName,再判斷是否包含xposed
定位xposed檢測
通過Xposed框架進(jìn)行hook這個app中的Thread.getStackTrace,打印調(diào)用棧(函數(shù)返回值):
(如果需要Hook這個app的StackTraceElement.getClassName,打印返回值即可)
打印的日志如下:
通過日志信息,可以看到調(diào)用者是java.lang.Runtime.nativeLoad,即so加載時調(diào)用(在Native層通過JNI方式進(jìn)行調(diào)用getStackTrace)
分析dex文件
通過使用JEB反編譯(也可以用androidkiller、jadx等工具反編譯dex文件)classes.dex,通過字符串 的關(guān)鍵信息可以定位到com.secneo.apkwrapper.AW.attachBaseContext:
可以看到加載的是libDexHelper.so(舊版本是在加載,現(xiàn)在改到attachBaseContext了)
由so的加載流程可知,在so中的檢測函數(shù)的調(diào)用要么是在JNI_OnLoad,要么是在.init或.init_array區(qū)段。
通過使用IDA動態(tài)調(diào)試APP,發(fā)現(xiàn)該加固是在JNI_OnLoad中調(diào)用檢測函數(shù)(這里怎么用ida動態(tài)調(diào)試apk就不細(xì)分析)。
由于最終還是要調(diào)用Java層的getClassName方法,考慮到通用性,可以編寫Xposed模塊,繞過堆棧檢測xposed框架
檢測的繞過
XposedHookStackTraceElement.getClassName方法,判斷是否包含xposed,如果包含則替換返回值為android.os.Handler
注意:需要在DexHelper加載前Hook,因?yàn)樵摷庸淌窃贘NI_OnLoad中調(diào)用檢測函數(shù)。
上面代碼是簡單的xposed的hook代碼功能。
1、為部分插件提供啟用/禁用免重啟支持
2、為部分插件提供插件教程
3、為插件增加評論評分功能
4、修復(fù)部分Bug,提升體驗(yàn)
5、新增設(shè)置功能在管理頁面,支持下載、安裝等相關(guān)設(shè)置
6、新增插件忽略/取消忽略更新功能
7、新增低電量時框架安裝保護(hù)機(jī)制
8、新增用戶反饋功能
XP過堆棧檢測app使用一種靜態(tài)代碼分析技術(shù),掃描整個代碼庫以尋找潛在的堆棧溢出錯誤。它會檢查函數(shù)調(diào)用鏈的深度,以及遞歸調(diào)用的情況。如果檢測到潛在的堆棧溢出風(fēng)險(xiǎn),它會發(fā)出警告,并提供可能的修改建議。
手機(jī)軟件,是指能在手機(jī)上方便用戶的一系列軟件,具備各種各樣的功能,滿足用戶的各種需求,包括各種保護(hù)手
進(jìn)入專區(qū)>專業(yè)的游戲下載、綜合門戶網(wǎng)站
Copyright 2009-2016 www.mmd178.cn 版權(quán)所有
鄂ICP備17018784號-1
熱門評論
最新評論