十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
這篇文章主要講解了“Android逆向進(jìn)階的方法是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Android逆向進(jìn)階的方法是什么”吧!
成都創(chuàng)新互聯(lián)公司專注于滴道網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供滴道營(yíng)銷型網(wǎng)站建設(shè),滴道網(wǎng)站制作、滴道網(wǎng)頁(yè)設(shè)計(jì)、滴道網(wǎng)站官網(wǎng)定制、重慶小程序開(kāi)發(fā)服務(wù),打造滴道網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供滴道網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
小白,要想使用這個(gè)武器,就要先打通經(jīng)脈。
1.Root,手機(jī)root,無(wú)root不安卓。打通root經(jīng)脈我們才能進(jìn)行之后的操作。
2.Xposed框架安裝,想要使用Xposed這個(gè)武器,就要先能拿的起來(lái)才能談使用。
xposedBridgeApi-82.jar.jar。
這個(gè)就是我們的武器了,小白,來(lái),我給你演示演示這個(gè)武器的基本使用方法。
我們這里使用Xposed武器攔截packageName,然后進(jìn)行輸出。
其實(shí)這個(gè)武器還是搭配內(nèi)功才能發(fā)揮最大的能力。
搭配內(nèi)功,師傅,這個(gè)怎么搞。
莫急莫急,我們一步一步來(lái)。
小白,我先傳授你第一重內(nèi)功的運(yùn)行穴位。要好好聽(tīng)哦。
我們先來(lái)給內(nèi)容運(yùn)行提供一個(gè)環(huán)境。
(1)首先構(gòu)建一個(gè)不需要Activity的項(xiàng)目
(2)然后導(dǎo)入jar包。并且右鍵add as Library。
(3)填寫(xiě)Androidmanifest.xml文件。
(4) 修改依賴方式
Xposed里已有該jar包內(nèi)容,再次打包進(jìn)去會(huì)沖突。
(5)基本Xposed模型創(chuàng)建
使用alt+enter實(shí)現(xiàn)一個(gè)方法。
小白,聽(tīng)我啰嗦兩句。
handleLoadPackage,這個(gè)方法用于在加載應(yīng)用程序的包的時(shí)候執(zhí)行用戶的操作。
LoadPackageParam loadPackageParam:,這個(gè)參數(shù)包含了加載的應(yīng)用程序的一些基本信息。
這里一句話就可以實(shí)現(xiàn)。
XposedBridge.log("HAI_app: " + loadPackageParam.packageName);
這里我們要進(jìn)行思考了,什么是 XposedBridge.log了。
posedBridge.log的打印會(huì)輸出到xposed框架的啟動(dòng)程序的日志功能中。這樣也更方便我們的查看。
我們來(lái)做配置的最后一步。設(shè)置開(kāi)始地方。
新建assets目錄里,新建一個(gè)file。file名稱為xposed_init。
寫(xiě)入包名+類。
Build APK
安裝進(jìn)行測(cè)試。
手機(jī)安裝然后重新啟動(dòng)即可。
所謂師傅領(lǐng)進(jìn)門(mén),修行看個(gè)人。所以啊。
我知道了師傅,我們是不是可以通過(guò)這個(gè)簡(jiǎn)單的來(lái)進(jìn)行過(guò)濾啊。比如寫(xiě)一個(gè)簡(jiǎn)單的分析系統(tǒng)?;蛘呤瞧渌臇|西,我們還可以對(duì)這個(gè)進(jìn)行過(guò)濾。我先自己去試試。
通過(guò)這個(gè)運(yùn)行路徑,對(duì)報(bào)名進(jìn)行分析和過(guò)濾。
進(jìn)行簡(jiǎn)單的嘗試。
使用昨天學(xué)的java字符串的substring來(lái)進(jìn)行對(duì)字符串過(guò)濾。
然后進(jìn)行測(cè)試。
當(dāng)然也可以針對(duì)這個(gè)進(jìn)行更加詳細(xì)的說(shuō)明。
小白,來(lái)來(lái),師傅這里給你找了一個(gè)木樁,我打給你看看。這個(gè)hook是怎么法功的,怎么打的。要學(xué)好哦。
知道了師傅。
小白啊,用我們之前使用過(guò)的一個(gè)武器,來(lái)收集這些基本信息吧。
師傅,我們一般都收集什么信息啊。
恩,我們一般要收集
1.木樁的包名
2.木樁的簡(jiǎn)單的邏輯
....
小白,這個(gè)你就自己收集把。
首先是包名。使用武器,apkhelper。
獲取到包名信息。com.example.login
然后是簡(jiǎn)單的邏輯手機(jī)。
小白啊,收集玩了嗎?
收集完了師傅。
好,我們接下來(lái)收集反編譯信息。知己知彼,方能百戰(zhàn)不殆。
首先我們來(lái)看看我們要收集的東西。
1.關(guān)鍵的類名。
2.關(guān)鍵的函數(shù)位置。
來(lái)用Android Killer武器反編譯木樁。
定位。
查看類名,進(jìn)行記錄。
小白,看清楚,是這個(gè)樣子進(jìn)行記錄。
原來(lái)是這樣。com/example/login/MainActivity;
但是我們要改成這樣的。com.example.login.MainActivity
現(xiàn)在就需要定位到關(guān)鍵函數(shù)了。
這個(gè)login就是我們要Hook住的函數(shù)啦。
Ljava/lang/String;Ljava/lang/String;從這里我們可以看到是兩個(gè)輸入內(nèi)容。并且類型是String。我們現(xiàn)在要做的就是要hook住這個(gè)輸出,然后對(duì)其進(jìn)行輸出。
好了,小白,前期資料收集的差不多了。我現(xiàn)在要發(fā)功了,要看清楚我的使用哦。
先把環(huán)境調(diào)整好。
然后先做一個(gè)簡(jiǎn)單的過(guò)濾。
這個(gè)時(shí)候,收集的包名就排上用場(chǎng)了。
因?yàn)槭莌ook的是方法,所以我們這里使用一個(gè)方法。
第一個(gè)參數(shù),要hook的包名+方法名,這個(gè)也是我們收集好的。
第二個(gè)參數(shù)不動(dòng)
第三個(gè)參數(shù)方法名
第四個(gè)參數(shù) 輸入的參數(shù)
我們有兩個(gè)String類型的參數(shù),所以才這樣寫(xiě)
最后一個(gè)參數(shù),就是做一個(gè)監(jiān)聽(tīng)??梢员O(jiān)聽(tīng)這個(gè)方法的使用前和使用后。
小白,一切準(zhǔn)備你就須,看為師給你f這個(gè)木樁。
小白,你看這第一招
XposedBridge.log("ZHUZHU520:LoginName:"+param.args[0]);
這一招搞它的第一個(gè)輸入。
然后再來(lái)看這一招
XposedBridge.log("ZHUZHU520:Passward:"+param.args[1]);
這一招搞它的第二個(gè)輸入。
然后最后一招。
XposedBridge.log("ZHUZHU520:end???:"+param.getResult());
這一招就是攔截返回值。
小白啊,這里有一個(gè)需要思考的內(nèi)容。
這樣hook的意義或者作用是什么?
師傅,我覺(jué)得首先,這樣可以攔截下輸入的參數(shù),還有返回的值。如果在hook里做一個(gè)轉(zhuǎn)發(fā)信息的技能。那不就可以成功的對(duì)登錄賬戶的人進(jìn)行賬號(hào)和密碼的獲取。
這不就是和釣魚(yú)一樣了嘛。
我覺(jué)得這是一個(gè)很大的漏洞,如果登錄廠商沒(méi)有做相應(yīng)的處理,那這里我可以拿這個(gè)搞死他。
好了,小白,你說(shuō)的很對(duì),我們現(xiàn)在來(lái)對(duì)這個(gè)進(jìn)行下測(cè)試吧。
小白啊,你看這里我們就成功的攔截內(nèi)容了。小白給你一個(gè)任務(wù),用hook f掉這個(gè)木樁,我希望他能登錄成功,哪怕我輸入的對(duì)的。
XposedBridge.log("ZHUZHU520:end???:"+param.getResult());
師傅之前使用了一個(gè)param.getResult()獲取了返回值,那我是不是可以使用相同的set方法,重新對(duì)這個(gè)進(jìn)行賦值啊。
根據(jù)各種方式,我們知道了這里的返回值就是Z,也就是布爾型。
說(shuō)干就干,爭(zhēng)取f掉木樁。
感謝各位的閱讀,以上就是“Android逆向進(jìn)階的方法是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Android逆向進(jìn)階的方法是什么這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!