当前位置:首页 > 数码 > 代码混淆与强化-提升移动应用安全性的有力方法 (代码混淆原理)

代码混淆与强化-提升移动应用安全性的有力方法 (代码混淆原理)

admin8个月前 (04-11)数码2972

代码混淆是指将计算机程序的代码转换成一种功能上等价,但是难于阅读和理解的形式的行为。它通常用于保护源代码不被未经授权的人员窃取或修改。

代码混淆常见手段

名称混淆

将有意义的类、字段和方法名称更改为无意义的字符串。生成的新名称越短,字节代码越小。在名称混淆的字节代码中,包、类、字段和方法名称已重命名,并且永远不能恢复原始名称。

流混淆

用于 if、switch、while、for 等关键字,对字节码进行细微的修改,模糊控制流,而不改变代码在运行时的行为。通常情况下,选择和循环等逻辑构造会被更改,因此它们不再具有直接等效的源代码。流模糊的字节码通常强制反编译器将一系列标签和非法的 goto 语句插入到它们生成的源代码中。源代码有时会因为反编译错误而变得更加模糊。

其他异常混淆
  • 字符串加密混淆
  • 引用混淆
  • 等等

代码混淆的作用

代码混淆不仅可以保护代码,还有精简编译后程序大小的作用。由于缩短变量和函数名以及丢失部分信息的原因,编译后 jar 文件体积大约能减少 25%,这对当前费用较贵的无线网络传输是有一定意义的。

代码混淆可能带来的问题

  • 被混淆的代码难于理解,因此调试以及除错也变得困难起来。
  • 开发人员通常需要保留原始的未混淆的代码用于调试。
  • 代码混淆与强化
  • 对于支持反射的语言,代码混淆有可能与反射发生冲突。
  • 代码混淆并不能真正阻止反向工程,只能增大其难度。因此,对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证源代码的安全。

常用的混淆工具

ipaguard

ipaguard 是一款免费的 Java 混淆器(非开源),它有 Java 和两个版本。yGuard 完全免费,基于 Ant 任务运行,提供高可配置的混淆规则。官网地址: ipaguard 官网

proguard

proguard 是一个免费的 Java 类文件的压缩、优化、混肴器。它删除没有用的类、字段、方法与属性。使字节码最大程度地优化,使用简短且无意义的名字来重命名类、字段和方法。官网地址: proguard 官网

allatori

第二代 Java 混淆器。所谓第二代混淆器,不仅仅能进行字段混淆,还能实现流混淆。官网地址: allatori 官网

本文主要介绍基于 ipaguard 如何进行混淆

ipaguard 入门

1. 首先需要去官网下载: ipaguard 官网 2. 下载的 jar 可以放到项目可以读到的地方。比如项目根目录,形如下图: ![ipaguard 下载图](ipaguard_download.png) 3. 解压安装包,双击运行 ipa 编译出来后,或者 ipa 进行修改后,需要进行重新签名才能安装到测试手机,或者提交 store 供 Apple 商店审核上架。ipaguard 有签名和重签名功能,能在 Windows、Linux 和 Mac OS X 上运行。在对 ipa 进行混淆和保护后,可以直接通过签名安装到测试手机,非常的方便测试检查混淆后的效果。

第一阶段:测试和配置尝试阶段

配置好要混淆的内容后直接点击处理安装到手机,这阶段使用开发测试证书,测试描述文件。描述文件要包含测试设备的 udid 才能安装到设备。

第二阶段:发布阶段

当测试 ok,运行没问题后把测试证书和描述文件改成发布证书和发布描述文件,点击处理后产生最终的 ipa,发布类型无法安装到手机,只能提交上架发布使用

打开要处理的 IPA 文件

![导入 IPA 文件图](import_ipa_file.png) 第一项,填写我们需要重签名的 ipa 路径(当前导入的路径跟导出的路径)

设置签名使用的证书和描述文件

测试配置阶段使用开发测试证书,方便安装到手机测试混淆后 ipa 是否工作正常,测试 ok,最后准备上架的时候再改成发布证书和发布描述文件 如果 ipa 需要特殊的权限配置,可以使用权限配置文件 如果希望直接处理完后安装到设备,则勾选安装到设备选项 苹果手机数据线连接电脑即可识别设备,如果链接成功后没显示设备,则先安装 itunes 或者 ios 驱动

目前对APP安全加固操作,会对应用兼容性带来多大影响?

加固一般是对dex等核心代码文件进行加壳混淆处理,肯定是会影响兼容性的,具体多大要看加固后的真机优化测试了,推荐下海云安的无壳加固技术,不做加壳处理,对兼容性影响可以忽略不计。

移动会话校验是什么意思?

移动会话校验是指在移动网络中对会话的合法性进行验证的一种方法。 由于移动网络的特殊性,网络层次多、技术上限制较多等因素,会话校验显得尤为重要。 一般来说,移动会话校验可以保障用户个人隐私和数据安全,有效防止非法的网络攻击以及保证数据传输的完整性。 因此,移动会话校验成为了移动网络管理中不可或缺的一部分。 移动会话校验的原理是基于数据加密技术和数字证书技术,通过对数据进行加密和密钥验证,建立合法用户和服务器之间的认证和授权关系,从而实现数据加密和认证的目的。 此外,移动会话校验还可以建立安全通道,加密用户数据传输过程中的数据包,有效保障用户数据的安全性。 加密技术和数字证书技术的应用有效提高了移动会话校验的安全性和可靠性。 在实际应用过程中,移动会话校验不断进行优化升级。 例如,移动网络运营商可以结合黑名单、白名单、限流等技术手段,对非法攻击进行监控和限制。 移动应用开发商也可以通过代码混淆、反调试等技术手段,提高移动应用的安全性和可靠性。 总之,随着移动网络的不断发展和技术的不断创新,移动会话校验将得到更加广泛的应用。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: 混淆加固