日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Android 解读.apk解压后文件详细说明

發(fā)布時間:2023/12/13 综合教程 39 生活家
生活随笔 收集整理的這篇文章主要介紹了 Android 解读.apk解压后文件详细说明 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)自:http://xdang.org/post-602.html

以下原文:

反編譯 — 在apk文件中能得到什么

最近在做android客戶端與服務(wù)器安全通信,有一種常見的不安全因素:很多軟件常常會被人從apk文件中獲取到下載地址或帳戶信息。一個打包成apk的軟件,通過反編譯可以獲得哪些信息呢?下面我們來動手反編譯一個簡單的demo--HelloWorld。

將生成的HelloWorld.apk使用壓縮軟件打開,看到下面幾個文件/目錄

META-INF
res
AndroidManifest.xml
classes.dex
resources.arsc

其中,res中存放著所有的圖片文件以及xml文件,也就是在eclipse工程目錄中res下面的所有資源。這里的xml文件是經(jīng)過壓縮的,用AXMLPrinter2工具可以打開。

這是反編譯出來的AndroidManifest.xml

怎么樣,是不是跟源代碼一模一樣?

resources.arsc文件中保存的是編譯后的二進制資源文件,許多做漢化軟件的人都是修改該文件內(nèi)的資源以實現(xiàn)軟件的漢化的。

classes.dex是java源碼編譯生成的字節(jié)碼文件。但由于Android使用的dalvik虛擬機與標準的java虛擬機是不兼容的,.dex文件與.class文件相比,不論是文件結(jié)構(gòu)還是opcode都不一樣。目前常見的java反編譯工具都不能處理dex文件。

dex2jar是專為反編譯.dex而開發(fā)的工具,它可以把.dex文件反編譯成為.jar文件。然后用JD-GUI工具將.jar文件反編譯成.java文件。

這是反編譯出來的MainActivity.xml

下面是源代碼:

經(jīng)過反編譯的代碼雖然可讀性不是很好,但是跟源碼幾乎沒什么差別。在開發(fā)時如果你直接將賬號等重要信息放到j(luò)ava代碼中,那就沒有任何安全性可言了。

經(jīng)過反編譯,anroid項目的源碼全部暴露無疑,那是不是可以通過反編譯將一個android軟件改成自己想要的樣子?答案是否定的,在META-INF目錄下存放的是軟件的簽名信息,用來保證apk包的完整性和系統(tǒng)的安全。在軟件安裝時應(yīng)用管理器會對包里的文件進行校驗,如果校驗信息與META-INF目錄下的信息不一樣,系統(tǒng)就會拒絕安裝這個軟件。另外,專業(yè)的編程人員都會把重要信息封裝到.so庫文件里,這些信息是無法被反編譯的。

即使這樣,對一個軟件進行像漢化這樣的操作卻是足夠了。

總結(jié)

以上是生活随笔為你收集整理的Android 解读.apk解压后文件详细说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。