摘要:逆向工程實(shí)踐篇二今天做了一個(gè)小實(shí)驗(yàn)隨便下載了一個(gè)替換首頁(yè)的圖片原來(lái)的是靜態(tài)的圖片我要給它換成網(wǎng)絡(luò)動(dòng)態(tài)加載的圖片六步驟用把反編譯找到啟動(dòng)的修改資源寫圖片加載的代碼測(cè)試打包收工一解包把下載好的使用工具解包二找到啟動(dòng)的頁(yè)面首先大家應(yīng)該看確定第一個(gè)
Android逆向工程 實(shí)踐篇 二
今天做了一個(gè)小實(shí)驗(yàn). 隨便下載了一個(gè)apk.替換首頁(yè)的圖片, 原來(lái)的apk是靜態(tài)的圖片. 我要給它換成網(wǎng)絡(luò)動(dòng)態(tài)加載的圖片.
六步驟:
1: 用ApkIDE把a(bǔ)pk反編譯.
2: 找到啟動(dòng)的Activity.
3: 修改資源.
4: 寫圖片加載的代碼.
5: 測(cè)試.
6: 打包,收工.
把下載好的apk使用工具解包.
;
首先,大家應(yīng)該看AndroidManifest.xml確定第一個(gè)界面是哪個(gè)Activity.
;
圖片中圈出來(lái)的地方是標(biāo)志為啟動(dòng)app的時(shí)候第一個(gè)啟動(dòng)的頁(yè)面, 既然我們是要修改啟動(dòng)的圖片,那么肯定是重這里入手. 這個(gè)Activity名字叫: loginActivity, 我們打開這個(gè)看看.
在看Activity之前我們應(yīng)該先去它的xml布局里面看看有什么東西.
運(yùn)氣還不錯(cuò). 一下子就找到了啟動(dòng)的時(shí)候加載的圖片了. 我圈出來(lái)的地方就是加載在首頁(yè)的圖片. 我們想改掉這個(gè)圖片. 那么就需要在啟動(dòng)的時(shí)候用代碼從網(wǎng)絡(luò)上面下載圖片加載到這個(gè)控件上. 那么...懵逼了..得去看看LoginActivity的smali了.我門先定位初始化控件的地方.一起來(lái)看代碼把...
為了可以在首頁(yè)上加一個(gè)圖片顯示, 我需要在xml里面有一個(gè)圖片顯示的控件,大家注意到了有一個(gè)ImageView控件, 這個(gè)控件正好加載我們的網(wǎng)絡(luò)圖片.而我看了LoginActivity的代碼后, 實(shí)際上這個(gè)控件是沒有被使用的.著正和我意..
得到了控件的id, 我們就來(lái)一個(gè)搜索大法.
得到id的十六進(jìn)制值后我們?cè)偎阉饕淮?
工具用得真爽...
這里是初始化控件的地方.
const v0, 0x7f0c0085 invoke-virtual {p0, v0}, Lcom/iptv/romance/LoginActivity;->findViewById(I)Landroid/view/View; move-result-object v0 check-cast v0, Landroid/widget/ImageView; iput-object v0, p0, Lcom/iptv/romance/LoginActivity;->R:Landroid/widget/ImageView;
四: 寫代碼很簡(jiǎn)單, 只有5句話
第一句:控件的十六進(jìn)制id值.賦值給v0.
第二句:通過id去找到控件.p0是上下文.
第三句:把找到的結(jié)果返回到v0上.
第四句:將v0寄存器中的對(duì)象引用轉(zhuǎn)換成指定的類型. 就是圖片控件了.
第五句:R就是我們的imageView控件了.這個(gè)時(shí)候我們已經(jīng)找到了我們需要顯示圖片的控件. 下一步就是把網(wǎng)絡(luò)上的圖片顯示到控件上.因此我開發(fā)了一個(gè)imageLoad類來(lái)實(shí)現(xiàn)這個(gè)功能.
;
截圖上面的3個(gè)類實(shí)際上是一個(gè)imageLoad.java被編譯后生成的imageLoad$1$1/imageLoad$1 這2個(gè)是內(nèi)部類.
我們這樣使用.
;
直接把方法寫成靜態(tài)的,方便調(diào)用. 圖中圈出來(lái)的就是加載圖片的方法. 參數(shù)1: 上下文. 參數(shù)2: 圖片對(duì)象.
把控件傳進(jìn)去,下載好圖片后直接顯示在控件上就完成了我們的事情了...
我這里的網(wǎng)絡(luò)令我抓狂...所以隨便測(cè)試一下.(圖片是gif不知道能不能播放.)
打包直接使用ide打包. 打包后會(huì)生成一個(gè)apk.
到這里為止,這個(gè)apk已經(jīng)搞定了. loadImage具體實(shí)現(xiàn)就不說了.很簡(jiǎn)單..就是下載一個(gè)圖片加載到控件上面.
謝謝!!
csdn:http://blog.csdn.net/qq541159192
簡(jiǎn)書:http://www.jianshu.com/p/f889...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/67246.html
摘要:自定義方案提供了一種思路將放到一個(gè)中。這樣我們就可以針對(duì)工程進(jìn)行自定義只對(duì)當(dāng)前工程有效。開發(fā)插件后,繼承了原生和自定義的所有檢查規(guī)則,內(nèi)置。我們創(chuàng)建一個(gè)內(nèi)部類來(lái)表示檢查樹的過程。 為什么需要自定義 原生Lint無(wú)法滿足我們團(tuán)隊(duì)特有的需求,例如:編碼規(guī)范。 原生Lint存在一些檢測(cè)缺陷或者缺少一些我們認(rèn)為有必要的檢測(cè)。 自定義方案 LinkedIn提供了一種思路 : 將jar放到一個(gè)...
閱讀 3624·2021-09-06 15:13
閱讀 1600·2021-09-02 10:19
閱讀 2547·2019-08-30 15:52
閱讀 983·2019-08-29 15:25
閱讀 1645·2019-08-26 18:36
閱讀 577·2019-08-26 13:23
閱讀 1407·2019-08-26 10:46
閱讀 3574·2019-08-26 10:41