Android应用安全防护和逆向分析 ——apk混淆成其他语言代码
现在很多人对于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混淆成其他语言代码的更多相关文章
- android黑科技系列——Apk混淆成中文语言代码
一.前言 最近想爆破一个app,没有加壳,简单的使用Jadx打开查看源码,结果把我逗乐了,代码中既然都是中文,而且是一些比较奇葩的中文字句,如图所示: 瞬间感觉懵逼了,这app真会玩,我们知道因为Ja ...
- Android应用安全防护和逆向分析 ——apk反编译
概述 最近一直在学习Android应用安全相关和逆向分析的知识.现在移动app在安全方面是越来越重视了,特别是那些巨头企业涉及到钱的应用,那加密程度,简直是丧心病狂,密密麻麻.从这里可以看出,对于应用 ...
- Android开发学习之路--逆向分析反编译
一般情况下我们想要了解别人的app怎么实现这个动画,这个效果的时候,总是会想到反编译一下,看下布局,看下代码实现.对,这对于有经验的玩家确实手到擒来了,但是初学者,根本就不知道怎么反编译,怎么看代 ...
- 从Android设备中提取内核和逆向分析
本文博客链接:http://blog.csdn.net/qq1084283172/article/details/57074695 一.手机设备环境 Model number: Nexus 5 OS ...
- RE-1 逆向分析基础
逆向分析基础 0x01-0x0C 本笔记使用汇编指令为x86架构下汇编指令,ARM架构汇编指令不做介绍 0x01. 关于RE 逆向工程(Reverse Engineering RE) 逆向分析方法: ...
- Android逆向分析(2) APK的打包与安装背后的故事
前言 上一次我们反编译了手Q,并遇到了Apktool反编译直接crash的问题,虽然笔者很想在这次解决这个问题,但在解决途中,发现该保护依赖于很多知识,所以本次先插入一下,正所谓知其然知其所以然,授之 ...
- Android逆向分析(2) APK的打包与安装
http://blog.zhaiyifan.cn/2016/02/13/android-reverse-2/ 2/18日增加对aidl和java编译的描述. 前言 上一次我们反编译了手Q,并遇到了Ap ...
- Android动态逆向分析工具ZjDroid--脱壳神器
项目地址:https://github.com/BaiduSecurityLabs/ZjDroid 前提条件: 1.Root手机一部 2.须要通过Xposed installer( http://dl ...
- 【Bugly干货分享】手把手教你逆向分析 Android 程序
很多人写文章,喜欢把什么行业现状啊,研究现状啊什么的写了一大通,感觉好像在写毕业论文似的,我这不废话,先直接上几个图,感受一下. 第一张图是在把代码注入到地图里面,启动首页的时候弹出个浮窗,下载网络的 ...
随机推荐
- 4.spring对象的创建(静态工厂 实例工厂 泛型,嵌套类型)
1.原料类 namespace CreateObjects{ public class GenericClass<T> { }} PersonDao 类 包含嵌套类型 name ...
- ELMAH 使用
之前大部分系统日志记录是使用log4net.ObjectGuy Framework.NLog 等工具记录到文本或数据库. 更强大的工具可以使用 ELMAH. ELMAH(The Error Loggi ...
- 利用ajaxSubmit()方法实现Form提交表单后回调
1. 背景 最近在工作中,需要实现网页端图片上传到FTP服务器的功能.上传文件是用Form表单提交数据的方法向后台传输文件流,在此遇到了一个问题:后台在处理完图片上传功能后,需要向前台回传是 ...
- 2018.10.13 bzoj1070: [SCOI2007]修车(费用流)
传送门 费用流经典题目. 自我感觉跟TheWindy′sThe Windy'sTheWindy′s很像. 利用费用提前计算的思想来建图就行了. 代码: #include<bits/stdc++. ...
- 2018.08.31 bzoj1419 Red is good(期望dp)
描述 桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付 出1美元.可以随时停止翻牌,在最优策略下平均能得到多少钱. 输入 一行输入两个数R,B,其 ...
- 21 Survival of Desert Life 沙漠生命的延续
Survival of Desert Life 沙漠生命的延续 ① Some desert animals can survive the very strong summer heat and dr ...
- IntellJ IDEA javax.servlet.ServletException 找不到javax.servlet.ServletException的类 java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
误状态:错误显示 解决: (1)说明缺少包---->添加如下包配置 <dependency> <groupId>javax.servlet.jsp</groupId ...
- 为UITextView添加通知..来检测UITextView内容的改变
self.mTextView =[[UITextView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH - 100, 28)]; se ...
- 团队作业第四周(HCL盐酸队)——项目冲刺(第一篇)
任务认领情况: 1.坦克类实现:李密,卢泰佑 2.子弹类,线程类实现:黄国航 赖少勇 3.画笔类,地图的实现:陈舒标 黄宇航 明日任务安排: 今天在通过已经购买的GUI书籍的帮助下,已经实现了界面的 ...
- 【Win10】页面的导航效果
CommonNavigationTransitionInfo ContinuumNavigationTransitionInfo DrillInNavigationTransitionInfo Ent ...