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

Android 馬甲包 google市場混淆技術(shù)方案

這篇具有很好參考價值的文章主要介紹了Android 馬甲包 google市場混淆技術(shù)方案。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

  1. 指定 混淆字典

在app的gralde里配置混淆字典

-obfuscationdictionary dict.txt#外部字典

-classobfuscationdictionary dict.txt #類字典

-packageobfuscationdictionary dict.txt #包字典

dict.txt 文件內(nèi)容類似這樣的:

zguqnx

mvdmuyh

wmws

jwomtp

nhmhn

zvlogo

pomcwh

bhdnzul

osxbj

gojb

ctvkrg

srmar

sgkarnqi

byghdn

tvebtxw

uxdhno

qmjac

pgxasjnc

ezfb

tuoe

pzdo

寫了一個task

/**
 * 生成字典Task
 */
task geneDictTask {
    doFirst{
        def dictPath = rootDir.getAbsolutePath()+'/app/dict.txt'
        def random = new Random()
        def lowercase = "abcdefghijklmnopqrstuvwxyz"
        def wordList = new HashSet()
        for (int i=0;i<10000;i++){
            def word = new StringBuilder()
            def wordLength = random.nextInt(5)+4
            for (int j=0;j<wordLength;j++){
                word.append(lowercase.charAt(random.nextInt(lowercase.length())))
            }
            wordList.add(word.toString())
        }
        def f = new File(dictPath)
        f.getParentFile().mkdirs()
        f.withWriter("UTF-8") {
            it.write(wordList.join(System.lineSeparator()))
        }
    }
}
//

  1. xmlClassGuard

xmlClassGuard {

/*

* 是否查找約束布局的constraint_referenced_ids屬性的值,并添加到AabResGuard的白名單中,

* true的話,要求你在XmlClassGuard前依賴AabResGuard插件,默認(rèn)false

*/

// findConstraintReferencedIds = true

//用于增量混淆的 mapping 文件

mappingFile = file("xml-class-mapping.txt")

//更改manifest文件的package屬性,即包名

packageChange = ["com.DOTLESS.gala": "com.DOTLESS.gala"]

//移動目錄

moveDir = ["com.DOTLESS.gala": "com.DOTLESS.gala"]

}

  1. 批量修改文件名

ext {
    //需要批量重命名的Been路徑
    renameBeenPath = "src/main/java/com/DOTLESS/gala/bean"
    //Been對象名字以什么字符串結(jié)尾, 默認(rèn)Been, 例如設(shè)為Beax, 則所有Been都會以Beax結(jié)尾, 如GoodsBeax.kt
    beenNameSuffix = "Bear"
    //Been名字的前綴, 例如KoGoodsBeen
    beenPrefix = "Ko"
    //Been對象 Been的前面加的字符串 KoGoodsFishBeen
    beenMidfix = "Fish"
    //特殊的Been比配
//    specialBeensMatcher = ["**/*Been.kt",  "**/*Been.java"]
}

task renameBeenProcesser {
    doLast {
        FileTree beenTree = fileTree(renameBeenPath) {
            include '**/*.java'
            include '**/*.kt'
//            include specialBeensMatcher
        }
        def start = System.currentTimeMillis()
        println(">>>>>> renameBeenProcesser start")
        beenTree.each { File beenFile ->
            //println(beenFile.path + " Processing...")
            def sname = beenFile.name
            def fileEx = sname.substring(sname.lastIndexOf("."))
            sname = sname.replace(fileEx, "")
            def tName = ""
//            if (sname.endsWith("Been")) {
//                tName = beenPrefix + sname.replace("Been", beenMidfix + beenNameSuffix)
//            } else if (sname.endsWith("Bean")) {
//                tName = beenPrefix + sname.replace("Bean", beenMidfix + beenNameSuffix)
//            } else {
                tName = beenPrefix + sname + beenMidfix + beenNameSuffix
//            }
            beenFile.renameTo(beenFile.parentFile.path + File.separator + tName + fileEx)
            //生成一個文件樹,替換import后面的路徑
            FileTree processTree = fileTree("src") {
                include '**/*.java'
                include '**/*.kt'
                include '**/layout/*.xml'
            }
            processTree.each { File f ->
                ImportBeenReplacer(f.path, sname, tName)
            }
        }
        def cost = (System.currentTimeMillis() - start) / 1000
        println(">>>>>> renameBeenProcesser end(cost:${cost}s)")
    }
}

