Android中如何不進行反編譯就篡改apk文件

一缩功、問題描述

在上一篇文章晴及,我們已經介紹了如何修改arsc文件,直接利用AXMLEditor工具進行二進制文件修改嫡锌,可以實現對屬性和標簽的增刪改虑稼。這樣我們就不需要在反編譯apk文件,然后修改xml在回編譯了势木。而本文就用一個案例來分析這個工具的用法蛛倦,我們用一個回編譯失敗的apk包文件,那就是我們常用的WX啦桌,我們想實現的效果很簡單溯壶,在WX的啟動頁面篡改一下,啟動的是我們插入的廣告頁面,效果如下:

看到這里且改,我們要做的很簡單验烧,定義一個廣告Activity啟動頁面,然后把這個廣告Activity配置到清單文件入口即可又跛。我們需要做兩件事:修改代碼+修改AndroidManifest.xml文件了噪窘。

二、案例操作

第一步:修改代碼

這個比較簡單了效扫,也是我們后續(xù)修改代碼不進行反編譯的一個重要操作直砂。直接利用壓縮文件解壓出WX的apk包中的主dex文件classes.dex菌仁,然后利用baksmali.jar和smali.jar工具進行反編譯成smali代碼。當然這里看到有一個操作就是反編譯了济丘。不過反編譯代碼一般都很多報錯情況,如果更牛逼的是二進制修改dex文件洽蛀。哎,感覺那個操作就太費勁了郊供。真心不敢嘗試了峡碉。所以就還是利用這個工具進行需更修改吧。一般這里報錯幾乎很少的驮审。這個工具網上很多鲫寄,自行搜索下載即可疯淫。我們也可以利用這個工具去修改jar文件地来,可以先把jar文件利用dx命令轉化成dex然后在反編譯成samli文件進行修改即可熙掺。工具用法很簡單:

如果真的沒找到這個工具未斑,可以留言單獨發(fā)給你們吧。

那么這個插入廣告的smali代碼難道要手動編寫币绩?那是肯定不是的蜡秽,我們可以定義一個demo工程,然后編寫好這個廣告開平Activity载城,然后在反編譯我們的demo應用拿到對應的smali語法。然后直接將代碼文件拷貝到剛剛用baksmali工具反編譯之后的文件夾目錄下即可:

一定要注意文件的包名是對應的文件夾名稱诉瓦。所以沒有對應的文件夾需要手動新建文件夾。放完之后直接利用smali工具在進行回編譯成dex文件即可。然后在利用壓縮文件直接替換apk文件中的classes.dex文件即可睬澡。

第二、修改清單文件

上面我們就成功的把代碼插入到了dex文件中了煞聪,下面還需要修改他的清單配置文件,把我們的廣告Activity配置成啟動頁面昔脯,但是WX默認的啟動頁面是:

所以我們第一步得先用AXMLEditor.jar工具刪除這個activity標簽啄糙,為什么是刪除呢云稚?其實我們是想修改這個標簽隧饼,讓他不要成為啟動頁面静陈,但是直接刪除intent-filter操作有點費勁燕雁,所以直接刪除這個標簽鲸拥,然后在插入即可:

java -jar AXMLEditor.jar -tag -r activity com.tencent.mm.ui.LauncherUI AndroidManifest.xml AndroidManifest_out.xml

我們依然利用壓縮工具解壓出他的AndroidManifest.xml文件進行操作拐格,操作完成之后,我們需要插入操作了捏浊,因為我們需要插入廣告頁面和剛剛被我們刪除的頁面,所以直接在插入的xml文件中這么定義:

然后命令也很簡單:

java -jar AXMLEditor.jar -tag -i insert.xml AndroidManifest.xml AndroidManifest_out.xml

這樣我們就把xml中的內容插入到了WX的清單配置文件中了呛伴。有的同學會好奇,關于WX原來的那個啟動頁面谒所,我們在插入的時候刪除了好幾個屬性,其實是因為現在AXMLEditor.jar不支持引用的屬性操作劣领。所以這里就直接刪除了姐军,而這些屬性其實不是太影響使用的尖淘。所以可以忽略不管了奕锌。

三村生、簽名安裝

