app加密是什么技術?
可以加密。先來說一下一些常用的加密方法: 偽加密 偽加密是Android4.2.x系統發布前的加密方式之一,通過java代碼對APK(壓縮文件)進行偽加密,其修改原理是修改連續4位字節標記為”P K 01 02”的后第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 在運行的時候,會把.*so加載到內存中。動態也是可以在內存中抓取相應的數據。只不NDK 相對于smali破解來說,根部不是一個層級的關系。