偽加密
偽加密是Android4.2.x系統發布之前的加密方式之壹。APK(壓縮文件)用java代碼進行偽加密,其修改原理是修改標記為“P K 01 02”的4個連續字節的後5個字節。奇數表示未加密,偶數表示加密。
偽加密雖然能起到壹定的防破解作用,但也會有問題。壹是使用偽加密對其APK加密後,市場無法對其進行安全檢測,導致部分市場拒絕上傳此類APK;其次,偽加密的加密方法和解密方法早已公布,使其安全性大打折扣;再次,Android4.2.x系統無法安裝偽加密APK;;最後,偽加密只是簡單的保護APK,java層源代碼外殼保護,核心so庫,資源文件,主配置文件,第三方貨架包都沒有保護。註意:高級版本不支持這種方法,所以不要嘗試使用這種加密方法。
混淆保護
把原來有特定含義的類名、變量名、方法名改成人們聽不懂的名字,比如方法名getUserName就把方法名編程了。
破解:耐心
運行時驗證
運行時驗證主要是指代碼啟動時在本地獲取簽名信息,然後檢查簽名信息,判斷應用是否為正版。如果簽名信息不是正版,會提示盜版或者直接崩潰。當然,妳可以把必要的數據放在服務器上。
破解:找到smali文件的部分,判斷是否相等。將其更改為常量true,即無效。
總之,反編譯壹些apk後,只要是用java代碼寫的,總會有smil文件。對於smil文件,如果耐心看完,還是能看到壹些關鍵代碼的。
遊戲apk與應用相比,采用cocos2d-x或unity3D,采用c++和c#編寫的跨平臺程序,apk中采用JNI。所以沒有smali,可以防止靜態破解apk包。
當然遊戲包apk運行的時候會加載。*所以進入記憶。Dynamic也可以抓取內存中相應的數據。只有NDK和斯馬利破解相比不是壹個等級關系。