在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Flutter應用代碼混淆優化防護的常見問題與解決方案

哆啦安全 ? 來源:稀土掘金 ? 2023-08-12 11:11 ? 次閱讀

分析flutter應用很依賴反編譯工具轉儲的dart文件中的信息,可以在開發flutter的過程中開啟混淆,能有效防止靜態分析。

flutter build apk --obfuscate --split-debug-info=./debug_info

一、混淆原理

混淆是一種代碼保護技術,通過修改源代碼或編譯后的代碼,使其難以閱讀和理解。混淆的主要目的是提高反編譯和逆向工程的難度。通常,混淆可以通過以下方法實現:

重命名變量、函數和類名。

刪除不必要的空白字符、注釋和換行符。

優化代碼結構,例如內聯函數、刪除未使用的代碼和資源等。

對控制流進行混淆,例如添加冗余代碼、修改循環結構等。

二、實現混淆

2.1.混淆Dart代碼

要對Dart代碼進行混淆,請使用以下命令構建Release版本:

flutterbuildapk--obfuscate--split-debug-info=
其中是用于存儲混淆映射文件的目錄。這些文件可用于還原混淆后的堆棧跟蹤。

Flutter應用混淆

Flutter應用的混淆非常簡單,只需要在構建release版應用時結合使用--obfuscate 和--split-debug-info這兩個參數即可。

–obfuscate --split-debug-info用來指定輸出調試文件的位置,該命令會生成一個符號映射表。目前支持apk,appbundle,ios和ios-framework等目標平臺(macOS和aar在master和dev分支中支持),如下所示:
flutter build apk --obfuscate --split-debug-info=//
混淆成功后,需要保存符號映射表,以便以后需要去混淆跟蹤代碼堆棧。

相關命令的其他信息,可以運行flutter build apk -h查看,如果不支持該命令,核實Flutter版本,執行flutter upgrade更新。

Flutter分析包的大小
flutter build apk --target-platform android-arm --analyze-size 
flutter build apk --target-platform android-arm64 --analyze-size 
flutter build apk --target-platform android-x64 --analyze-sizeflutter build appbundle --target-platform android-arm --analyze-size 
flutter build appbundle --target-platform android-arm64 --analyze-size 
flutter build appbundle --target-platform android-x64 --analyze-size
2.2.混淆Android原生代碼

