现在很多人对于app的安全是越来越重视了,尤其是金融相关的行业,对于app的防范可是下足了功夫。各种加固,各种加密算法,层出不穷。我个人觉得,在安全技术这块,没有绝对安全的。也许今天这个技术起到了防范作用,但是也许一段时间后,就有人把这个技术给破解了。所以说如果我们可以给对方破解我们的app增加难度,那也是起到了一个很大的防护功能了。

我们每个app在上线的时候,都会进行代码混淆。将一些类名,包名,方法名等等混淆成大小写字母的形式,即使对方反编译出我们的app,如果进行了混淆,那些对方看到的代码将会是这个样子的,如何反编译?可以看看这篇文章:https://www.cnblogs.com/huangjialin/p/10039704.html

这样的代码读取的难度就大大的增加了。由于英文字符是全世界通用,在加上目前市场上大部分的app都是这样混淆的,所以说在反编译后都去代码,基本上都有一定的心得了,所以说难度相比于以前大大的减弱了。那么能不能混淆成其他语言呢?

我们知道Java语言是支持双字符的,所以可以将包名,类名,变量名,方法名定义成中文,或者其他国家的语言都可以的。也就是说我们可以将包名,类名,方法名命名为其他语言,比如中文,英文,法文等等。

 package com.hjl.proguardchinese;

 import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log; public class 测试 extends AppCompatActivity {
String 黄家磷 = "我叫黄家磷"; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("huangjialin","--------->" + 黄家磷);
}
}

结果:

 2019-02-22 14:31:44.813 18913-18913/? D/huangjialin: --------->我叫黄家磷

言归正传,我们继续说混淆,要想了解混淆的原理,那得看源码。而混淆架包proguard.jar又是开源的。

项目地址:https://sourceforge.net/projects/proguard/需要翻墙。将项目导入,运行,当然还需要其他一些资源包,大家自行下载。

具体的可以参考这篇文章:https://blog.csdn.net/jiangwei0910410003/article/details/61618945

当然,上面那种修改proguard源码来实现混淆成其他语言,也是可以实现的,不过这里,说一种更加简单的方式。

在项目目录下也就是和proguard-rules.pro同目录下新建一个txt文件

然后在该文件夹中加入对应的语言,如果想混淆成中文,你就加中文,如果你想混淆成其他语言你就加其他语言。

然后在proguard-rules.pro文件中加入下面三行代码,完成

 -obfuscationdictionary proguard_huangjialin.txt
-classobfuscationdictionary proguard_huangjialin.txt
-packageobfuscationdictionary proguard_huangjialin.txt

注意,如果文件中有-optimizations开头的,请把该行注释掉,到这里就完成了。我这里弄了藏文,反正我也看不懂,看看效果

看看中文的效果

 

 

