反編譯完這些app后,我給它們的安全等級打個分

前言

在Android開發中,apk的安全性是一個重要的關注點。每個app應用對于自身的數據和代碼安全做了對應的保護。為了調研和學習市場上各類app它們的安全策略,此次反編譯了30款apk來調研學習,加入debuggable和networkSecurityConfig屬性(加入Charles證書),回編并簽名apk,然后啟動它,通過日志,抓包,界面展示來看看不同應用的安全策略。同時針對這些應用用了一個粗糙的分數排名(非專業評分,大家看看就好)。

各參數等級與分數說明

反編譯Level

  • L1: 資源無混淆,使用原始ApkTool即可實現反編譯,回編成apk。
  • L2(5分): 資源混淆,需要修改ApkTool源碼,可通過ApkCrack一鍵完成編譯,添加證書,debug信息,回編簽名
  • L3(10分): 資源混淆,ApkCrack無法回編,需要繼續修改ApkTool源碼適配,需要修改異常命名屬性名,文件名,異常圖片。最終可以回編成apk
  • L4(20分): 可以反編譯,無法回編

啟動level

  • L1: 正常啟動
  • L2(20分): 無法啟動,卡住或閃退

http請求Level

  • L1: http請求,抓包簡單
  • L2(5分): https請求,無簽名,可以修改請求
  • L3(10分): https請求,有參數簽名校驗,可以查看請求,無法修改
  • L4(15分): https請求,簽名校驗,響應加密
  • L5(20分): 無法抓取請求

登錄Level

  • L1: 可以登錄
  • L2(20分): 無法登錄

主界面Level

  • L1: 能進入主界面
  • L2(20分): 不能

效果圖

抓包

拼多多
快手

ApkCrack反編譯過程

ApkCrackUI一鍵破解

相關日志

log

apk安全評分

"-"表示當前最高等級,應用無法啟動,默認最高等級。

apk安全評分

上面app的排名非權威,非正式,非正確,大家且不必認真對待。

小結

不同類型的應用關注的安全等級與安全策略可能會有所不同,大致可能會有以下一些情況:

  • 請求無簽名,可以修改參數,安全等級較低,新聞類應用
  • 關鍵數據加密,比如騰訊漫畫只加密類章節數據
  • 主界面有數據,提示非官方應用(拼多多)
  • 主界面有數據,但是無法登錄
  • 主界面提示網絡錯誤,簽名校驗失敗(餓了么)
  • 無法進入主界面,可能卡在閃屏頁,可能應用閃退。
  • 應用加固,反編譯后無法啟動,如自如,我愛我家,貝殼,這類應用數據(房源)都很重要,所以要加固代碼。

Apk代碼保護

反編譯完那些apk發現,不是所有的apk會選擇最極致的防破解方式(代碼混淆,資源混淆,加固等)。為了兼容性與性能,大部分應用不會選擇加固方式保護代碼。那么代碼保護有哪些套路呢?根據上面的app,會有下面一些方案(可以疊加使用)。

  • 代碼混淆(gradle配置minifyEnabled可實現,大部分應用都會實現)
  • 資源混淆(使用AndResGuard之類資源混淆庫可實現,這類app用ApkTool是無法實現的,回編apk時會報No resource identifier found for attribute,不過可通過ApkCrack回編)
  • 添加一些不符合規則的文件名,或者錯誤頭的文件(因為apktool回編是通過aapt或者aapt2實現的,不合規的文件命名和文件導致資源編譯失敗,這些app破解時可能需要繼續針對性的修改ApkTool源碼,手動或者代碼方式處理這些文件和文件名,匯編重新簽名,破解時長和難度較高)
  • 簽名校驗。因為原始的apk簽名無法獲取,反編譯后的apk只能通過自己新生成的簽名文件簽名。所以,簽名信息校驗變得至關重要,它會幫你識別官方apk與第三方破解(有可能是惡意)的apk。在啟動時做簽名校驗,可以更具校驗結果選擇不同的安全策略(閃退,安全模式,文字提醒,網絡請求失敗等)。
  • 應用加固。如果你的app數據極為重要(獨家信息),不能完全通過其他方式比如服務端,或者上面三種方式保證數據安全,最穩妥的就是加固應用了。可以選擇阿里(聚安全),騰訊(樂固),360(加固寶)等方式加固自身的應用。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,572評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,071評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,409評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,569評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,360評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,895評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,979評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,123評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,643評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,559評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,742評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,250評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,981評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,363評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,622評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,354評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,707評論 2 370