//替換有導(dǎo)入目標(biāo)been的文件內(nèi)容
def ImportBeenReplacer(String filePath, sourceBeenName, targetBeenName) {
    def readerString = ""
    def hasReplace = false
    def xml = filePath.endsWith(".xml")
    file(filePath).withReader('UTF-8') { reader ->
        reader.eachLine {String it ->
            if (it.find(sourceBeenName)) {
                if (xml) {
                    //println("###$filePath: $sourceBeenName->$targetBeenName")
                    it = it.replaceAll("(?<![a-zA-Z0-9]+)(?<=[\\.]+)$sourceBeenName(?=[ \"\\./>]*)(?![a-zA-Z0-9]+)", targetBeenName)
                } else {
                    it = it.replaceAll("(?<![a-zA-Z0-9]+)(?<=[ \\.<:\\s\\,(]+)$sourceBeenName(?=[ \"\\.>\\?\\:\\(]*)(?![a-zA-Z0-9]+)", targetBeenName)
                }
                hasReplace = true
            }
            readerString <<= it
            readerString << '\n'
        }
    }
    if (hasReplace) {
        if(readerString.toString().endsWith("\n")) readerString = readerString.subSequence(0, readerString.length() - 1)
        //替換文件
        //println(filePath + " has replace been.")
        file(filePath).withWriter('UTF-8') {
            writer ->
                writer.append(readerString)
        }
    }
}


  1. androidJunkCode 添加垃圾代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-493055.html

androidJunkCode {
    def config = {
        packageBase = "com.dotless.xthv"
        packageCount = 15
        activityCountPerPackage = 3
        excludeActivityJavaFile = false
        otherCountPerPackage = 15
        methodCountPerClass = 10
        resPrefix = "xthv_"
        drawableCount = 10
        stringCount = 10
    }
    variantConfig {
        devDebug config  //和productFlavors里的名字一樣,注意不能是大寫,不然會報錯
        devRelease config
        publishDebug config
        publishRelease config
    }
}

