⑴ 什麼是android apk加固
加固的過程中需要三個對象:1、需要加密的Apk(源Apk)2、殼程序Apk(負責解密Apk工作)3、加密工具(將源Apk進行加密和殼Dex合並成新的Dex)主要步驟:我們拿到需要加密的Apk和自己的殼程序Apk,然後用加密演算法對源Apk進行加密在將殼Apk進行合並得到新的Dex文件,最後替換殼程序中的dex文件即可,得到新的Apk,那麼這個新的Apk我們也叫作脫殼程序Apk.他已經不是一個完整意義上的Apk程序了,他的主要工作是:負責解密源Apk.然後載入Apk,讓其正常運行起來。
⑵ 應用加固對DEX文件,SO文件是如何保護的
您好,NAGA·IN娜迦信息科技加固平台的服務挺不錯的。可以對APP文件/APK應用進行dex加殼、 亂序保護、so加殼、虛擬機指令保護等多重保護,有效的對存儲數據進行加密保護、保護APP安全,是APP安全加固的優秀企業。
⑶ 怎麼加固安卓軟體
加固安卓軟體一般要達到以下效果:
1、防逆向:通過DEX 文件加殼以及DEX 虛擬化等技術,防止代碼被反編譯和逆向分析。
2、防篡改:通過校驗 APK 開發者簽名,防止被二次打包,植入廣告或惡意代碼。
3、防調試:防止應用被 IDA、JEB 等工具調試,動態分析代碼邏輯。
VirboxProtector安卓加固的核心技術一般有:
DEX 文件加密隱藏
對 DEX 文件加殼保護,防止代碼被竊取和反編譯。
SO 區段壓縮加密
對 SO 庫中的代碼段和數據段壓縮並加密,防止被 IDA 等工具反編譯。
單步斷點檢測
在混淆的指令中插入軟斷點檢測暗樁,防止native層run trace和單步調試。
防動態調試
防止應用被 IDA、JEB 等工具調試,動態分析代碼邏輯。
開發者簽名校驗
對 APK 中的開發者簽名做啟動時校驗,防止被第三方破解和二次打包。
SO 內存完整性校驗
在 SO 庫載入時校驗內存完整性,防止第三方對 SO 庫打補丁。
SO 代碼混淆
對 SO 庫中指定的函數混淆,通過指令切片、控制流扁平化、立即加密等技術手段,將 native 指令轉換為難以理解的復雜指令,無法被 IDA 反編譯,並且無法被還原。
SO 代碼虛擬化
對 SO 庫中指定的函數虛擬化,可以將 x86、x64、arm32、arm64 架構的機器指令轉換為隨機自定義的虛擬機指令,安全強度極高,可通過工具自定義配置,調整性能與安全性。
DEX 虛擬機保護
對 DEX 中的 dalvik 位元組碼進行虛擬化,轉換為自定義的虛擬機指令,最後由 native 層虛擬機解釋執行,防止逆向分析。
⑷ 如何給so文件加殼
在 Android 環境中,Native 層的加殼主要是針對動態鏈接庫 SO,SO 加殼的示意圖如下:
加殼工具、loader、被保護SO。
SO: 即被保護的目標 SO。
loader: 自身也是一個 SO,系統載入時首先載入 loader,loader 首先還原出經過加密、壓縮、變換的 SO,再將 SO 載入到內存,並完成鏈接過程,使 SO 可以正常被其他模塊使用。
加殼工具: 將被保護的 SO 加密、壓縮、變換,並將結果作為數據與 loader 整合為 packed SO。
加固可以在一定程度上保護自己核心代碼演算法,提高破解/盜版/二次打包的難度,緩解代碼注入/動態調試/內存注入攻擊等,但也對應用的兼容性有一定影響,加殼技術不行的話,還會影響程序運行效率.
目前市面上有很多第三方加固的平台, 如果新應用發布前需要掃描或者加固的話,可以先試試免費的,例如騰訊御安全,建議自己先去掃加固試下。
⑸ Android開發App如何進行加固
1.避
免技巧:使用內部API。即便我們總是建議不要這么做,但還是有一些開發者選擇使用那些不支持或者內部的API。例如,許多開發者使用內部的亮度控制和藍
牙切換API,這些API出現在1.0和1.1版本上。一個Bug——在Android
1.5上進行了修正——允許App在不需要請求許可權的情況下使用這些API。結果,使用了這些API的App在1.5上掛掉了。如果你在App中使用了這
些內部API,你需要做的是:停止這一做法,更新你的程序。
2.避
免技巧:直接操作Settings。嚴格來講,這一條不算,因為我們可以通過Android本身進行操作。但之所以我們加上了這一條,是因為一些開發者做
了一些調皮的事情:一些App悄無聲息地修改了系統設定,而沒有通知用戶。例如,一些App沒有詢問用戶就直接打開了GPS,而另外一些則可能直接打開了
數據傳輸。
因此,應用程序不能直接操作某個特定的系統設定值,即便是它們之前能這么做。例如,App不能直接打開或關閉GPS。不是說使
用會導致App崩潰,而是不應該使用這些API。代替的,App需要發出一個Intent來啟動相應的Settings配置畫面,這樣用戶可以手動地修改
這些設定。詳細情況可以參考android.provider.Settings.Secure類,你可以在1.5_pre(和之後的)SDK文檔中找
到。注意,只有那些移動到Settings.Secure類中設定受到影響。其它的,還會像Android 1.1那樣有著相同的功能。
3.避
免技巧:過分布局。由於View渲染部分的變化,在布局中,過於深(超過10層左右)或過於多(超過30個左右)的View樹層次可能會導致程序崩潰。過
於復雜的布局總歸是有危險的,盡管你可以認為Android
1.5已經好於1.1。大多數開發者不需要對此擔心,但如果你的App有著非常復雜的布局,你還是應該對其「瘦身」。你可以使用一些高級的布局類,如
FrameLayout和TableLayout,來簡化你的布局。
4.避
免技巧:不好的硬體假設。Android
1.5支持軟鍵盤,因此,不久就會有很多設備不再包含物理鍵盤。如果你的程序假設物理鍵盤存在(例如,如果你創建一個自定義的View,並接收鍵按下消
息),你必須保證在只有軟鍵盤的設備上也工作正常。想了解更多關於這方面的信息,請繼續關注這個Blog,我們將會有更多關於處理軟鍵盤的詳細資料。
5.避
免技巧:無意識的旋轉。運行Android
1.5(及以上)的設備能夠根據用戶手持設備的方向自動地旋轉屏幕。一些1.5的設備默認這么做,而其它的需要用戶手動設置。應用程序自己的重定向在某種
程度上會導致不可預期的行為(不論是使用加速度計還是其它一些東西)。這種情況通常發生在應用程序假設有物理鍵盤時才能旋轉;如果設備沒有物理鍵盤,這些
App就不能進行重定向,而這明顯就是個編碼錯誤。開發者應該明確應用程序能在任何時間都能處理重定向。
同樣,App可以使用加速度計做到與系統
相同的事情——直接重定向自己,這也會引發奇怪的結果。一些App使用加速度計來監測像晃動動作什麼的,而又不將其方向鎖定為垂直或水平,經常會導致在方
向上來回翻動。而這就會激怒用戶。(你可以在manifest文件中使用android:screenOrientation特性來鎖定App的方向為垂
直或水平。)
⑹ Android加固和簽名的那些坑(防掉坑技巧)
上個月公司一個項目突然要找第三方進行安全漏洞的檢測,於是打包了一個apk文件,發到第三方結構進行了安全檢測,這項目我入職前就已經快完成的階段,我後面基本是維護和小更新.比較坑的是之前的哥們連混淆都沒有,更不要說加固了,最後掃出了30多個漏洞,看到檢測報告都懵逼了.
自己對混淆和加固之前也只是知道皮毛沒有深究,這次修復漏洞踩了不少坑,都是邊上網搜資料邊踩坑,總算搞定了,寫出來防止後人踩坑 ,這里主要講加固簽名的坑,混淆這里不說了(自己對混淆還不熟)
很容易理解,ture是已簽名,false是未簽名,都為true的話說明v1,v2都成功簽名了.
然後把兩個md5的值進行比對,如果一致說明你的簽名沒用錯秘鑰 - -||
4.手動進行簽名操作:
java -jar apksigner.jar sign --ks /Users/xxxx/Desktop/key.jks --ks-key-alias test --ks-pass pass: 123456 --key-pass pass: 123456 --out /Users/xxxx/Desktop/簽名後的安裝包.apk /Users/xxxx/Desktop/需要進行簽名的安裝包.apk
上面的命令會執行同時執行v1,v2簽名
注意仔細看上的命令行:進了黑色加粗的文字需要替換成實際的信息
說個小插曲,我們的項目找的是一個規模很大的公司進行檢測,開始用了網上的免費的加固工具加固拿去檢測,別人拿去測試之後全部都脫殼了,說這種免費的加固安全沒有保障,要用他們的加固服務可以解決,要收費..呵呵,因為項目比較特殊只能答應了,打包簽名了apk,發到他們那邊進行了加固後他們把apk發回來讓我重新簽名,簽名後apk用不了,閃退....老闆說別人大公司應該不會出現這種小問題,是我的問題.恩,自己也懷疑是我的錯. 當天折騰到凌晨才下班,經歷了上面的一頓折騰後發現v1,v2都簽名了,並且md5值也沒問題. 這時就有底氣的去質問那家公司,最後發現是他們的加固出問題.
一般來說進行了上面的方法重新簽名並且檢查md5值沒錯,應該不會出問題了這時候可以去質疑一下加固方的問題.
github參考鏈接1
github參考鏈接2
先寫這些記錄一下,後面有需要再更新,有什麼問題可以在下面留言討論.
⑺ 什麼軟體可以查看安卓程序是否加固,是什麼加固
下載Mt管理器,即可查看軟體是否被加固以及加固類型。在Mt管理器中找到軟體安裝包的位置,點擊軟體安裝包,在彈出的窗口中找到加固一欄,上面就標注著是否加固以及加固的類型。
希望我的答案能夠幫助到你,滿意請採納哦。滿意請給5星好評,謝謝。
⑻ Android Studio自定義加固插件
Gradle自定義插件
我們新建一個名為JiaguPlugin的Mole
調整build.gradle為如下所示(這里我使用Kotlin開發)
創建一個JiaguPlugin類
然後創建resources目錄並創建插件的配置文件
配置文件的內容如下:
1)創建一個擴展
這里我們創建的擴展名為jiagu,這個就好像app下build.gradle中的android擴展一樣
我們擴展中的參數是JiaguParams中的參數
2)添加監聽
添加一個讀取完配置信息後的回調
然後我們先將我們的插件上傳到Maven倉庫,也就是執行插件build.gradle的這個Task,這里我上傳到了項目下的Plugins文件夾下
然後我們在項目的build.gradle文件里引入
加固的任務類JiaguTask如下,這里的命令是參照文章開頭360加固的help文件:
4)配置加固信息
我們在build.gradle文件中配置好我們的加固信息
5)進行加固
首先我們先make一下項目,生成apk文件
https://gitee.com/itfitness/jiagu-plugin
⑼ 安卓apk應用如何進行安全加固
1、首先登陸騰訊雲,選擇「雲產品」------「應用加固」,在彈出的頁面中選擇「立即使用」;
2.使用app加固對安卓軟體進行加固,可以保護我們的隱私,而且騰訊雲的應用加固使用也非常的簡單,能夠有效的對存儲數據進行加密保護;擁有防調試、惡意代碼植入保護;反編譯和環境監測保護等功能。
3.准備好app應用後,選擇「申請加固」,在彈出的窗口中上傳自己需要加固的apk應用程序,這里注意下:apk應用程序必須小於100M;
4.待上傳解析完畢後,就可以進行加固了,這里我們選擇默認即可,也可以根據自己的需求自定義:
目前支持以下三種格式:
1.method com.test.ClassName *
表示需要加固com.test.ClassName類下的所有方法
2.method * onCreate
表示需要加固所有類的onCreate方法
3.method com.test.ClassName onCreate
表示需要加固com.test.ClassName類下的onCreate方法
5.稍等片刻後,就會加固成功,然後下載加固後的app應用,重新簽名後就可以發行使用了,非常的簡單。
類似的應用加固平台還有很多,比如娜迦,愛加密等等,都能有效的保護app應用,防止一些惡意代碼的寫入和逆向破解。