刷朋友圈、玩游戏、看新闻,智能手机正在以我们无法想象的速度飞快发展,可是随之而来的安全问题也越来越引人关注,APP二次打包、反编译、盗版的现象屡见不鲜。因此须要对APK进行加固保护。

眼下市面上常见的APK保护方式主要有图片有益破坏、伪加密、APK包破坏。可是这些方式的保护效果都存在局限性:图片有益破坏在老版本号的APK tool上面可行,在最新版本号的APK tool就不可行;伪加密的加密方式和解密方式也早已发布导致它的安全程度大大减少;APK包破坏会在个别市场不能识别而导致不能上传,而且使用压缩文件修复工具也能把它修复好导致所做的保护消失。

以下,小编就来解析一下APK高级保护的第三种方式——花指令

花指令是程序中有一些指令,由设计者特别构思,希望使反汇编的时候出错,让破解者无法清楚正确地反汇编程序的内容,迷失方向。“花指令”这个词来源于汇编语言,它的思想是很不错的,它的还有一个目的就是利用反编译工具漏洞。来使工具无法使用。

接下来。我们就在JAVA代码处制“花指令”,让反编译工具(jd-gui)无法反编译查询你的JAVA代码。jd-gui的bug事实上挺多了。非常多特殊代码块或者字段集都可以让其崩溃无法反编译出源代码。

比方:

private static final char[] wJ = "0123456789abcdef".toCharArray();

public static String imsi = "204046330839890";

public static String p = "0";

public static String keyword = "电话";public static String tranlateKeyword = "%E7%94%B5%E8%AF%9D";

在每一个类里面增加如上字段,你会发现反编译的类通过jd-gui查看后的结果例如以下:

再来看一下爱加密的三层保护技术。即DEX加壳保护、DEX指令动态载入保护、高级混淆保护。能够保证APP的动态安全和静态安全,黑客将没有机会进行不论什么破解。爱加密更在年前推出了SO库保护,C/C++层面的代码得到了专业保护。

爱加密还能够通过对APK包进行精准的安全检測分析,极大的节省了APP开发人员自身对APP漏洞分析投入的时间、精力。

之后可对APP提供一个全方位的加密保护服务并进行实时的渠道监測和信息反馈,更好保护app开发人员的权益不被侵害。

分享:APK高级保护方法解析(三)的更多相关文章

  1. Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件

    Fixflow引擎解析(四)(模型) - 通过EMF扩展BPMN2.0元素 Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件 Fixflow引擎解析(二)(模型) - BPMN ...

  2. 2019-2-20C#开发中常用加密解密方法解析

    C#开发中常用加密解密方法解析 一.MD5加密算法 我想这是大家都常听过的算法,可能也用的比较多.那么什么是MD5算法呢?MD5全称是 message-digest algorithm 5[|ˈmes ...

  3. Javascript创建对象几种方法解析

    Javascript创建对象几种方法解析 Javascript面向对象编程一直是面试中的重点,将自己的理解整理如下,主要参考<Javascript高级程序设计 第三版>,欢迎批评指正. 通 ...

  4. Java高级面试题解析(二):百度Java面试题前200页(精选)

    基本概念 操作系统中 heap 和 stack 的区别 heap是堆,stack是栈,是两种不同的数据结构.堆是队列优先,先进先出:栈是先进后出. 在java多线程中,每个线程都有自己的栈:不同的线程 ...

  5. uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式

    前言: 关于H5的调用Android原生方法的方式有很多,在该片文章中我主要简单介绍三种与Android原生方法交互的方式. 一.H5+方法调用android原生方法 H5+ Android开发规范官 ...

  6. 编写高质量JS代码的68个有效方法(三)

    [20141030]编写高质量JS代码的68个有效方法(三) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...

  7. iOS 详解NSXMLParser方法解析XML数据方法

    前一篇文章已经介绍了如何通过URL从网络上获取xml数据.下面介绍如何将获取到的数据进行解析. 下面先看看xml的数据格式吧! <?xml version="1.0" enc ...

  8. JavaScript高级程序设计(第三版)学习,第一次总结

    Array类型 var arr = []; arr.length; //返回数组元素个数 改变length可以动态改变数组大小 检测数组 instanceof可以检测某个对象是否是数组,限制:只能是一 ...

  9. Method Resolution Order – Python类的方法解析顺序

    在支持多重继承的编程语言中,查找方法具体来自那个类时的基类搜索顺序通常被称为方法解析顺序(Method Resolution Order),简称MRO.(Python中查找其它属性也遵循同一规则.)对 ...

随机推荐

  1. C++变量和基本类型

    1. 如何选择类型的准则 当明确知晓数值不可能为负的时候,应该选择无符号类型. 使用int执行整数运算的时候,在实际应用中,short常常显得太小而long一般和int有一样的尺寸,如果数值超过了in ...

  2. ios operationqueue

    http://www.hrchen.com/2013/06/multi-threading-programming-of-ios-part-2/

  3. RTP/RTCP协议详解

    1.简介 目前,在IP网络中实现实时语音.视频通信和应用已经成为网络应用的一个主流技术和发展方向,本文详细介绍IP协议族中用于实时语音.视频数据传输的标准协议RTP( Real-time Transp ...

  4. Socket通信时服务端无响应,客户端超时设置

    背景:在写一个客户端的socket程序,服务端没有返回消息,客户端一直在等待. 目标:我需要设置一个时间,如果超过这个时间客户端自动断开连接.最好是在服务端实现,客户端对我来说不可控.

  5. 含有通配符*的字符匹配(C语言)

    含有通配符的字符匹配,采用贪心算法 //1 -> true //0 -> false int IsMatch(const char* reg, const char *str) { int ...

  6. 简单DP内容

    1. 最长上升子序列 [题目描述] 给定N个数,求这N个数的最长上升子序列的长度. [样例输入] 7 2 5 3 4 1 7 6 [样例输出] 4 第一种解法:时间复杂度O(n^2), 状态设计:DP ...

  7. 【开发工具安装配置】MyEclipse,Tomcat,Mysql安装配置

    配置步骤 注:以下路径仅供参考! 一.MyEclipse10 1. 1 破解版破解说明: (1)下载安装好Myeclipse,先不要运行. (2)打开破解工具目录下的cracker.jar文件或run ...

  8. apidoc利用代码注释书写文档

    个人博客同步文章 https://mr-houzi.com/2018/07/... apidoc是一款利用源代码中注释来创建RESTful Web API文档的工具.apidoc可用于C#,Go,Da ...

  9. Python3--中括号"[]"与冒号":"在列表中的作用

    先来定义两个列表: liststr = ["helloworld","hahahh","123456"] listnum = [1,2,3, ...

  10. Python 模块学习(一)

    一.时间模块 import time # 模块调用语句 注意:模块级导入一般放在文件顶部 import datetime print(time.time()) # 1550411181.441547: ...