到了這里,關(guān)于Android 馬甲包 google市場混淆技術(shù)方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Android Hook技術(shù)學(xué)習(xí)——常見的hook技術(shù)方案

    Android Hook技術(shù)學(xué)習(xí)——常見的hook技術(shù)方案

    最近一段時間在研究Android加殼和脫殼技術(shù),其中涉及到了一些hook技術(shù),于是將自己學(xué)習(xí)的一些hook技術(shù)進(jìn)行了一下梳理,以便后面回顧和大家學(xué)習(xí)。 本文第二節(jié)主要講述編譯原理,了解編譯原理可以幫助進(jìn)一步理解hook技術(shù) 本文第三節(jié)主要講述NDK開發(fā)的一些基礎(chǔ)知識 本文第四

    2024年02月12日
    瀏覽(20)
  • Android 混淆使用及其字典混淆(Proguard)

    Android 混淆使用及其字典混淆(Proguard)

    1.使用背景 ProGuard能夠通過壓縮、優(yōu)化、混淆、預(yù)檢等操作,檢測并刪除未使用的類,字段,方法和屬性,分析和優(yōu)化字節(jié)碼,使用簡短無意義的名稱來重命名類,字段和方法。從而使代碼更小、更高效、更難進(jìn)行逆向工程。 Android代碼混淆,又稱Android混淆,是一種Android APP保護(hù)

    2024年02月03日
    瀏覽(25)
  • LLVM 與代碼混淆技術(shù)

    LLVM 與代碼混淆技術(shù)

    項目源碼 LLVM 計劃啟動于2000年,開始由美國 UIUC 大學(xué)的 Chris Lattner 博士主持開展,后來 Apple 也加入其中。最初的目的是開發(fā)一套提供中間代碼和編譯基礎(chǔ)設(shè)施的虛擬系統(tǒng)。 LLVM 命名最早源自于底層虛擬機(jī)(Low Level Virtual Machine)的縮寫,隨著 LLVM 項目的不斷發(fā)展,原先的全稱

    2024年02月09日
    瀏覽(44)
  • android 混淆配置

    android 發(fā)布正式版本都會涉及到代碼加密,防止反編譯,這就涉及到混淆文件的配置 1、在app模塊的build.gradle中配置 然后在其中引用的proguard-rules.pro文件中配置混淆即可 注:這里的app模塊是指在build.gradle中配置的是 因為有的工程中有多個模塊 2、proguard-rules.pro文件中配置混淆

    2024年02月01日
    瀏覽(21)
  • Android Proguard混淆

    Android Proguard混淆

    關(guān)于作者:CSDN內(nèi)容合伙人、技術(shù)專家, 從零開始做日活千萬級APP。 專注于分享各領(lǐng)域原創(chuàng)系列文章 ,擅長java后端、移動開發(fā)、人工智能等,希望大家多多支持。 我們繼續(xù)總結(jié)學(xué)習(xí) 基礎(chǔ)知識 ,溫故知新。 本文講述Android Proguard 相關(guān)知識。 Proguard 四部曲: shrink(刪減):刪

    2024年02月05日
    瀏覽(23)
  • android 混淆

    # 指定代碼的壓縮級別 0 - 7(指定代碼進(jìn)行迭代優(yōu)化的次數(shù),在Android里面默認(rèn)是5,這條指令也只有在可以優(yōu)化時起作用。) -optimizationpasses 5 # 混淆時不會產(chǎn)生形形色色的類名(混淆時不使用大小寫混合類名) -dontusemixedcaseclassnames # 指定不去忽略非公共的庫類(不跳過library中的非

    2024年02月05日
    瀏覽(16)
  • Unity3D代碼混淆方案詳解

    Unity3D代碼混淆方案詳解

    Unity引擎使用Mono運(yùn)行時,而C#語言易受反編譯影響,存在代碼泄露風(fēng)險。本文通過《QQ樂團(tuán)》項目實踐,提出一種適用于Unity引擎的代碼混淆方案,以保護(hù)代碼邏輯。 在Unity引擎下,為了防止代碼被輕易反編譯,需要采取相應(yīng)的保護(hù)措施。本文將分享一種基于實踐經(jīng)驗的可行方

    2024年01月18日
    瀏覽(26)
  • Android 根據(jù)mapping文件還原混淆代碼

    app發(fā)布的時候都會做混淆處理,但是當(dāng)發(fā)生錯誤的時候,只能看到一些混淆后的代碼很難看清楚哪里錯了,那么如何將混淆后的代碼進(jìn)行還原呢? Android sdk 目錄下有專門的工具可以幫助我們進(jìn)行還原。 在還原混淆之前,我們需要app的混淆mapping文件,該文件路徑: 混淆文件的

    2024年02月09日
    瀏覽(26)
  • 藍(lán)牙技術(shù)|智能照明市場蓬勃發(fā)展,藍(lán)牙技術(shù)助力市場發(fā)展

    藍(lán)牙技術(shù)|智能照明市場蓬勃發(fā)展,藍(lán)牙技術(shù)助力市場發(fā)展

    照明控制系統(tǒng)在商業(yè)和工業(yè)領(lǐng)域的應(yīng)用廣泛。例如,智能辦公樓、商場、工廠等場所,可以通過照明控制系統(tǒng)實現(xiàn)節(jié)能和舒適性的提升。預(yù)計將從2023年的74億美元增長到2032年的108億美元,復(fù)合年增長率(CAGR)為4.3%。 隨著LED照明技術(shù)在市場上的逐漸普及,傳統(tǒng)照明設(shè)備逐漸被

    2024年02月15日
    瀏覽(22)
  • 如何使用代碼混淆技術(shù)保護(hù)移動應(yīng)用程序安全

    如何使用代碼混淆技術(shù)保護(hù)移動應(yīng)用程序安全

    在移動應(yīng)用開發(fā)過程中,代碼保護(hù)一直是一個重要的議題。為了保護(hù)應(yīng)用程序免受黑客攻擊和逆向工程師的破解,開發(fā)人員使用各種方法來加強(qiáng)應(yīng)用程序的安全性。其中,代碼混淆是一種常用的技術(shù),可以通過對代碼進(jìn)行混淆、壓縮和重命名等操作,使得應(yīng)用程序的代碼難以

    2024年01月17日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包