Unity3D 导出的apk进行混淆加固、保护与优化原理(防止反编译)

news2025/1/12 16:07:44

目录

前言:

准备资料:

正文:

1:打包一个带有签名的apk

2:对包进行反编译

3:使用ipaguard来对程序进行加固


前言:

对于辛辛苦苦完成的apk程序被人轻易的反编译了,那就得不偿失了,这篇文章就是解决Unity打包出来的包进行代码加固和混淆。

准备资料:

1:Obfuscator.zip  作用是代码混淆,是Unity的一个插件

2:Apkdb.rar    作用是反编译apk,做过修改之后回编译成修改好的apk

3:Reflector_8.5.0.179_XiaZaiBa.zip 作用是反编译代码,方便查看代码

4:IPAguard.exe 作用是对包进行重新签名和对apk的加固

以上文件下载地址:IpaGuard官网--IOS 应用程序ipa文件混淆加密保护工具

正文:

1:打包一个带有签名的apk

在打包Player Settings设置里面,需要对签名重新设置,签名可以理解成为一个证书,可以设置密码信息,保证一部分的程序安全,据说在Unity5.0对程序的安全有了初步保障,有一个默认的签名。但是个人习惯还是使用自己的签名为好,如下图:

以上都设置好之后,Alias下拉框选项就会多出一个选项,此时就是需要创建的签名了

点击 Create a new key之后,如图,填写所需要的信息,就可以创建了新的签名了,新的签名一定要保存好,这个东西对于程序加固还有作用。如图所示

我是保存到桌面上了

然后正常发布自己的包就可以了

2:对包进行反编译

接下来就要用到上面介绍的各种工具了,首先使用的是Apkdb反编译工具,首先解压出来,这是一个安装包,解压之后,需要进行对其安装,最好是关闭杀毒软件,安装界面是一个dos界面,

选择1 简体中文就可以了,输入1   然后回车继续安装

安装过程中,会提示你需要安装Java,当然,对于已经打包出包来说,这些肯定已经配置了,如果还没有配置,则需要配置Java环境了,当然,还有Android的SDK的配置,这个请自行搜索,网上很多教程,这里就不多说了,如图所示:

按任意键继续  就开始安装程序了,等待安装完毕后,会有一个选项,这里选择1或2都可以,我选择1

然后会让你选择安装器,这个选择哪个都行,我选择N

然后需要你重启电脑,因为要配置鼠标右键的功能

重启后,右键自己发布出来的apk,你会发现多了一些东西,这些东西都是有用的

点击APKDB编译,就准备开始对apk进行反编译

这里选择1  于是就开始反编译了,编译完成后,就在同级目录下生成一个文件夹,这就是反编译出来的文件

然后就开始对代码的混淆了

3:使用ipaguard来对程序进行加固

代码加固是进一步保护应用的一种方式,通常通过特定平台来对应用进行加固处理。

这边以ipaguard为例,目前还在免费阶段,想薅羊毛的快快试试。

Ipa Guard是一款功能强大的ipa混淆工具,不需要ios app源码,直接对ipa文件进行混淆加密。可对IOS ipa 文件的代码,代码库,资源文件等进行混淆保护。 可以根据设置对函数名、变量名、类名等关键代码进行重命名和混淆处理,降低代码的可读性,增加ipa破解反编译难度。可以对图片,资源,配置等进行修改名称,修改md5。只要是ipa都可以,不限制OC,Swift,Flutter,React Native,H5类app。

所以就要使用到混淆器,混淆器是把里面的代码变量等信息进行重命名,这样可读性会变得非常差,接着,

到这里,我们完成了对代码的混淆,但是还没有进行加固,防止反编译,所以,请往下看

然后导入自己的包就可以了,这里是流水式的走下来,所以只需要导入和导出就可以了,

添加单个文件,选择好刚刚混淆后的包,然后你做的事情就是等,等待上传完--加固完--下载完--已完成,当到已完成的时候,说明这里已经可以导出了,导出需要前面提到的自己创建的签名,这里可是会用到的,如果不用,则包安装包可能会出现问题

