国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Android逆向工程 實踐篇 二

blankyao / 2199人閱讀

摘要:逆向工程實踐篇二今天做了一個小實驗隨便下載了一個替換首頁的圖片原來的是靜態的圖片我要給它換成網絡動態加載的圖片六步驟用把反編譯找到啟動的修改資源寫圖片加載的代碼測試打包收工一解包把下載好的使用工具解包二找到啟動的頁面首先大家應該看確定第一個

Android逆向工程 實踐篇 二

今天做了一個小實驗. 隨便下載了一個apk.替換首頁的圖片, 原來的apk是靜態的圖片. 我要給它換成網絡動態加載的圖片.

六步驟:

1: 用ApkIDE把apk反編譯.

2: 找到啟動的Activity.

3: 修改資源.

4: 寫圖片加載的代碼.

5: 測試.

6: 打包,收工.

一: 解包

把下載好的apk使用工具解包.

;

二: 找到啟動的頁面

首先,大家應該看AndroidManifest.xml確定第一個界面是哪個Activity.

;


圖片中圈出來的地方是標志為啟動app的時候第一個啟動的頁面, 既然我們是要修改啟動的圖片,那么肯定是重這里入手. 這個Activity名字叫: loginActivity, 我們打開這個看看.

三: 改資源

在看Activity之前我們應該先去它的xml布局里面看看有什么東西.







運氣還不錯. 一下子就找到了啟動的時候加載的圖片了. 我圈出來的地方就是加載在首頁的圖片. 我們想改掉這個圖片. 那么就需要在啟動的時候用代碼從網絡上面下載圖片加載到這個控件上. 那么...懵逼了..得去看看LoginActivity的smali了.我門先定位初始化控件的地方.一起來看代碼把...

為了可以在首頁上加一個圖片顯示, 我需要在xml里面有一個圖片顯示的控件,大家注意到了有一個ImageView控件, 這個控件正好加載我們的網絡圖片.而我看了LoginActivity的代碼后, 實際上這個控件是沒有被使用的.著正和我意..



得到了控件的id, 我們就來一個搜索大法.



得到id的十六進制值后我們再搜索一次.



工具用得真爽...



這里是初始化控件的地方.

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;

很簡單, 只有5句話

第一句:控件的十六進制id值.賦值給v0.
第二句:通過id去找到控件.p0是上下文.
第三句:把找到的結果返回到v0上.
第四句:將v0寄存器中的對象引用轉換成指定的類型. 就是圖片控件了.
第五句:R就是我們的imageView控件了.這個時候我們已經找到了我們需要顯示圖片的控件. 下一步就是把網絡上的圖片顯示到控件上.因此我開發了一個imageLoad類來實現這個功能.

四: 寫代碼

;

截圖上面的3個類實際上是一個imageLoad.java被編譯后生成的imageLoad$1$1/imageLoad$1 這2個是內部類.
我們這樣使用.

;

直接把方法寫成靜態的,方便調用. 圖中圈出來的就是加載圖片的方法. 參數1: 上下文. 參數2: 圖片對象.
把控件傳進去,下載好圖片后直接顯示在控件上就完成了我們的事情了...

五: 運行測試

我這里的網絡令我抓狂...所以隨便測試一下.(圖片是gif不知道能不能播放.)

六: 打包

打包直接使用ide打包. 打包后會生成一個apk.

原來的樣子

現在的樣子

到這里為止,這個apk已經搞定了. loadImage具體實現就不說了.很簡單..就是下載一個圖片加載到控件上面.

謝謝!!
csdn:http://blog.csdn.net/qq541159192
簡書:http://www.jianshu.com/p/f889...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67246.html

相關文章

  • Android自定義Lint實踐()

    摘要:自定義方案提供了一種思路將放到一個中。這樣我們就可以針對工程進行自定義只對當前工程有效。開發插件后,繼承了原生和自定義的所有檢查規則,內置。我們創建一個內部類來表示檢查樹的過程。 為什么需要自定義 原生Lint無法滿足我們團隊特有的需求,例如:編碼規范。 原生Lint存在一些檢測缺陷或者缺少一些我們認為有必要的檢測。 自定義方案 LinkedIn提供了一種思路 : 將jar放到一個...

    luffyZh 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<