Android应用安全防护和逆向分析 ——apk混淆成其他语言代码的更多相关文章

  1. android黑科技系列——Apk混淆成中文语言代码

    一.前言 最近想爆破一个app,没有加壳,简单的使用Jadx打开查看源码,结果把我逗乐了,代码中既然都是中文,而且是一些比较奇葩的中文字句,如图所示: 瞬间感觉懵逼了,这app真会玩,我们知道因为Ja ...

  2. Android应用安全防护和逆向分析 ——apk反编译

    概述 最近一直在学习Android应用安全相关和逆向分析的知识.现在移动app在安全方面是越来越重视了,特别是那些巨头企业涉及到钱的应用,那加密程度,简直是丧心病狂,密密麻麻.从这里可以看出,对于应用 ...

  3. Android开发学习之路--逆向分析反编译

      一般情况下我们想要了解别人的app怎么实现这个动画,这个效果的时候,总是会想到反编译一下,看下布局,看下代码实现.对,这对于有经验的玩家确实手到擒来了,但是初学者,根本就不知道怎么反编译,怎么看代 ...

  4. 从Android设备中提取内核和逆向分析

    本文博客链接:http://blog.csdn.net/qq1084283172/article/details/57074695 一.手机设备环境 Model number: Nexus 5 OS ...

  5. RE-1 逆向分析基础

    逆向分析基础 0x01-0x0C 本笔记使用汇编指令为x86架构下汇编指令,ARM架构汇编指令不做介绍 0x01. 关于RE 逆向工程(Reverse Engineering RE) 逆向分析方法: ...

  6. Android逆向分析(2) APK的打包与安装背后的故事

    前言 上一次我们反编译了手Q,并遇到了Apktool反编译直接crash的问题,虽然笔者很想在这次解决这个问题,但在解决途中,发现该保护依赖于很多知识,所以本次先插入一下,正所谓知其然知其所以然,授之 ...

  7. Android逆向分析(2) APK的打包与安装

    http://blog.zhaiyifan.cn/2016/02/13/android-reverse-2/ 2/18日增加对aidl和java编译的描述. 前言 上一次我们反编译了手Q,并遇到了Ap ...

  8. Android动态逆向分析工具ZjDroid--脱壳神器

    项目地址:https://github.com/BaiduSecurityLabs/ZjDroid 前提条件: 1.Root手机一部 2.须要通过Xposed installer( http://dl ...

  9. 【Bugly干货分享】手把手教你逆向分析 Android 程序

    很多人写文章,喜欢把什么行业现状啊,研究现状啊什么的写了一大通,感觉好像在写毕业论文似的,我这不废话,先直接上几个图,感受一下. 第一张图是在把代码注入到地图里面,启动首页的时候弹出个浮窗,下载网络的 ...

随机推荐

  1. 第三章 RNA测序

    第三章 RNA测序   RNA测序(RNA Sequencing,简称RNA-Seq,也被称为全转录物组鸟枪法测序Whole Transcriptome Shotgun Sequencing,简称WT ...

  2. Windows10 Virtualization Technology虚拟化技术功能

    为什么要开启VT功能,做机器学习环境搭建.运用Docker容器等等,所以首先要确认一下机器是否已经开启了VT技术功能,以此记录一下经历而已. VT是什么?为什么要开启VT?VT是一种虚拟化技术,可以扩 ...

  3. Response.Redirect原理图解

  4. 【JS】判断浏览器类型

    判断原理 JavaScript是前端开发的主要语言,我们可以通过 编写JavaScript程序来判断浏览器的类型及版本.JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性 ...

  5. 面向对象先修:Java入门

    学习总结 在C语言和数据结构的基础上,在上暑期的面向对象Java先修课程时,熟悉语言的速度明显加快了很多.Java和C在很多基础语法上非常相似,比如基本的数据类型,循环以及条件分支语句,数组的遍历等. ...

  6. redis与ssm整合(用 redis 替代mybatis二级缓存)

    SSM+redis整合 这里主要是利用redis去做mybatis的二级缓存,mybaits映射文件中所有的select都会刷新已有缓存,如果不存在就会新建缓存,所有的insert,update操作都 ...

  7. Django入门与实践-第15章:用户注销(完结)

    # myproject/settings.py LOGOUT_REDIRECT_URL = 'home' http://127.0.0.1:8000/logout/ # myproject/urls. ...

  8. 解决Docker时区与主机时区不一致的问题

    在Dockerfile里面增加以下红色的部分 FROM hub.chinacloud.com/common/jdk:8MAINTAINER xxx@chinacloud.com.cn RUN mkdi ...

  9. 创建template模板

    创建一个自己常用的快捷键的模板. 1.选择window-->preferrence--搜索temp--java 2.点击new 3.根据自己的习惯起一个名字 4.比如syso 5.语法不会,就找 ...

  10. HDU 1050 Moving Tables (贪心)

    题意:在一个走廊两边都有对称分布的连续房间,现在有n张桌子需要从a移动到b房间.每次移动需要10分钟, 但是如果两次移动中需要经过相同的走廊位置,则不能同时进行,需要分开移动.最后求最少需要多长时间移 ...