要對Android原生代碼進行混淆,請在android/app/build.gradle文件中啟用ProGuard或R8。在buildTypes配置中,為release類型添加以下配置:
buildTypes {
release{
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
此外,確保在proguard-rules.pro文件中添加必要的混淆規則,例如保留與MethodChannel相關的原生代碼:
-keep class io.flutter.plugin.** { *; }
三、優化應用程序包體積

3.1.移除未使用的資源

移除項目中未使用的資源(如圖片、字體和動畫),以減小應用程序的包體積。在Android項目中,可以使用shrinkResources選項來移除未使用的資源:
android {
    ...
    buildTypes {
        release {
            ...
            shrinkResources true
        }
    }
    ...
}
3.2.壓縮圖片資源

壓縮項目中的圖片資源,以降低它們的文件大小。可以使用像TinyPNG或ImageOptim這樣的工具來壓縮圖片資源。

四、提高反編譯難度

4.1.混淆字符串

為了提高反編譯的難度,可以在編譯階段處理掉明文字符串。一個方法是使用字符串混淆庫,如string_obfuscator。

在編譯階段,此庫會自動混淆字符串,并在運行時解混淆。

要使用string_obfuscator庫,請在pubspec.yaml文件中添加依賴,然后在需要混淆字符串的Dart文件中引入string_obfuscator庫。

使用obfuscate()函數混淆字符串。

以下是一些在混淆和優化Flutter應用程序過程中可能遇到的常見問題及其解決方案:

Flutter與原生平臺通信失效:請確保在proguard-rules.pro文件中添加與MethodChannel相關的原生代碼保留規則。

保留JSON對應的Java Bean對象:在proguard-rules.pro文件中保留與JSON相關的Java Bean對象,使用-keep指令來保留這些類。

隱藏明文字符串:使用字符串混淆庫,如string_obfuscator,在編譯階段對字符串進行混淆,并在運行時解混淆。

六、總結

保護Flutter應用程序的代碼和數據安全是移動應用程序開發中的一個重要方面。通過混淆、優化和保護應用程序,您可以提高應用程序的安全性和隱私。

請記住,在實施這些技術時始終關注可能遇到的問題,并及時尋找解決方案。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7600

    瀏覽量

    165707
  • 壓縮機
    +關注

    關注

    11

    文章

    687

    瀏覽量

    79858
  • MacOS
    +關注

    關注

    0

    文章

    210

    瀏覽量

    17947
  • JSON
    +關注

    關注

    0

    文章

    119

    瀏覽量

    7184
  • flutter
    +關注

    關注

    0

    文章

    13

    瀏覽量

    488

原文標題:Flutter應用代碼混淆優化防護

文章出處:【微信號:哆啦安全,微信公眾號:哆啦安全】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    鴻蒙Flutter實戰:10-常見問題集合

    # 鴻蒙Flutter實戰:10-常見問題集合 ## 1. 學習路徑應該是怎樣的,需要掌握哪些技術才具備鴻蒙 Flutter 開發能力 1.1 學習和掌握 Flutter 開發技術
    發表于 10-23 17:05

    石英晶振的常見問題以及解決方案

    石英晶振的常見問題以及解決方案
    發表于 03-21 21:17

    深入理解flutter的編譯原理與優化

    將以一個簡單的hello_flutter為例,介紹下Flutter相關原理及定制與優化Flutter簡介Flutter的架構主要分成三層:
    發表于 07-02 17:47

    電壓開關中常見問題解決方案

    電壓開關中常見問題解決方案
    發表于 05-23 10:05

    protues仿真常見問題解決方案分享

    protues仿真常見問題解決方案!來源:電子工程師成長日記
    發表于 01-17 08:52

    ESD靜電防范常見問題解決方案

    ESD靜電防范常見問題解決方案靜電是人們非常熟悉的一種自然現象。靜電的許多功能已經應用到軍工或民用產品中,如靜電除塵、靜電噴涂、靜電分離
    發表于 05-19 13:03 ?2448次閱讀

    RF電路設計中常見問題解決方案

    RF電路設計中常見問題解決方案
    發表于 01-11 12:55 ?32次下載

    5G簇優化常見問題解決方案資料下載

    電子發燒友網為你提供5G簇優化常見問題解決方案資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、
    發表于 04-25 08:40 ?5次下載
    5G簇<b class='flag-5'>優化</b><b class='flag-5'>常見問題</b>及<b class='flag-5'>解決方案</b>資料下載

    protues仿真常見問題解決方案

    protues仿真常見問題解決方案!來源:電子工程師成長日記
    發表于 01-17 10:33 ?4次下載
    protues仿真<b class='flag-5'>常見問題解決方案</b>

    APP混淆實戰(Java/so代碼混淆)

    Android App Bundle混淆加密加殼加固保護的解決方案(過Google App上架審核)最全Android及資源混淆方法匯總(無需加固節約成本并將APP上架Google Play成功的最佳
    的頭像 發表于 06-29 15:42 ?1044次閱讀
    APP<b class='flag-5'>混淆</b>實戰(Java/so<b class='flag-5'>代碼</b><b class='flag-5'>混淆</b>)

    Brocade存儲擴展解決方案常見問題

    電子發燒友網站提供《Brocade存儲擴展解決方案常見問題.pdf》資料免費下載
    發表于 08-29 11:22 ?0次下載
    Brocade存儲擴展<b class='flag-5'>解決方案</b><b class='flag-5'>常見問題</b>

    PCB金手指設計的常見問題解決方案

    PCB金手指設計的常見問題解決方案
    的頭像 發表于 12-25 10:09 ?3129次閱讀

    soc開發流程常見問題解決方案

    SOC(System on a Chip,系統級芯片)開發流程中常見問題解決方案主要包括以下幾個方面: 一、環境問題 常見問題 : 開發環境配置復雜,新手難以快速上手。 依賴項缺失或版本不兼容
    的頭像 發表于 11-10 09:26 ?1161次閱讀

    TTL電路中的常見問題解決方案

    。以下是對這些問題的歸納以及相應的解決方案: 一、電源問題 常見問題 : 電源電壓過高或過低,導致電路無法正常工作或損壞。 電源與地顛倒接錯,造成電流過大,損壞器件。 解決方案 : TTL電路的電源電壓通常為+5V,允許的變化范
    的頭像 發表于 11-18 10:32 ?2286次閱讀

    電子設備EMC測試整改:常見問題解決方案

    深圳南柯電子|電子設備EMC測試整改:常見問題解決方案
    的頭像 發表于 12-23 11:47 ?746次閱讀
    電子設備EMC測試整改:<b class='flag-5'>常見問題</b>與<b class='flag-5'>解決方案</b>
    主站蜘蛛池模板: 特黄免费| 欧美有码视频 | 国产婷婷色 | 久久草在线视频国产一 | 一本大道加勒比久久 | a天堂在线观看 | 亚洲色妞| 欧美一级爱操视频 | 亚洲人成网站在线 | 韩彩英三级无删版甜性涩爱 | 美女扒开下面让男人捅 | 亚洲第一区视频 | 在线观看高清视频 | 日本超黄视频 | 午夜色视频在线观看 | 国产亚洲精品久久久久久牛牛 | 毛片多多| 久久15| 亚洲国产成人久久精品图片 | 久久精品影院永久网址 | 欧美午夜视频一区二区 | 天堂在线最新版www中文 | 一级毛片真人免费观看 | xxxxxx性| 国产一级特黄aa级特黄裸毛片 | 色视频网站免费 | 手机福利片 | 亚洲午夜久久久久久91 | 巨臀中文字幕一区二区翘臀 | 国产 日韩 欧美 高清 | 午夜视频在线观看免费视频 | 五月综合激情 | 国产精品波多野结衣 | 色吊丝中文字幕 | 天堂中文字幕在线观看 | 99午夜| 日本在线黄色 | 国产精品天天爽夜夜欢张柏芝 | 中文字幕一区二区三区有限公司 | 欧美日韩一区二区三区视频在线观看 | 好大好硬好爽免费视频 |