天天看点

Java代码实现apk自动化解包和压包

Android OS现在非常流行,恶意APK层出不穷,相信看到这篇文章的同志们肯定多多少少是对apk的逆向有所了解,本人在这里利用其它大神已经写好的工具,实现了apk自动化解包与压包的过程.

package cugNewAir;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;

import brut.androlib.AndrolibException;
import brut.androlib.ApkDecoder;
import brut.common.BrutException;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		ApkDecoder decoder = new ApkDecoder();
		File apk = new File("HelloWorld.apk");
		decoder.setApkFile(apk);
		
		File out = new File("HelloWorld");
		try {
			decoder.setOutDir(out);
		} catch (AndrolibException e) {
			e.printStackTrace();
		}
		
		try {
			decoder.decode();
		} catch (AndrolibException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		System.out.println("Decoder Done!");
		
		Androlib_V2 androlib = new Androlib_V2();
		HashMap<String, Boolean> flags = new HashMap<String, Boolean>();
		flags.put("forceBuildAll", true);
		flags.put("debug", false);
		flags.put("verbose", false);
		flags.put("injectOriginal", false);
		flags.put("framework", false);
		flags.put("update", false);
		
		File reapk = new File("Hello.apk");
		try {
			androlib.build(out, reapk, flags, null, "aapt.exe");
		} catch (BrutException e) {
			e.printStackTrace();
		}
		
		System.out.println("Repackage Done!");
	}
}
           

主要就是decoder函数和bulid函数,并不难,最后赠送大家一份apktool源码生成的说明文档,利用doxygen生成.

最后赠送大家一份apktool源码的说明文档,doxygen生成.

源码链接:http://yunpan.cn/QIIjijQwHicLK

apktool说明文档链接:http://yunpan.cn/QIIwsPkUCfwC4