一:情景分析

有时候看到其他应用App的一些效果很炫,或者是功能实现很好就想着参考参考,于是乎,下载APK----反编译APK---查看源码。。。。,但是悲剧来了。。。。源码都是些a,b,c。。。等等这样的东东,根本啥都看不明白,后来了解到这是程序的作者保护自己劳动成果的“手段”,于是乎

自己就想咱也试着“保护一下”自己的劳动成果吧,至此开启了“Android混淆代码”的旅程

二:初始

了解到Android混淆代码这个名词以后,于是乎 百度。。谷歌。。。,哇哦

看来大家都已经掌握了这门技能了(自己落后了。。。。),介绍此技能的技术文档,博客是一大批一大批的啊。。。。于是乎

自己找了一个相对详细的教程开始学习

三:实践

根据以上教程的介绍,混淆代码方法有两种,一种是低版本的混淆,一种是高版本的混淆

鉴于自己的版本是高版本的,因此就实践了高版本的混淆

按照教程步骤如下:

1:打开project.properties

哇哦 一大段英文。。。。。。 不过仔细阅读 还是可以懂滴,看到一句这样的话

意思是说 想要混淆代码 就将下面那句话取消注释,于是乎 咱就取消注释呗。教程中有说要将配置信息放在target=android-8之后

,至此简单的混淆代码就完成了(前人种树,后人乘凉啊)

在搜索Android混淆代码的知识点时,也有一些比较深层次的内容,比如如果项目引入了第三方库,该怎样混淆,如果自己将自己的项目作为第三方库给别人使用,又怎样混淆.鉴于自己还没有涉及这方面的知识,所以就暂且不深入学习,只做个大概了解(知识是无穷无尽的。。。。。)

四 扩展

在调查Android混淆代码的时候,看到了一个工具:APKProtect

虽然文档标题是混淆工具,不过因为我在实践的时候,发现它并没有提到混淆的作用,于是乎询问了作者,作者说这个不是混淆工具,是加密工具,目前只做了Activity,service,reciver的加密,加密的通俗意思是:反编译apk之后,就看不到Activity,service,reciver这些class文件了

接下来呢 就是咱们动手实践的时间了

下载APKProtect这个工具,下载完成后解压,看到

双击打开.exe文件

选择将要加密的apk,不做任何设置,工具会自动命名之后保存的加密的apk名字,你也可以自己命名

点击protect按钮,然后等待,出现process done 对话框之后

至此 加密工作完成,反编译一下 瞧瞧 哇哦 Activity没有了!!!话说

还不能高兴的太早,将加密后的文件运行到Android手机上 See See ,咦。。。。不幸的事情发生了。。。。。

不能安装,提示信息是证书有问题,后来询问了作者,作者说加密的apk要重新在签名一次并且需要设置

于是乎打开工具,在主界面看到了Protection option ,里面有一些设置信息,既然安装apk时

说是我们的签名有问题,那就设置我们的签名,因为我用的是自己自定义的签名所以进入设置界面,进行相关设置,然后保存,再加密文件

在填写设置信息中,要填写keystore的相关信息,因为keystore创建很久了,一些信息忘记了,于是乎

要查看keystore的相关信息怎么查看呢,百度。。。谷歌。。。。

查看Keystore相关信息:

在命令行中,到jdk/bin文件下 然后输入

keytool -list -v -keystore (keystore的位置)

就可以看到相关信息了

扩展,怎样生成自定义的keystore

在命令行中, 到jdk/bin文件下 然后输入

keytool -genkey -alias android.keystore -keyalg RSA -validity

20000-keystore android.keystore

-alias 密钥别名

-keyalg 密钥算法

-validity 密钥有效期

总结:既然在加密apk的时候要重新签名APK,那么我们可以在Eclipse导出apk时,先不签名,然后在加密的时候在签名

五:感想

至此呢,我们就给APK加了“双层保护”,也保护了我们的劳动成果!完美收工