选择导出签名包,选择签名文件,输入密码,然后点击开始导出

导出的包是经过混淆,经过加固比较安全的包了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1274648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎样成为一名出色的汽车销售?

要成为一名杰出的汽车销售,需要掌握以下几个重要要素: 首先,坚实的知识储备是必不可少的。你需要熟悉汽车的基本构造、市场动态以及竞争对手的最新动态。此外,对各种汽车配置和功能的深入理解将使你能够更好地向客户解释和推荐适…

使用C语言创建高性能爬虫ip网络

之前写的python和GO语言的爬虫ip池的文章引起很大反响,这次我将以C语言来创建爬虫IP池,但是因为其复杂性,可能代码并非完美。但是最终也达到的想要的效果。 因为在C语言中创建代理IP池可能会比较复杂,且C语言并没有像Python那样的…

深度学习——激活函数汇总

深度学习——激活函数汇总 一、ReLU 一、ReLU 参考资料: https://zhuanlan.zhihu.com/p/428448728

html/css中位置position的绝对位置absolute顺时针盒子案例图片排序

目标图片&#xff1a; Dreamweaver界面&#xff1a; 代码部分&#xff1a; <!doctype html> <html> <head> <meta charset"utf-8"> <title>无标题文档</title> <style type"text/css">.red{background-color:r…

【带头学C++】----- 九、类和对象 ---- 9.1 类和对象的基本概念----(9.1.4---9.1.6)

目录 9.1.4 设计立方体类 ​编辑 9.1.5 成员函数在类的外部实现 9.1.6 类在其他源文件的实现步骤&#xff08;实现类在不同文件的实现&#xff0c;后续引出构造函数&#xff09; 注意:类定义在同文件testclass.h中&#xff0c;而testclass.cpp是用来实现&#xff08;声明&…

【redis】[windows]redis安装以及配置等相关

前言&#xff1a;下载安装配置密码、远程访问等等 目录 一、下载 二、配置文件说明 1、bind 1.1 这个参数默认值是127.0.0.1&#xff0c;也就是只允许redis所在机器访问redis。 1.2 如果我们的应用服务和redis服务不在一个机器我们就需要修改这个参数为0.0.0.0&#xff0c…

春秋云镜 CVE-2022-30887

春秋云镜 CVE-2022-30887 多语言药房管理系统 (MPMS) 靶场介绍 多语言药房管理系统 (MPMS) 是用 PHP 和 MySQL 开发的, 该软件的主要目的是在药房和客户之间提供一套接口&#xff0c;客户是该软件的主要用户。该软件有助于为药房业务创建一个综合数据库&#xff0c;并根据到期…

SpringBoot整合Activiti7——错误事件(十一)

文章目录 错误事件开始事件边界事件结束事件代码实现开始事件xml文件测试流程流程执行步骤 边界与结束事件xml文件自定义错误监听器测试流程流程执行步骤 错误事件 好像都是中断的。非中断没测出来&#xff01;&#xff01;&#xff01; <!-- 定义错误 --> <error id&…

基于Python Flask 的全流程全栈项目自己的实战心得

我基于Python Flask框架开发全流程全栈项目的实战经验和心得。我将介绍整个项目的架构设计、前后端交互、数据库管理以及部署等方面&#xff0c;并提供具体的代码示例。通过这个实例项目&#xff0c;你将学习到如何使用Flask构建一个完整的Web应用&#xff0c;并了解一些常见的…

关于PFMEA的风险评估都在这里——SunFMEA软件

1、评价严重度 严重度应该独立于发生度和探测度的评价&#xff0c;不能认为发生概率低或者探测能力强&#xff0c;失效就不会到达顾客手中&#xff0c;不会造成糟糕的失效影响&#xff0c;严重度就低。 其实&#xff0c;严重度评估的是已经识别的失效链的严重程度&#xff0c…

Cesium 加载倾斜摄影模型记录(osgb切片,shp拔高切片、模型加载、鼠标移入选中、点选查询功能)

