国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

實(shí)現(xiàn)Android APK加固:代碼加密隱藏、資源加密隱藏、so庫(kù)加密隱藏。兼容unity引擎。附加固工具鏈接。

這篇具有很好參考價(jià)值的文章主要介紹了實(shí)現(xiàn)Android APK加固:代碼加密隱藏、資源加密隱藏、so庫(kù)加密隱藏。兼容unity引擎。附加固工具鏈接。。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

0.工具最終效果

0.1.可自動(dòng)批量循環(huán)改包

改包包括:自動(dòng)換包名(可選),自動(dòng)改類(lèi),清單處理等
使用場(chǎng)景:原包為母包,爭(zhēng)取處理出來(lái)的包沒(méi)有容易被標(biāo)記的地方

0.2.可自動(dòng)批量循環(huán)加固,改包后自動(dòng)加固

使用場(chǎng)景:原包為母包,爭(zhēng)取處理出來(lái)的包每個(gè)包都不一樣

0.3 改包加固效果

原包代碼不可見(jiàn),原包so不可見(jiàn),原包assets不可見(jiàn),原包resource不可見(jiàn)
每次加固結(jié)果,代碼,so,assets,代碼運(yùn)行邏輯都不一樣.
安全性增加,簽名校驗(yàn),運(yùn)行環(huán)境檢測(cè).

0.4防標(biāo)記,防報(bào)毒

對(duì)原android工程,進(jìn)行下列操作(工具里支持一鍵自動(dòng))
自動(dòng)混淆類(lèi)名和方法名
自動(dòng)生成不會(huì)垃圾類(lèi)垃圾代碼,
自動(dòng)插入運(yùn)行垃圾代碼,
自動(dòng)插入生成不會(huì)運(yùn)行的垃圾方法,
每次代碼運(yùn)行邏輯不一樣.

這樣生成的包差異性就會(huì)很大.再進(jìn)行加固,就會(huì)非常安全和唯一了

1.為什么做加固

因?yàn)椴幌胄列量嗫嘧龅臇|西,被別人拿去改成各種版,半路摘我的桃子。
所以需要將原包的一些核心東西進(jìn)行加密影藏。
市面上比較好的解決方案就是進(jìn)行加固,能提升apk安全性。

2.怎么加固

2.1 簡(jiǎn)單的加固

三方加固,有些三方會(huì)有免費(fèi)版本的加固服務(wù)
比如 騰訊加固
免費(fèi)版簡(jiǎn)易加固,只進(jìn)行了代碼加密影藏,資源和so庫(kù)都沒(méi)有處理

2.2 深度復(fù)雜加固,

為啥要深度復(fù)雜加固呢,因?yàn)槿降拿赓M(fèi)版的簡(jiǎn)單加固只會(huì)對(duì)代碼進(jìn)行加固,資源和so庫(kù)還是一目了然的放在那里。
如果想將資源和so庫(kù)加固,可以使用三方付費(fèi)版,
當(dāng)然也可以自己做
為啥要自己做呢?
因?yàn)橘F啊,n * W/年/APP,一個(gè)應(yīng)用一年就要幾萬(wàn)。

3.自己做加固

花了些時(shí)間,參考各種資料,實(shí)現(xiàn)了代APP深度加固。
實(shí)現(xiàn)效果:
代碼加密隱藏:原包代碼加密隱藏不可見(jiàn)。
資源加密隱藏:原包資源加密隱藏不可見(jiàn),包括res下和assets下的資源。當(dāng)然,清單文件引用的資源無(wú)法隱藏。
so庫(kù)加密隱藏:原包so庫(kù)加密隱藏不可見(jiàn)。

3.1 主要原理

3.1.1 代碼加固

Android能夠使用apk文件或dex文件動(dòng)態(tài)加載Classloader
實(shí)現(xiàn)原理:將代碼dex加密,使用時(shí)解密,然后加載成Classloader使用。

