先介紹上架 Google Play 的申請步驟,然後告訴你,要上架收費,就要面對被人破解的可能。 接著就乾脆教你怎麼破解(反組譯)了,在下載 app 以後,這些 apk 可以在裝置上的 /data/app 下找到,要看這些 apk 並複製,只要下載 Android SDK,用 adb 就可以辦到。adb pull 拿到 apk 以後,就可以用 unzip/winzip 打開,apk 其實就只是個 zip 檔。解開以後,會看到 .dex 檔案,你可以用 smali/baksmali、dexdump(Android SDK 內建)、dedexerdex2jar搭配Java Decompiler 等工具來看人家寫的程式,修改以後再編譯放回去。 Android License Verification Library (現在看到的名字叫做 Google play Licensing library)是 Google 提供的 library ,可以讓開發者使用來保護自己的心血。使用這個 library 需要搭配 Google API,下載以後,會在 Google SDK 目錄下,使用前先把整個目錄 (<Android SDK>\extras\google\market_licensing\library) 複製出來。建立 Library Project ,Package Name 要命名為 com.android.vending.licensing,好了以後,要去 project properties 裡勾選 "Is Library",然後匯入剛剛複製出來的目錄,這樣就好了。 然後在 app 專案裡,去 project properties 找,選加入 Library Project,這個就是選剛剛建立的 Library。程式裡,最主要就是要去寫一個類別繼承 LicenseCheckerCallback ,然後用 LicenseChecker.checkAccess 帶 callback 類別去做檢查。 // 大致的程式碼 // Create an Obfuscator and a Policy AESObfuscator obf = new AESObfuscator(SALT, getPackageName(), identity); ServerManagedPolicy policy = new ServerManagedPolicy(ctx, obf); // Create the LicenseChecker LicenseChecker lCheck = new LicenseChecker(ctx, policy, PUB_KEY); // Do the license check lcb = new LicCallBack(); lCheck.checkAccess(lcb); AndroidManifest.xml 要加上 <uses-permission android:name = "com.android.vending.CHECK_LICENSE"> 程式上架以後,把 PUB_KEY 填到 https://market.android.com/publish/Home 網站上。 這樣做了以後還是有可能被破解,作者建議可以修改 LVL 的 source code ,這也是作者剛剛建議要複製出來的緣故。 最後是介紹 proguard,在 proguard.cfg 填寫要混淆哪些類別就可以,Android SDK 會負責整個過程。 最後的最後,作者整理該注意的事情以及步驟。
文章標籤
全站熱搜
創作者介紹
創作者 elleryq 的頭像
elleryq

我。閱讀

elleryq 發表在 痞客邦 留言(0) 人氣(65)