一、shp模型拔高切片 shp如果数据量过大,做分类处理,加载会异常慢,所以需要先对其进行分割之后再进行切片(用qgis即可) 切片规则设置 1、记得勾选构造底面 2、如果你的shp数据中有高度字段的话,可以选择高度字段,如果没有的话,设置固定高度的高度比你的模型稍微高一点…

Vue语音播报,不用安装任何包和插件,直接调用。

Vue语音播报功能可以通过使用浏览器提供的Web Speech API来实现。这个API允许你的应用程序通过浏览器朗读文本&#xff0c;不用安装任何包和插件&#xff0c;直接调用。以下是一个简单的介绍&#xff0c;演示如何在Vue中使用语音提示功能&#xff1a; 一、JS版本 <template…

Java 多线程基础 线程4种创建方式

目录 什么是进程什么是多线程使用多线程的好处使用多线程的应用场景单线程与多线程之间的区别如何理解线程上下文切换使用多线程真的开启越多越好吗线程4种创建的方式1.继承Thread类2.使用Runnable3.使用Callable4.线程池的方式 多线程五种的状态如何优雅的停止一个线程 什么是…

实用篇 | Base64详解及代码示例

本文主要讲解了在http等协议传输过程中的base64编码~ 目录 1.什么是Base64&#xff1f; 2.什么是 Base64 编码&#xff1f; 3.编码规则 4.Base64 编码的作用 5.python中base64库 5.1.将一个mp3文件编码为Base64字符串 5.2.在Flask api设置时&#xff0c;以base64编码的…

TA-Lib学习研究笔记——Cycle Indicators (七)

TA-Lib学习研究笔记——Cycle Indicators &#xff08;七&#xff09; Cycle Indicators 周期指标函数组有HT_DCPERIOD, HT_DCPHASE, HT_PHASOR, HT_SINE, HT_TRENDMODE 。 1.HT_DCPERIOD Hilbert Transform - Dominant Cycle Period 函数名&#xff1a;HT_DCPERIOD 名称&am…

功能上新 | 搅拌车智能接料 防拉错 防溢出

据说99%的搅拌站都发生过这样的“糟心事”&#xff1a;驾驶员一恍惚进错了拌台、车还没停好位置就开始放料、放料一不小心就溢出、料没接完车先走了... 面对这样的事故&#xff0c;搅拌站通常的应对都是“下次要注意”。但我们都知道&#xff0c;是人都会犯错&#xff0c;这无…

简化客服系统运营的无代码集成方法,达钛科技助您实现客户运营和广告推广

无代码开发&#xff1a;简化电商与客服系统集成 在数字经济时代&#xff0c;电商平台和客服系统的高效集成对企业的成功至关重要。传统的系统集成往往依赖复杂的API开发&#xff0c;既耗时又费力。达钛科技致力于通过无代码开发的方式&#xff0c;提供简单直观的解决方案&…

Kettle 浅入浅出

前言 最近又要迭代客户定制化的数据处理系统了。提到数据处理&#xff0c;不禁想到了以前使用过的 ETL 处理工具 Kettle。本文将对 Kettle 做一些简单的介绍。 Kettle 介绍 在介绍 Kettle 前先了解下什么是 ETL&#xff0c;ETL 是 Extract-Transform-Load 的缩写&#xff0c…

【opencv】计算机视觉基础知识

目录 前言 1、什么是计算机视觉 2、图片处理基础操作 2.1 图片处理&#xff1a;读入图像 2.2 图片处理&#xff1a;显示图像 2.3 图片处理&#xff1a;图像保存 3、图像处理入门基础 3.1 图像成像原理介绍 3.2 图像分类 3.2.1 二值图像 3.2.2灰度图像 3.2.3彩色图像…

A++ 敏捷开发-1 如何改善

1 如何改善 敏捷开发过程改进案例 5月 A公司一直专门为某电信公司提供针对客服、线上播放等服务服务。 张工是公司的中层管理者&#xff0c;管理好几个开发团队&#xff0c;有5位项目经理向他汇报。 他听说老同学的团队都开始用敏捷开发&#xff0c;很感兴趣&#xff0c;便参…