/**
     * 將dex注入dexElements數(shù)組中
     * @param context
     * @param str
     * @throws ClassNotFoundException
     * @throws NoSuchFieldException
     * @throws IllegalAccessException
     */
    public static void changeAppClassLoader(Context context, String str) throws Throwable {
        PathClassLoader pathClassLoader = (PathClassLoader) context.getClassLoader();
        PathClassLoader classLoader = new PathClassLoader(str,null,context.getClassLoader());
        Object a = combineArray(getDexElements(getPathList(pathClassLoader)), getDexElements(getPathList(classLoader)));
        Object a2 = getPathList(pathClassLoader);
        setField(a2, a2.getClass(), "dexElements", a);
    }
3.1.2 資源加固

Android同樣提供了api,開(kāi)發(fā)者能使用apk路徑加載成resource
實(shí)現(xiàn)原理:將資源apk加密,使用時(shí)解密,然后加載成Resource使用

private Resources preloadResource(Context context, String apkFilePath) {
        try {
            Class<? extends AssetManager> AssetManagerClass = AssetManager.class;
            AssetManager assetManager = AssetManagerClass.newInstance();
            @SuppressLint("DiscouragedPrivateApi")
            Method addAssetPathMethod = AssetManagerClass.getDeclaredMethod("addAssetPath", String.class);
            addAssetPathMethod.setAccessible(true);
            addAssetPathMethod.invoke(assetManager, apkFilePath);
            Resources baseResources = new Resources(assetManager, context.getResources().getDisplayMetrics(), context.getResources().getConfiguration());
            return baseResources;
        } catch (Throwable e) {
        }
        return null;
    }
3.1.3 so庫(kù)加固

實(shí)現(xiàn)原理:將so加密,使用時(shí)解密。需要?jiǎng)討B(tài)替換應(yīng)用so路徑為解密后的so路徑

    private void changeFilePath(Context context, String newSoPath) {
        try {
            Class<?> contextImplClass = classNamefor("android.app.ContextImpl");
            Class<?> loadedApkClass = classNamefor("android.app.LoadedApk");
            Object mPackageInfo = getFieldValue(contextImplClass, "mPackageInfo", context);
            ApplicationInfo mApplicationInfo = null;
            mApplicationInfo = (ApplicationInfo) getFieldValue(loadedApkClass, "mApplicationInfo", mPackageInfo);
            mApplicationInfo.nativeLibraryDir = newSoPath;
        } catch (Throwable emApplicationInfo) {

        }
    }  

3.2 整體實(shí)現(xiàn)

將真實(shí)的apk(子包)進(jìn)行加密,殼包啟動(dòng)時(shí),動(dòng)態(tài)根據(jù)子包apk解密,加載出Classloader和Resource,并獲得so路徑(可以將so庫(kù)單獨(dú)抽出來(lái))
將系統(tǒng)的Classloader,Resource,so路徑替換為生成的。

4 總結(jié)

目前已實(shí)現(xiàn),并在多個(gè)包上使用這套技術(shù)。

5 加固工具

自定義加固工具-Mac版-下載地址-下載速度快

自定義加固工具-Mac本地版-百度網(wǎng)盤(pán)下載地址-下載速度看是否有會(huì)員

本地軟件版,不會(huì)上傳原包任何信息至服務(wù)器,本地處理。提供自動(dòng)化腳本調(diào)用。

使用方法:

1.打開(kāi)工具,賬號(hào)設(shè)置,注冊(cè)賬號(hào)(注,注冊(cè)的新賬號(hào)為測(cè)試賬號(hào),加固的包有運(yùn)行時(shí)效限制,勿正式發(fā)布)
2.點(diǎn)擊選擇需要加固的包(路徑不能包含空格等特殊字符)
3.沒(méi)有簽名就勾選自動(dòng)簽名

點(diǎn)擊 begin 會(huì)出現(xiàn)加載圖片卡死的現(xiàn)象,別著急,這是在進(jìn)行加固。靜靜等待即可。

mac打開(kāi)App遇到惡意軟件的處理方式

1.下載打開(kāi)壓縮包.
2.雙擊加固App,Apple會(huì)提示"無(wú)法打開(kāi),惡意軟件字樣"
3.打開(kāi)電腦系統(tǒng)設(shè)置-隱私與安全性-安全性:會(huì)有剛才打開(kāi)軟件的提示,點(diǎn)擊仍然打開(kāi)就行.

App環(huán)境部署.

