当前您所在的位置:首页>开发控件 版本控制 >开发控件

DASHO FOR ANDROID&JAVA

DASHO FOR ANDROID&JAVA

产品概述

反编译 Java或Android Apps的容易性

所有Java和Android应用程序和库都被编译为字节码,用来维护有关代码的高级信息,包括其结构和类、字段、方法、属性和参数名称。使用反编译器,很容易重新创建源代码。模糊处理和相关的硬化和屏蔽技术可以使黑客或竞争对手更加难以对您的应用进行逆向工程。

为什么在您的应用程序上使用Java Obfuscator或Android Obfuscator?

应用程序在手机上以及工作场所内,并为我们所依赖的业务和服务提供支持——毫无意外,这些应用程序也成为网络犯罪分子、企业竞争对手和敌对国家想要破解许可证的受青睐的目标,窃取有价值的知识产、商业秘密和机密数据,并攻击关键基础设施。通过使您的应用程序更难以进行逆向工程,您可以帮助防范知识产权(商业秘密)窃取,绕过许可或其他访问检查,以及搜索漏洞并获取数据访问。

如何提供帮助?

我们提供PreEmptive Protection——DashO作为世界级久经考验的Java、Kotlin和Android应用程序模糊和屏蔽工具。DashO提供智能应用程序保护和运行时安全控制,可大幅降低这些风险,而无需昂贵的程序员开销或不可接受的应用程序性能或质量。

被动保护包括:

主动保护包括将自动侦测、纠正和报告控件注入到:

高品质防止黑客和盗贼侵入

产品功能

保护您的Java, Kotlin and Android 应用程序

重命名

重命名改变了方法、变量等的名称,使得源代码更难理解。DashO使用更深层次的模糊处理——Overload Induction™,由PreEmptive Solutions获得专利。Overload Induction将尽可能多的方法重命名为同名,而不是为每个旧名称替换一个新名称。在这种更深层的混淆之后,逻辑虽然没被破坏,却是超出理解的。以下简单示例说明了Overload Induction技术的功能:

源代码模糊处理前

Overload Induction 模糊处理后的逆向工程源代码

private void CalcPayroll (SpecialList employeeGroup) {

   while(employeeGroup.HasMore()) {

      employee = employeeGroup.GetNext(true);

      employee.UpdateSalary();

      DistributeCheck(employee);

   }

}

private void a(a b) {

   while (b.a()) {

      a = b.a(true);

      a.a();

      a(a);

   }

}

 

控制流

传统的控制流模糊处理引入了假条件语句和其他误导性构造,以便混淆和中断反编译器。该过程合成了产生有效的转发(可执行)逻辑的分支、条件和迭代结构,但在尝试反编译时产生非确定性语义结果。控制流模糊处理产生错综复杂的逻辑,这对于解密高手来说是非常困难的。

DashO采用先进的控制流模糊处理。除了添加代码结构,DashO还可以通过销毁反编译器用来重新创建源代码的代码模式。最终结果是在语义上等同于原始代码的代码,但不包含代码最初写入的线索。即使开发出高度先进的反编译器,其输出也将是凭猜测所做。

 

源代码模糊处理前

控制流模糊处理后的逆向工程源代码

public int CompareTo(Object o) {

   int n = occurrences –

   ((WordOccurrence)o).occurrences;

   if (n == 0) {

      n = String.Compare(word,((WordOccurrence)o).word);

   }

   return(n);

}

public virtual int _a(Object A_0) {

   int local0;

   int local1;

   local 10 = this.a – (c) A_0.a;

   if (local0 != 0) goto i0;

   while (true) {

      return local1;

      i0: local1 = local10;

   }

   i1: local10 = System.String.Compare(this.b, (c) A_0.b);

   goto i0;

}

 

字符串加密

DashO允许您隐藏组件中存在的用户字符串。常见的攻击者技术是通过查找二进制内的字符串引用来定位关键代码段。例如,如果您的应用程序处于时间锁定状态,则可能会在超时到期时显示一条消息。攻击者在反汇编或反编译输出中搜索这个消息,他们将非常接近你敏感时间锁算法。

DashO通过允许您加密应用程序敏感部分中的字符串来解决此问题,为此类型的攻击提供了有效的屏障。

由于字符串加密会导致轻微的运行时惩罚,除非您指定的应用程序的部分,否则不执行字符串加密。

水印

水印通过将版权信息或唯一标识号等数据嵌入到.NET应用程序中而不影响其运行时行为,帮助您将软件未经授权的副本回溯到来源。 DashO的水印算法不会增加应用程序的大小,也不会引入可能会破坏应用程序的额外元数据。

修剪

小应用程序下载速度更快,安装速度更快,加载速度更快,运行更快。DashO的修剪功能静态分析您的代码以找到未使用的类型、方法和字段,并将其删除。Dotfuscator在处理MSIL文件时还会从MSIL文件中删除调试信息和非必要元数据,从而使应用程序更小,并减少攻击者可用的数据。

篡改检测及防护

DashO注入代码,它在运行时验证应用程序完整性。如果它检测到篡改,它可以关闭应用程序,调用随机崩溃(伪装崩溃是篡改检查的结果),或执行任何其他自定义操作。对于使用PreEmptive Analytics的客户,它还可以向服务发送消息,指示已检测到篡改。

SHELF LIFE

Shelf Life是一种应用程序库存管理功能,可让您将到期或取消激活以及通知逻辑嵌入到应用程序中。DashO通过退出应用程序和/或发送PreEmptive Analytics Service消息来注入响应应用程序到期的代码。此功能对于beta或评估应用程序特别有用。用户可以安排应用程序在特定日期到期/取消激活,并可选择向用户发出应用程序在特定天数内到期/停用警告。

 

北京哲想软件有限公司