以下情况不适于腾讯云乐固、360加固、爱加密等第三方工具对apk加固过的应用,防止反编译二次打包

反编译(未混淆情况)

1.获取资源文件:

命令行界面apktool.bat d -f  test.apk  fileName  (然而修改后缀名为.zip即可获得);

apktool2.0以上版本:apktool.bat d -f  test.apk -o fileName, 有些apk编译失败,可尝试把apktool.jar升级到2.0以上

2.获取源代码:

提取apk -> zip 中的classes.dex文件:dex2jar.bat   classes.dex 获得classes_dex2jar.jar文件

使用 jd-gui.exe查看jar文件查看源码(另外可以用Eclipse反编译插件查看)

3.查看xml文件

aapt d xmltree filepath/..apk  xmlname :  以树型显示apk中某个xml文件

工具下载:链接: http://pan.baidu.com/s/1o6CHvAi 密码: it6s

4.二次打包

apktool.bat b fileName (打包apk放在dist目录),生成到apk并不能安装,需要重签名才能安装

5.重签名

工具:keytool,jarsigner和zipalign这三个工具软件。keytool和jarsigner包含在JDK中,zipalign包含在Android SDK中,环境配置:JAVA_HOME,ANDROID_HOME

生成密钥:keytool -genkey -v -keystore xuhui-key.keystore -alias xuhui-key -keyalg RSA -keysize 2048 -validity 10000

重签名:

jarsigner -verbose -keystore demo.keystore -signedjar test_signed.apk test.apk mykey

注:jarsigner在jdk/bin目录

6.Eclipse jar文件反编译插件

7.修改class文件

反编译后往往得到的是.class文件,通过class反编译为java文件通常容易出错,不如直接修改class文件 ,推荐试用工具:jclasslib

1.装打开jar-然后找到需要修改的class文件或者直接打开jar解压文件中的class文件,

2.使用java bytecode (jclasslib) 查找到要修改的变量地址

3.新建一个工程进行修改:

package com.xuh;

import java.io.*;

import org.gjt.jclasslib.io.ClassFileWriter;
import org.gjt.jclasslib.structures.CPInfo;
import org.gjt.jclasslib.structures.ClassFile;
import org.gjt.jclasslib.structures.constants.ConstantDoubleInfo; public class ModifyByteCode {
public void Run() {
try {
String filePath = "C:\\Test.class";//需要修改的class文件
FileInputStream fis = new FileInputStream(filePath);
DataInput di = new DataInputStream(fis);
ClassFile cf = new ClassFile();
cf.read(di);
CPInfo[] infos = cf.getConstantPool();
int pos = 123;//变量地址
if (infos[pos] != null) {
ConstantDoubleInfo uInfo = (ConstantDoubleInfo) infos[pos];
uInfo.setDouble(1.0);
infos[pos] = uInfo;
}
cf.setConstantPool(infos);
fis.close();
File f = new File(filePath);
ClassFileWriter.writeToFile(f, cf);
} catch (Exception e) { }
}
}

参考链接

Android反编译的更多相关文章

  1. Android反编译(三)之重签名

    Android反编译(三) 之重签名 [目录] 1.原理 2.工具与准备工作 3.操作步骤 4.装X技巧 5.问题 1.原理 1).APK签名的要点 a.所有的应用程序都必须有数字证书 ,Androi ...

  2. Android反编译(二)之反编译XML资源文件

    Android反编译(二) 之反编译XML资源文件 [目录] 1.工具 2.反编译步骤 3.重新编译APK 4.实例 5.装X技巧 6.学习总结 1.工具 1).反编译工具  apktool http ...

  3. Android反编译(一)之反编译JAVA源码

    Android反编译(一) 之反编译JAVA源码 [目录] 1.工具 2.反编译步骤 3.实例 4.装X技巧 1.工具 1).dex反编译JAR工具  dex2jar   http://code.go ...

  4. Atitti.java android反编译解决方案-----虚拟机方案

    Atitti.java android反编译解决方案-----虚拟机方案 哈哈,终极解决方案是虚拟机...c++也可以反编译为汇编代码,但无需担心,因为读懂汇编太麻烦..只要不能拿到c++源码就可.. ...

  5. Android反编译工具的使用-Android Killer

    今天百度搜索“Android反编译”搜索出来的结果大多数都是比较传统的教程.刚接触反编译的时候,我也是从这些教程慢慢学起的.在后来的学习过程中,我接触到比较方便操作的Android反编译.在这,我将使 ...

  6. Android 反编译

    Android 反编译 步骤:1.下载apktool 工具,这一步 主要是反编译 xml 文件. 步骤:2 把xx.smali 文件转为java 工具 (单个) 图形界面 下载dex2jar  和xj ...

  7. 转 谈谈android反编译和防止反编译的方法

    谈谈android反编译和防止反编译的方法   android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原. 因此开发人员如果不准备开源自己的项 ...

  8. Android 反编译apk 详解

    测试环境: win 7 使用工具: CSDN上下载地址: apktool (资源文件获取)  下载          dex2jar(源码文件获取) 下载        jd-gui  (源码查看)  ...

  9. Android 反编译工具简介

    Android 反编译工具: 所需工具:1 apktool : 用于获取资源文件 2 dex2Jar : 用于将classes.dex转化成jar文件 2 jd-gui: 将jar文件转化成java文 ...

  10. Android反编译教程

    本文摘自 http://blog.csdn.net/ithomer/article/details/6727581 本文Android反编译教程,测试环境: Win7 Ultimate x64 Ubu ...

随机推荐

  1. Python入门笔记(15):对文件的操作(1)

    一.文件对象 我理解的文件对象就是一个接口,通过这个接口对文件进行相关操作. <Python 核心编程>上说的很晦涩,这里没有深刻理解到,希望有人能解释给我听. >>> ...

  2. WPF,给颜色SolidColorBrush添加动画

    /// <summary> /// 设置颜色动画 /// </summary> /// <returns></returns> private Soli ...

  3. C# ObjectCache、OutputCache缓存

    /// <summary> /// 缓存操作类 /// </summary> public class Cache { private static List<strin ...

  4. sql多行转一行,以逗号隔开

    --SELECT ff= stuff((select ','+cast(WorkOrderNo as varchar)-- FROM dbo.TB_WorkOrder c -- where tpl.P ...

  5. Run python as a daemon process

    I am using `&`: why isn't the process running in the background?     No problem. We won't show y ...

  6. java之StringBuilder类详解

    StringBuilder 非线程安全的可变字符序列 .该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍).如果可能,建议优先采用该类,因为在 ...

  7. HDU 2577---How to Type

    HDU  2577 Description Pirates have finished developing the typing software. He called Cathy to test ...

  8. AngularJs Cookie 的使用

    最新在学习 AngularJs ,发现网上很难搜到 AngularJs.Cookie 教程, 就自己写篇博客,希望能帮到刚学的人. 废话不多说上代码 首先要引用 angular-cookies.js ...

  9. IE11出现“__doPostBack未定义”的解决办法。

    方法一:浏览器设置成兼容模式,这个是超级掩耳盗铃方法,你就没想过其他人也会出这个问题. 方法二.安装服务器版的.Net40的补丁.http://download.csdn.net/detail/565 ...

  10. Ansible用于网络设备管理 part 1 Jinja2 YAML初窥

    这一次的实验内容依然来自Kirk Byers的博客,源地址在https://pynet.twb-tech.com/blog/python/paramiko-ssh-part1.html 但是,这次实验 ...