然后我們把修改之后的xml替換WX的apk中的xml文件即可惊暴。這時候我們就完成了代碼和配置的全部替換工作趁桃,接下來我們還得做一步辽话,就是需要刪除WX之前的簽名文件,這個可以直接在壓縮文件中刪除META-INF文件夾即可油啤。

刪除之后典徘,我們就可以利用jarsigner工具直接簽名即可益咬。簽名之后安裝逮诲,我們如果在這個過程中操作不當會出現安裝包損壞的錯誤信息。所以可以簡單的排查文件梅鹦,可能是我們修改xml文件出錯了。我們可以直接用jadx打開apk文件:

正常的情況下冗锁,是不會報錯的,插入成功的蒿讥,如果包損壞的話抛腕,這里就打不開xml文件了芋绸。

四、操作總結

到這里我們就成功插入了廣告頁面摔敛,看看效果如下:

這樣我們就省去了反編譯和回編譯的復雜操作,也可以避免了很多錯誤處理全封。所以從這里可以看到二進制修改文件的需求還是有的。下面就來總結一下刹悴,對于我們在使用apktools工具進行反編譯失敗的時候行楞,我們可以這么做來避免:

第一步:利用baksmali和smali工具直接修改器對應的dex文件

第二步:利用AXMLEditor.jar工具直接修改對應的xml文件

而我們只需要利用壓縮文件直接解壓出dex文件和xml文件即可。修改之后在替換原來的文件土匀,刪除簽名文件子房。再次簽名即可使用了。這樣的操作問題少也方便就轧。

工具源碼下載地址:https://github.com/fourbrother/AXMLEditor

五证杭、總結

關于Android中資源文件修改后面還會繼續(xù)進行,我們需要直接二進制修改resource.arsc文件妒御,插入資源文件的功能解愤,不過這個工作會比這個難點,因為resource.arsc文件格式更為復雜乎莉。不過如果完成了送讲,以后可以不用在擔心回編譯遇到的各種錯誤問題了奸笤。也不需要再一次反編譯和回編譯操作了就可以實現篡改apk文件了。

更多內容:點擊這里

關注微信公眾號李茫,最新技術干貨實時推送

編碼美麗技術圈

微信掃一掃進入我的"技術圈"世界

掃一掃加小編微信添加時請注明:“編碼美麗”非常感謝揭保!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市魄宏,隨后出現的幾起案子秸侣,更是在濱河造成了極大的恐慌,老刑警劉巖宠互,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異予跌,居然都是意外死亡,警方通過查閱死者的電腦和手機券册,發(fā)現死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烁焙,“玉大人航邢,你說我怎么就攤上這事骄蝇∩乓螅” “怎么了九火?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長岔激。 經常有香客問我勒极,道長虑鼎,這世上最難降的妖魔是什么河质? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任震叙,我火速辦了婚禮,結果婚禮上媒楼,老公的妹妹穿的比我還像新娘。我一直安慰自己划址,他們只是感情好扔嵌,可當我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著痢缎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪独旷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天嵌洼,我揣著相機與錄音,去河邊找鬼麻养。 笑死褐啡,一個胖子當著我的面吹牛鳖昌,可吹牛的內容都是我干的备畦。 我是一名探鬼主播许昨,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼车要!你這毒婦竟也來了崭倘?” 一聲冷哼從身側響起翼岁,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤司光,失蹤者是張志新(化名)和其女友劉穎琅坡,沒想到半個月后残家,有當地人在樹林里發(fā)現了一具尸體榆俺,經...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡坞淮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了回窘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诺擅。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡啡直,死狀恐怖苍碟,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情撮执,我是刑警寧澤,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布抒钱,位于F島的核電站,受9級特大地震影響继效,放射性物質發(fā)生泄漏。R本人自食惡果不足惜瑞信,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凡简。 院中可真熱鬧逼友,春花似錦秤涩、人聲如沸帜乞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽匀谣。三九已至照棋,卻和暖如春武翎,著一層夾襖步出監(jiān)牢的瞬間烈炭,已是汗流浹背宝恶。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工符隙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留垫毙,地道東北人霹疫。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓综芥,卻偏偏與公主長得像更米,于是被迫代替她去往敵國和親毫痕。 傳聞我的和親對象是個殘疾皇子征峦,可洞房花燭夜當晚...
    茶點故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內容