回覆列表
  • 1 # RTHHHHHH

    由於Android系統的開放性,導致Android APK很容易被他人破解或是反編譯,下面給大家介紹常用的APP破解工具和技術要求。同時根據自己以往的防破解經驗,跟大家分析下如何防止反編譯。Android APK執行環境依賴的檔案/資料夾 res、DEX、主配檔案Lib 只是簡單的加密甚至沒有任何保護措施。APKtool(一種反編譯工具)可輕易將其輕鬆破解,再配合其他各種工具基本可以做到:原始碼暴露(程式碼混淆也幾乎起不到任何安全作用)、資原始檔裸奔、主配檔案可任意修改、核心SO庫暴露、暴力破解惡意利用等。部分大公司會對其應用APK包進行防二次打包和防APKtool破解,但其程式碼都是寫在JAVA層,另外APKtool的可升級導致其安全保護級別也是非常低的。下面介紹下Android APP的破解工具和技術:

    反編譯APK所需要的工具

    1)APKtool 2)dex2jar 3)jd-gui 4)簽名工具

    相關技術的基本要求

    1)具有一定的閱讀JAVA程式碼的能力

    2)稍微有點Android基礎,越多越好

    3)會用eclipse的一些Android除錯的相關工具

    4)瞭解一下smali的語法規範和欄位的自定範圍

    5)有點應變能力思想轉換能力、

    6)雖然程式碼的修改是修改其smali檔案(用到smali語法),雖然其語言是非常複雜的,但是我們能夠變通就行了,但是要求瞭解一下smali的語法規範和欄位的自定範圍。

    瞭解以上方法可以非常簡單破解Android APK,破解後,應用裡的頁面佈局、程式碼邏輯、結構演算法等都能一目瞭然。所以為了避免被他人,尤其是競爭對手瞭解到這些,防破解和反編譯尤為重要。我試過程式碼混淆,但是程式碼混淆只是對類名進行了變換,增加了破解者的閱讀難度,並不能真正阻止反編譯工程。下面是進行過程式碼混淆的APK程式碼結構,能看到只是對類名做了變換,變成a、b、c等這樣的名稱。但是仍然可以進行反編譯。

    後來又嘗試使用360加固保對APK進行加固保護,發現原有的程式碼程式被隱藏起來了,沒法再進行反編譯工作。

    所以作為移動應用開發者,適當瞭解一些破解和反編譯工作有利於保護自己的應用安全。如果不防患於未然,一旦出現盜版情況,那麼你的APP很可能從此被市場所拋棄。

  • 中秋節和大豐收的關聯?
  • 蘋果手機開不了機也充不了電怎麼回事?