首页 > 其他分享 >【教程】源代码加密、防泄密软件

【教程】源代码加密、防泄密软件

时间:2023-12-15 15:35:52浏览次数:27  
标签:info 混淆 教程 界面 文件 泄密 代码 -- 源代码

 【教程】源代码加密、防泄密软件

什么是代码混淆?

代码混淆 是一种将应用程序二进制文件转换为功能上等价,但人类难于阅读和理解的行为。在编译 Dart 代码时,混淆会隐藏函数和类的名称,并用其他符号替代每个符号,从而使攻击者难以进行逆向工程。

Flutter 的代码混淆功能仅在IPA文件上生效,不需要源码。

局限性

请注意,混淆你的代码并 不会 加密资源,也不能防止逆向工程。它只是用更晦涩的名称重命名这些符号。

info

在应用程序中存储重要私密的信息(如密码、密钥等)是一种 非常不安全的做法

支持的构建目标

以下构建目标支持本篇介绍的混淆过程:

  • aar

  • apk

  • appbundle

  • ios

  • ios-framework

  • ipa

  • linux

  • macos

  • macos-framework

  • windows

info

Web 应用不支持混淆。因为当你构建 Flutter Web 应用发布版本时, Web 应用已经经过了 压缩 处理。 Web 压缩提供了与混淆相似的效果。

混淆你的应用程序

要混淆你的应用程序,请在 release 模式下使用 flutter build 命令,并使用 --obfuscate 和 --split-debug-info 选项。 --split-debug-info 选项指定了 Flutter 输出调试文件的目录。在混淆的情况下,它会输出一个符号表。请参考以下命令:

$ flutter build apk --obfuscate --split-debug-info=/<project-name>/<directory>

 

 

一旦你混淆了二进制文件,请务必 保存符号表文件。如果你将来需要解析混淆后的堆栈跟踪,你将需要该文件。

tips_and_updates 小提示:

--split-debug-info 选项也可以不使用 --obfuscate 来提取 Dart 程序符号,以减少代码体积。想了解更多关于应用体积的信息,请查阅 测量你的应用体积

关于这些标志的详细信息,请运行特定构建目标类型的帮助命令,例如:

$ flutter build apk -h

 

 

如果输出中没有列出这些标志,请运行 flutter --version 命令,检查你的 Flutter 版本。

 

加固流程:

ipaguard界面概览

ipaguard界面分左右2块:左边菜单导航栏,右边的功能区左侧菜单:按模块分成启动界面,代码模块,文件模块,重签名与测试模块右侧主功能区会随着功能变化,但是整体分3块,顶部显示过滤区,中间主体内容显示区,底部开关控制和强度控制下面分模块介绍ipaguard功能界面。

ipaguard启动界面

这个界面可以选中打开文件,从配置加载文件,切换软件显示的语言,登录账号,查看软件的版本信息等 

 

 

 

 

ipaguard代码混淆界面

代码混淆界面随左侧的菜单不同略有区别。但是整体是,顶部选择需要处理的macho文件,然后是一排显示过滤控制功能。 

 

 

 

 

资源文件混淆界面

资源文件模块包括了文件名称修改,web资源压缩,图片水印等等功能。界面分顶部的显示控制,中介的文件列表,底部的是否处理开关。 

 

 

 

 

重签名界面

签名配置界面可以配置签名证书,描述文件,设置app的权限(次功能大部分app是用不到的),设置混淆加密完是否要直接安装到设备。底部同样是是否进行签名的总开关

 

 

 

 

标签:info,混淆,教程,界面,文件,泄密,代码,--,源代码
From: https://www.cnblogs.com/gddg/p/17903456.html

相关文章

  • 5分钟学会传世架设教程传世一条龙
    10分钟架设一个传世游戏教程传世一条龙1、将YMserver压缩包上传到服务器并解压缩到D盘:最终目录为D:\YMserver2、安装环境文件夹里面的所有文件npp.7.8.2.Installer.exe运行库MSVBCRT.AIO.2020.04.10.X86+X64.exe3、游戏IP:199.199.199.199全部替换为你的外网IP包含了以下文件,我已......
  • 无涯教程-Java - isWhitespace()函数
    该方法确定指定的char值是否为空格,包括空格,制表符或换行符。isWhitespace()-语法booleanisWhitespace(charch)这是参数的详细信息-ch  - 原始字符类型。isWhitespace()-返回值如果传递的字符确实是空格,则此方法返回true。isWhitespace()- 示例publiccla......
  • 无涯教程-Java - isDigit()函数
    该方法确定指定的char值是否为数字。isDigit()-语法booleanisDigit(charch)这是参数的详细信息-ch  - 原始字符类型。isDigit()-返回值如果传递的字符确实是数字,则此方法返回true。isDigit()-示例publicclassTest{publicstaticvoidmain(String......
  • ubuntu下完全卸载重装docker教程
    操作需在管理员权限下运行卸载docker1.删除docker的所有包apt-getautoremovedockerdocker-cedocker-enginedocker.iocontainerdrunc2.查看docker是否卸载干净dpkg-l|grepdockerdpkg-l|grep^rc|awk'{print$2}'|sudoxargsdpkg-P3.删除相关插件apt-......
  • SAP报表简明教程
    SAP报表简明教程 一、报表需求,根据物料编码和物料类型查询报表。用户输入界面要求如下:  二、开始写代码。先进入TCODE:SE38,新建一个程序。   点击创建按钮,如下图:   输入标题,写明此程序的功能作者,创建时间,点保存,  输入自己事先建的开发包,  点击......
  • Go语言编程教程4-枚举
    课程要点了解Golang中的枚举自定义枚举值跳过某个枚举值枚举的常用惯例了解fmt.Stringer接口Golang中的枚举在Golang中并没有像其他语言一样,拥有类似于enum的常规枚举类型,而是通过使用一组常量来实现类似枚举的功能。如下所示,我们定义了三个常量来表示状态语义的枚举值......
  • Go语言编程教程3-变量与常量
    课程要点了解Golang中的变量的使用了解Golang中的常量的使用了解变量和常量的可访问性变量定义变量Golang是一门十分简约的语言,它的变量定义与其他主流语言有一定的相似之处,但是却没有像其他语言一样拥有很多可选的修饰符。在Golang的变量定义中,我们只会用到var这一个修......
  • Go语言编程教程2-Hello World
    课程要点创建并编译运行第一个Golang程序了解GoModule包管理系统使用fmt.Println与println函数分别打印helloworld,并了解它们的异同了解fmt.Printf格式化输出将Golang代码编译为汇编代码对Golang二进制文件进行反汇编了解交叉编译课程内容创建项目按照Go语言的约定,......
  • 无涯教程-Java - acos()函数
    该方法返回指定双精度值的反余弦值。acos()-语法doubleacos(doubled)这是参数的详细信息-d - 双精度数据类型。acos()-返回值此方法返回指定双精度值的反余弦。acos()-示例publicclassTest{publicstaticvoidmain(Stringargs[]){double......
  • 无涯教程-Java - asin()函数
    该方法返回指定双精度值的反正弦值。asin()-语法doubleasin(doubled)这是参数的详细信息-d - 双精度数据类型。asin()-返回值此方法返回指定双精度值的反正弦。asin()-示例publicclassTest{publicstaticvoidmain(Stringargs[]){doub......