安卓簡單逆向修改
如今Android市場,風雲變幻。。。開玩笑啦。。。大家別介意。
有很多軟件,特別是單機軟件,不需要聯網的那種。如果沒做好一些必要的安全加固防護的話,就很容易出現被別人(特指厚顏無恥之人)做逆向工程處理,改個名字換個圖標,然后再把里面的版權信息和關鍵字眼去掉或者更改一下,然后換掉軟件的包名就准備打包發布出去。美其名曰:成功研發了一款某某軟件。
其實,如果軟件開發者簡單的將軟件打包開發出來,不做一些加固處理,簽名校驗這些操作的話。隨便街邊一個人都可以完成上面那些改名字,換圖片刪關鍵字的操作。
因為實在是太簡單了,但是我也相信,我不是針對誰,在座的各位,未必都會這些簡單的操作吧。
那下面就由我帶領大家從搭建環境開始,到動手改個名字開始操作好嗎?
以下的內容需要這些開發環境。
JDK、Android killer或者APK-IDE、APK-DB
為啥必須要這些環境呢?且聽我細細道來。。。
首先安裝一下Android killer,他是綠色版的,解壓就可以用。
如果沒有安裝jdk的話,會有以下提示

這個是APK-IDE的提示

所以,我們先裝個JDK吧。

然后再裝個APK-DB

這個APK-DB按照提示裝好后,便基本沒他什么事了。但是它可以提供直接在文件夾看apk的圖標喲。也可以直接右鍵反編譯,挺叼的,有興趣可以了解一下下。
OK,現在進入動手環節
首先,用手機發送一個軟件到電腦上,我這里發的是“畫板“這個軟件。

為了確認我們能反編譯這個軟件,首先要,查一下殼

嗯,沒有殼。美滋滋。(殼的概念,后面出一篇來填坑哈,大家現在知道就好)
由於已經安裝了那個APK-DB,所以能看到軟件圖標。分辨起來比較快。
接着拖apk到apk killer里面,可以看到右下角的日志在瘋狂的跑

但是,在最后面的結果那個可以看到apk源碼反編譯失敗,所以這個時候,我們需要在Android欄中的apktool 管理器中添加一下工具。(如果沒有出現這一步的同學可以忽略這段了)

添加好后,在下面 默認apktool版本哪里,選擇自己剛才添加的那個。
然后刪除掉剛才反編譯源碼失敗的那個工程

重新打開軟件對apk進行反編譯就可以看到APK源碼反編譯完成的提示了。
為啥一定要搞到這個源碼反編譯成功呢?
主要是為了后面如果要分析軟件的運行流程以及一些關鍵代碼的時候用到。

好了,反編譯完的時候,界面大概長這個樣子

上面一共七個點,我在這里簡單說明一下
1、應用名稱
2、包名
3、入口點
4、活動
5、接收器
6、服務
7、應用權限
我們本篇文章不展開說明上面對應的每一個點,東西說太多的話,影響主線內容哈。
修改應用圖標以及名稱
回到主頁面。打開“工程管理器”選項。
在下面雙擊 AndroidManifest.xml這個清單文件。
何謂清單文件?
每個Android應用的根目錄中都必須包含一個 AndroidManifest.xml 文件(且文件名精確無誤)。 清單文件向 Android 系統提供應用的必要信息,系統必須具有這些信息方可運行應用的任何代碼。
此外,清單文件還可執行以下操作:
為應用的 Java 軟件包命名。軟件包名稱充當應用的唯一標識符。
描述應用的各個組件,包括構成應用的 Activity、服務、廣播接收器和內容提供程序。它還為實現每個組件的類命名並發布其功能,例如它們可以處理的 Intent 消息。這些聲明向 Android 系統告知有關組件以及可以啟動這些組件的條件的信息。
確定托管應用組件的進程。
聲明應用必須具備哪些權限才能訪問 API 中受保護的部分並與其他應用交互。還聲明其他應用與該應用組件交互所需具備的權限
列出 Instrumentation 類,這些類可在應用運行時提供分析和其他信息。這些聲明只會在應用處於開發階段時出現在清單中,在應用發布之前將移除。
聲明應用所需的最低 Android API 級別
列出應用必須鏈接到的庫
可以清楚看到在application這個標簽中。對圖標和應用名稱有明確定義指向

這個時候,我們直接去res這個目錄里面去找對應的資源。
先改個名字吧。
進入到/res/values/strings.xml中,找到這個app_name。

但是名字不是叫畫板呀。
因為畫板是中文的軟件叫法,painter是英文的叫法。所以,這個時候,我們可以去到中文對應的資源文件夾中。/res/values-zh-rCN/strings.xml中。

在這里,我將軟件名字換成“手繪板”。
然后在頂欄選中Android,然后點擊編譯。

接着拿數據線連上手機。進入“開發者模式”。
什么?開發者模式找不到?
莫慌,讓我來告訴你這個“開發者模式”在哪里吧。
鑒於現在應該沒誰還用Android 2.x的系統了。我就直接說大部分通用的打開開發者模式的辦法。
首先、你得進入手機的設置。
然后、點擊“關於手機”。
再然后、找到版本號。
再再然后、連續點擊多次版本號,一般點個四五次就會提示你進入開發者模式了。
還沒完,你接着一般要到其他設置里面,找到開發者選項。
隨后點擊進入后,打開“USB調試”
然后再確認一下調試授權就可以跟你的主機搭上關系了。
圖示如下

OK,一陣折騰后,開發者模式終於搞定了。
然后回到頂欄,在apk安裝管理器右邊有個設備,點刷新再看一下下拉框。可以看到一串字母加數字的東西了。
這個時候,點擊安裝,這個時候就會在手機上面將剛才的那個更改編譯好的軟件安裝到手機。

如果手機是還沒安裝過這個軟件的話,直接這樣安裝是不會有問題的。但是如果已經安裝過了的同學,再點安裝的時候就會提示沖突。因為重新編譯的版本使用是自己的簽名文件。導致了軟件簽名沖突。
這個時候點擊卸載,將軟件卸載掉就好了。然后再安裝就不會出問題了。

這個時候已經可以看到名字已經被改過來了。
再改個圖標看看?
前面已經找到了icon的所在地。我們就去drawable文件夾去找到對應的icon圖片給替換過來。因為Android系統不同版本支持的圖片情況不一樣(這樣解釋好像不夠准確)。所以會有很多drawable文件夾,咱們一個個去看。找到符合圖片內容就換掉就好了。

換一下圖標

然后從新編譯,打包就可以看到圖標已經被替換過來了。

安裝后,打開可以看到軟件依舊可以正常使用。

請忽視我的靈魂畫作…………
好了,本期就先這樣吧。大家學習后,切勿使用到非法地方,本期內容僅供大家學習交流。
本文對你有沒幫助呀,喜歡的話,記得留言、點贊、轉發喲。謝謝各位!
歡迎掃碼關注我的微信公眾號:敘之亭