必威电竞|足球世界杯竞猜平台

二次打包
來源:互聯(lián)網(wǎng)

近年來,我國移動互聯(lián)網(wǎng)發(fā)展迅猛,智能移動設(shè)備迅速普及。但由此而引發(fā)的移動安全問題也日益凸顯,尤其在開放的安卓生態(tài)圈中,二次打包的“盜版APP”成為手機木馬、手機病毒、隱私竊取等“頑疾”肆虐的大門。從事二次打包的“打包黨”通過破解他人的APP,來賺取非法的廣告收入。像保衛(wèi)蘿卜、植物大戰(zhàn)僵尸等曾經(jīng)火爆的APP,都無一例外地遭遇過“二次打包”。一旦安裝了“二次打包”的軟件,手機用戶就會遭遇頻繁的廣告騷擾和流量損失。

概念

對移動應(yīng)用進行破解、再篡改或插入惡意代碼、最后生成一個新應(yīng)用的過程。通常不法分子更為青睞市面上下載量最火爆的APP進行二次打包,這些APP擁有大量的用戶集群,通過插入廣告、木馬、病毒的方式竊取用戶隱私、吸資扣費、耗費流量成功的可能性大。從外觀來看,二次打包后的盜版APP與正版APP完全相同,用戶肉眼無法分別。所以一旦產(chǎn)生任何不可挽回的損失,用戶會直接將“罪名”扣在APP及開發(fā)者的頭上,而通常開發(fā)者和運營人員對此也是毫不知情,嚴(yán)重侵害了開發(fā)者的利益。

二次打包過程

為了避免被二次打包,有些開發(fā)者會自己對應(yīng)用進行代碼混淆,但代碼混淆只是增加APP代碼的閱讀難度,并不能真正阻止破解者的反向工程。對于破解者而言,分分鐘就可以將一款A(yù)PP進行篡改并二次打包。下面介紹下步驟:

通常二次打包的步驟是:解包(反編譯)-->插入/篡改代碼-->生成新包-->重簽名-->運行。

首先可以通過使用ApkTool、Jeb、baksmali/smali等反編譯工具,反編譯apk安裝包。

解包后可以看到所有文件列表,找到需要修改的smali文件,這里修改的是MainActivity.smali

解開MainActivity.smali文件后,在里面插入一段篡改代碼,修改登錄界面中“Button”按鈕上的文本,圖3和圖4是修改前后smali文件中的代碼。

修改后再調(diào)用smali.jar文件,將smali重新打包成dex文件

接下來再將新生成的classes.dex文件替換原安裝包中的classes.dex,并進行重新簽名,就生成了一款盜版應(yīng)用。運行該款盜版應(yīng)用時會發(fā)現(xiàn)登錄界面的登錄按鈕被修改替換成了“Fake Btn”

通過簡單的幾個操作步驟,一款未經(jīng)加固保護的APP就被盜版了,一個團隊一年的勞動成果幾分鐘內(nèi)就被輕易竊取。通常,盜版應(yīng)用會通過插入/替換廣告SDK賺取廣告收入、修改支付渠道截取開發(fā)者收入、插入病毒/木馬程序盜取用戶信息等形式出現(xiàn),操作步驟與上面介紹的類似,嚴(yán)重侵害了開發(fā)者和用戶的利益。

要想保護手機APP,避免被盜版,就要從源頭進行加固保護,讓破解者無從下手。圖8是使用加固保對APP進行加固前后的對比,加固后再調(diào)用baksmali.jar進行反編譯,可以看到代碼文件全部被隱藏,暴露的只是加固程序的一些代碼,破解者自然無法再對源程序進行篡改了。

對安卓應(yīng)用進行加固保護,能有效避免應(yīng)用被惡意破解、反編譯、二次打包、內(nèi)存抓取等。同時給應(yīng)用提供數(shù)據(jù)加密、簽名校驗、防內(nèi)存修改、完整性校驗、盜版監(jiān)測等保護功能,給予安卓應(yīng)用最強保護,從源頭消滅惡意盜版應(yīng)用。

參考資料 >

二次打包.ltd.2024-11-01

Android應(yīng)用apk文件二次打包步驟.簡書.2024-11-01

Android apk 二次打包及防范簡單體驗.簡書.2024-11-01

生活家百科家居網(wǎng)