App安全加強——我來幫你寫C++

如今大部分的移動端,如Android、IoT、iOS都會面臨特別大的問題,如應用被逆向破解、升級遲緩、突發事件等。html

從一個比較流行的Android系統的實例來講起,Android系統主要的代碼全是Java,Java的代碼很標準,你們能夠根據全部的文檔、各類逆向工具進行查閱,所以很容易被破解。可是針對C++的代碼就沒有那麼地豐盛,C++難以破解的一點是在編譯的過程當中會比Java的過程當中放棄更多的或者會丟掉更多的細節。安全

咱們知道這個點以後,若是咱們有辦法把一個代碼從Java寫的轉換成C++寫的,那是否是更難被破解呢?這就是我今天要跟你們分享的一個方案。ide

若是咱們在源代碼層面上進行轉換的話,咱們須要處理全部編譯其要處理的東西,語法、詞法,甚至一個引號都須要咱們控制,可是Java翻譯不是一個很好的地方。源碼搞不定,咱們看一下在Java字節碼上能不能作?Java字節碼是基於一個站的。函數

Java的代碼,把核心的部分轉換成C++的代碼,它是能夠提升不少的安全性,能夠所有轉換,也能夠只轉換一個函數,提升安全性上是有很大的幫助。工具

一個Java的Native程序,或者是一個Dalvik裏面,虛擬機對能引用的對象是有限制的,咱們沒有辦法設置一萬個對象,虛擬機對它有250個最多的限制。這個循環若是跑到250個,甚至300個時候,虛擬機須要處理垃圾收集的功能,這裏面的函數要求把這個對象覆蓋掉,咱們函數裏面生成的那段代碼裏面應用的函數就很是地有限。idea

咱們今天說的是一個安全加強方案的技術實現,跟加固的比較上有一個很大的區別。咱們的點不是魔術,咱們的方案是把它轉換,我把它轉換成另一種方式,原先是電能的,我把它轉化成會發光的光能,咱們能夠轉化成化學能,今天的方案裏面,Java講C++就是它的一個特別的實例。翻譯

在整個流程裏面,咱們會引入一個叫作動態的安全防禦,由於剛纔最後一點介紹的方式,咱們是能夠推送一個基礎的版本,發現一筆再推送一個小的東西。這裏有部分的代碼換掉,能夠達到升級動態,甚至是說一旦發現有黑客在攻擊咱們的代碼,能夠推送另一個程序的版本達到一個直接跟他對抗的目的。htm

花甲科技安全實驗室負責人泮曉波發表《App安全加強》主題分享對象

另外,針對APP的逆向破解問題,在這裏你們還能夠經過使用一種更便捷的方式來進行解決,那就是使用第三方的安全加固服務,好比目前海雲安(www.secidea.com)就在提供免費的APP安全加固服務,其業內最新的無殼加固技術能夠有效解決以往加殼方法產生的兼容性等問題,經過簡單註冊提交,一鍵便可完成防逆向破解的加固保護。事件

相關文章
相關標籤/搜索