android命令行工具 混淆,Android 混淆代码学习以及Android加密工具--APKProtect的使用ZZ...相关推荐

  1. 【Android 命令行工具】Android 命令行工具简介 ( 官方文档 | SDK 命令行工具 | SDK 构建工具 | SDK 平台工具 | 模拟器工具 | Jetifier 工具 )

    文章目录 一.官方文档 二.Android 命令行工具简介 1.SDK 命令行工具 2.SDK 构建工具 3.SDK 平台工具 4.模拟器工具 5.Jetifier 工具 一.官方文档 Android ...

  2. 【错误记录】记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )

    文章目录 前言 一.Android 命令行与 PC 可执行 JAR 文件不兼容 二.Android 命令行使用 dalvik 命令不能直接执行 Kotlin 编译的 dex 文件 前言 尝试在 And ...

  3. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )

    文章目录 一.Android 命令行中获取要调试的应用进程的 PID 二.进程注入调试进程内存的 so 库 一.Android 命令行中获取要调试的应用进程的 PID 前置博客 [Android 逆向 ...

  4. android的命令行使用,Android命令行启动程序正确使用技巧解析

    Android程序启动的方式除了使用界面方式进行启动之外,还能通过命令行启动.那么就让我们大家一起来看看Android命令行启动程序的具体操作方法. Android应用程序的启动方法有许多种,大家可以 ...

  5. Android命令行启动应用方法

    Android命令行启动程序正确使用技巧解析 Android程序启动的方式除了使用界面方式进行启动之外,还能通过命令行启动.那么就让我们大家一起来看看Android命令行启动程序的具体操作方法. An ...

  6. 将blast等工具的命令行写入到biopython的代码脚本中

    biopython: Bio.Application package全面解析 将生物信息学工具(blast,muscle,bwa,samtool等)的命令行写入到biopython的代码脚本中 大家好 ...

  7. 在window的cmd命令行中通过chcp修改代码页--正确显示utf-8字符

    Mt8616的开发板通过adb工具可以在Windows系统的cmd命令行显示出debug信息,但是mt8516开发板的系统上是移植的裁剪的linux系统,也就是里面的文件是utf-8的编码形式,不能正 ...

  8. [crypto]-53-openssl命令行的使用(aes/rsa签名校验/rsa加密解密/hmac)

    常用技巧 如何编写一个二进制规律性的文件, 比如你可以编写一个"0123456789abcdef"的文本文件,记得删除换行符然后用ultraedit打开,ctrl+H就可以看到二进 ...

  9. Android命令行工具logcat详细用法!

    logcat是Android中一个命令行工具,可以用于得到程序的log信息. 见板凳详细说明!      本贴内容来自网络,引用网址为:http://hi.baidu.com/%C9%C1%D2%AB ...

最新文章

  1. 使用ultraedit和cl编译器打造简易c/c++开发环境
  2. ThinkPHP URL模式和URL重写
  3. centos6.8防火墙模块未加载
  4. IOS UI 第三篇:基本UI
  5. C# 判断两个日期是否是同一天
  6. python内置函数type_Python基于内置函数type创建新类型
  7. 计算机专业 学习路线
  8. Windows磁盘格式、分区格式及类型
  9. 上海瀚示中文彩显拣货标签 智能仓储物流工匠级革新
  10. 【海思3798系列机顶盒NAS分区表修改软件】
  11. android 下载保存视频到本地相册刷新 机型适配问题
  12. 3.3 Options
  13. TOJ4309 表达式求值 stack
  14. 在大学里要作的20件事
  15. STM32F103芯片 LQFP100封装引脚分布
  16. MySQL最全整理!高级java开发工程师面试题
  17. harrier 查看查看服务器状态,机油尺检查细节多多,嘉普力汽配工场教你如何正确查看机油尺...
  18. JWK和JWKs的格式
  19. php - 超详细将 pdf 文档格式转换为图片格式,将 offce pdf 演示文稿转成图像 png / jpg(小白一看就懂的详细教程,附带完整示例源代码)
  20. panda 满足条件的行 index_丽江自由行: 我如何安排我从广州到丽江的行程?

热门文章

  1. 让VSCode的快捷键切换为WebStorm/IDEA的快捷键、修改颜色主题(深色模式)、文件图标主题
  2. ATS 6.2.1中缓存文件过期并不回源校验的“坑”
  3. shell --- awk规范 系统总结
  4. 二叉树:路径之和 Path Sum
  5. vectorbool不是容器
  6. [Tracking] KCF + KalmanFilter目标跟踪
  7. 【.Net】vs2017 自带发布工具 ClickOnce发布包遇到的问题
  8. 数据库 大数据访问及分区分块优化方案
  9. 第二阶段第三次站立会议
  10. 深入JDK源码,这里总有你不知道的知识点!