App需要Python3 和 openjdk的環(huán)境,
如果電腦已經(jīng)裝好,可以直接使用,如果沒(méi)有,可以安裝.
上述下載地址的百度網(wǎng)盤(pán)下載地址,里面有我使用的jdk版本,可以下載使用.
上述下載地址的百度網(wǎng)盤(pán)下載地址,里面有apk查看工具,可以查看對(duì)比加固前后apk的信息.

6 聯(lián)系作者

期待你的點(diǎn)贊和關(guān)注!如有疑問(wèn),聯(lián)系作者。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-484097.html

到了這里,關(guān)于實(shí)現(xiàn)Android APK加固:代碼加密隱藏、資源加密隱藏、so庫(kù)加密隱藏。兼容unity引擎。附加固工具鏈接。的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ()Android apk應(yīng)用加固、字節(jié)對(duì)齊、二次簽名全流程

    ()Android apk應(yīng)用加固、字節(jié)對(duì)齊、二次簽名全流程

    這篇博客主要是講如何對(duì)apk應(yīng)用進(jìn)行加固、對(duì)齊和簽名的,會(huì)有詳細(xì)的步驟逐一介紹 隨著各大加固工具都開(kāi)始逐一收費(fèi)后,個(gè)人開(kāi)發(fā)中或者中小型企業(yè)如何對(duì)應(yīng)用進(jìn)行加固就成了一個(gè)問(wèn)題。以前我常用的是360加固助手,雖然每天限制一定的免費(fèi)次數(shù),但起碼能用。 可是最近

    2024年01月17日
    瀏覽(22)
  • Android 應(yīng)用平臺(tái)加固之后操作(apk重簽名「zipalign」「apksigner」「jarsigner」) 操作環(huán)境:MacOS

    Android 應(yīng)用平臺(tái)加固之后操作(apk重簽名「zipalign」「apksigner」「jarsigner」) 操作環(huán)境:MacOS

    說(shuō)一個(gè)恐怖的事情: 現(xiàn)在的Android簽名方案已經(jīng)有v1,v2,v3,v4了 ,v3支持多個(gè)證書(shū),v4為增量簽名。具體詳情請(qǐng)看 官方文檔 。我們目前還是以v1,v2為主。 當(dāng)然,這是題外話,當(dāng)前這篇文章的主題是:Android 平臺(tái)加固之后的重簽名姿勢(shì)。我們?cè)冢v訊加固/360加固/愛(ài)加密)等

    2024年02月01日
    瀏覽(28)
  • 安卓apk加固后重簽名

    安卓apk加固后重簽名

    等保檢測(cè),安卓apk使用第三方加固后簽名信息會(huì)丟失,需要我們重新進(jìn)行簽名 APP失效無(wú)法安裝 我們?cè)谶@里使用Android SDK的apksigner進(jìn)行簽名 #apksigner export AAPT_HOME=/Users/你的用戶名/Library/Android/sdk/build-tools/30.0.2 export PATH=$PATH:$AAPT_HOME 查看配置是否生效 輸入命令行 apksigner 看到就是

    2024年01月18日
    瀏覽(29)
  • 利用MSF打包加固APK對(duì)安卓手機(jī)進(jìn)行控制

    利用MSF打包加固APK對(duì)安卓手機(jī)進(jìn)行控制

    由于經(jīng)典的MSF生成apk安裝包控制,版本較低,高版本安卓手機(jī)可能會(huì)出現(xiàn)版本不支持或無(wú)法使用的現(xiàn)象,而且apk無(wú)法正常使用,沒(méi)有圖形化界面,比較假。 相比于原始的msf遠(yuǎn)控,此版本app在進(jìn)行遠(yuǎn)控時(shí),被注入的app可以正常運(yùn)行,原始msf生成的app程序,只在桌面上有一個(gè)圖標(biāo)

    2024年01月16日
    瀏覽(21)
  • 使用360進(jìn)行apk加固并進(jìn)行2次簽名整體流程

    使用360進(jìn)行apk加固并進(jìn)行2次簽名整體流程

    因新版360加固助手需要付費(fèi)才能進(jìn)行自動(dòng)簽名,故只能自己手動(dòng)來(lái)簽名了~ 首先選擇build下該選項(xiàng) 選擇apk 如果沒(méi)有key,則點(diǎn)擊新建 需要輸入key存儲(chǔ)的位置,key store密碼,key別名(Alias),key密碼,以及Certificate欄下的任一數(shù)據(jù) 成功后回到上一頁(yè),選中你的key文件,輸入剛才設(shè)

    2024年02月02日
    瀏覽(28)
  • 【Android studio+uniapp】將Android 的插件打包成aar包放在uniapp中使用, Android studio將uniapp本地資源包打包成apk, 以及一些常用的配置

    【Android studio+uniapp】將Android 的插件打包成aar包放在uniapp中使用, Android studio將uniapp本地資源包打包成apk, 以及一些常用的配置

    點(diǎn)擊構(gòu)建--rebuild project 打完包后會(huì)在build--output--aar文件夾中顯示. 然后將這個(gè).aar文件放到uniapp中的自定義插件中. nativeplugins這個(gè)文件夾名不能改,固定的.然后到app原生插件中選擇你剛剛的本地插件 到這里你就可以使用自定義的安卓的插件了. 1,將uniapp端的代碼打包成本地資源

    2024年02月04日
    瀏覽(21)
  • Android開(kāi)發(fā) APP代碼安裝APK安裝包

    ?在Android 項(xiàng)目上架后,需要迭代更新,一般更新方式有:手動(dòng)下載apk包手動(dòng)安裝、通過(guò)瀏覽器下載手動(dòng)安裝、 APP內(nèi)部下載內(nèi)部安裝 。本文章就只講解APP內(nèi)部下載內(nèi)部安裝這個(gè)APP 更新方式。雖然網(wǎng)上關(guān)于APP內(nèi)部apk安裝的代碼和文章很多,但太過(guò)于絕對(duì),沒(méi)有考慮一些特殊情況

    2023年04月08日
    瀏覽(21)
  • UE4查看加密PAK里邊的資源Android/iOS/PC方法

    UE4查看加密PAK里邊的資源Android/iOS/PC方法

    我們經(jīng)常會(huì)需要把1個(gè)模型進(jìn)行減面然后在移動(dòng)端使用,有時(shí)候會(huì)出現(xiàn)移動(dòng)端模型和PC端模型不一致的問(wèn)題,這時(shí)候就需要將移動(dòng)端的模型和PC端的模型進(jìn)行對(duì)比,找到問(wèn)題出現(xiàn)的原因,檢查Mesh、Normal、UV0、UV1、MaterialId、碰撞等是否一致。 如何打包Pak文件,見(jiàn)這篇文章:UE4打

    2024年02月14日
    瀏覽(26)
  • 微信開(kāi)發(fā)者工具實(shí)現(xiàn)代碼加固

    微信開(kāi)發(fā)者工具實(shí)現(xiàn)代碼加固

    ?node.js下載地址:下載 | Node.js 在項(xiàng)目代碼區(qū)域右擊選擇生成加固配置文件 ?(1):?jiǎn)蝹€(gè)文件代碼加固 選擇需要加固的文件,右擊選擇進(jìn)行代碼加固 (2):批量代碼加固 ?直接修改 code_obfuscation_config.json 的 configs 字段,就可以實(shí)現(xiàn)批量代碼加固 ? 當(dāng)開(kāi)發(fā)者完成小程序項(xiàng)目開(kāi)發(fā),點(diǎn)

    2024年02月03日
    瀏覽(29)
  • Android端惡意代碼檢測(cè)學(xué)習(xí)之路——(2)靜態(tài)分析(apk數(shù)據(jù)集的獲?。? decoding=

    Android端惡意代碼檢測(cè)學(xué)習(xí)之路——(2)靜態(tài)分析(apk數(shù)據(jù)集的獲取)

    上次只是搞了一個(gè)apk進(jìn)行測(cè)試,那必是不得行?。∧遣坏眯枰夹砸约皭阂鈹?shù)據(jù)集嗎? 在網(wǎng)上找了很久,沒(méi)有找到合適的,況且就算找到了,不能確定到底是不是良性,所以!我決定!寫(xiě)一個(gè)爬蟲(chóng)爬取豌豆莢apk(按照排行榜來(lái)順序下載)。 可是我不會(huì)寫(xiě)爬蟲(chóng)??!怎么辦,學(xué)

    2023年04月11日
    瀏覽(92)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包