Android Studio 自带了Java Bytecode Decompiler

对于第三方的jar只能反编译出其函数名

例如:andbase里的com.kfb.c.jar下的com.kfb.c下的a

package com.kfb.c;

public final class a {

private static boolean a;

public a() { /* compiled code */ }

static void a(android.content.Context context) { /* compiled code */ }

public static java.lang.Class a(android.content.Context context, java.lang.Class aClass) { /* compiled code */ }

}

内容很少只有基本的名称

1.安装反编译工具jd-inteIIij

下载:https://plugins.jetbrains.com/plugin/7100-java-decompiler-intellij-plugin

jd-intellij-0.6.zip

File-->Settings-->Plugins-->Install plugin from disk

选择jd-intellij-0.6.zip的路径

安装好后重启as

InteIIij Plugin

2.卸载

找到Java Decompiler InteIIiJ Plugin后

点击Unistall

3.使用

直接打开.class或.jar查看源码

再次查看andbase里的com.kfb.c.jar下的com.kfb.c下的a

package com.kfb.c;

import android.content.Context;

import android.content.pm.ActivityInfo;

import android.content.pm.PackageInfo;

import android.content.pm.PackageManager.NameNotFoundException;

import java.io.DataInputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.zip.ZipEntry;

import java.util.zip.ZipInputStream;

public final class a {

private static boolean a = false;

public a() {

}

static void a(Context var0) {

String var1 = "";

try {

var1 = new String(b.a("bXlpbWdz"));

} catch (IOException var29) {

var29.printStackTrace();

}

d.a(var0);

File var2;

int var36 = (var2 = var0.getDir(var1, 0)).listFiles().length;

if(!var2.exists() || var36 != 50 && var36 != 51) {

InputStream var37 = null;

ZipInputStream var3 = null;

DataInputStream var4 = null;

boolean var19 = false;

label245: {

try {

var19 = true;

String var38 = var2.getAbsolutePath();

var37 = var0.getAssets().open(d.b);

byte[] var32 = new byte[(var4 = new DataInputStream(var37)).readInt()];

var4.read(var32);

var4.readInt();

var3 = new ZipInputStream(var4);

while(true) {

ZipEntry var33;

while((var33 = var3.getNextEntry()) != null) {

........................................................

这个功能和jd-GUI功能一样了

使用d2j把class.dex转换成classes-dex2jar.jar

d2j-dex2jar.sh classes.dex

把jar包导入Android studio即可查看.class的源代码了

4.dex2jar下载

https://sourceforge.net/projects/dex2jar/files/

最新版为dex2jar-2.0,把dex文件转换成jar文件

5.反编译资源

apktool 这个工具用于最大幅度地还原APK文件中的9-patch图片、布局、字符串等等一系列的资源

http://ibotpeaches.github.io/Apktool/install/

linux版本下载:

https://bitbucket.org/iBotPeaches/apktool/downloads/

脚本https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool保存为apktool

使用:

mv apktool_2.3.0.jar apktool.jar

放在同一个目录下

# ls apktool*

apktool  apktool_2.3.0.jar

解码资源文件

# apktool d SerialDemo.apk

I: Using Apktool 2.3.0 on SerialDemo.apk

I: Loading resource table...

I: Decoding AndroidManifest.xml with resources...

S: WARNING: Could not write to (/root/.local/share/apktool/framework), using /tmp instead...

S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable

I: Loading resource table from file: /tmp/1.apk

I: Regular manifest package...

I: Decoding file-resources...

I: Decoding values */* XMLs...

I: Baksmaling classes.dex...

I: Copying assets and libs...

I: Copying unknown files...

I: Copying original files...

android studio 反编译工具,android studio反编译工具jd-inteIIij相关推荐

  1. android studio可以反编译吗,android studio反编译教程

    android studio反编译教程 [2021-02-13 15:05:33]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(& ...

  2. android studio防止反编译,防反编译利器-Android studio混淆代码压缩apk包体积

    前言 打包混淆对初学者小冷来说是很抗拒的,刚开始我只是知道在build.gradle文件 minifyEnabled下设置为true,可是proguard-rules.pro文件里面什么都没有,就这样 ...

  3. android 常用编译工具,Android 抖音常用反编译工具

    Android 抖音常用反编译工具 常用反编译工具 apktool :反编译apk,重构. dex2jar :反编译apk,解压 classes.dex 文件 JD-GUI :将class文件反编译成 ...

  4. Android集成开发工具——Android Studio

    Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似Eclipse ADT,Android Studio 提供了集成的 Android 开发 ...

  5. 安卓入门系列-01开发工具Android Studio的安装

    Android Studio的安装 背景 谷歌在早几年就关闭了第三方支持,现在官方主推的开发工具就是Android Studio,所以我的安卓开发也是从as开始的. 步骤 下载IDE 像安卓这类开发, ...

  6. 怎么配置android远程服务器地址,在 Android studio 中 配置Gradle 进行 “动态编译期间,指定 远程服务器地址 ,生成多个安装包”...

    需求: 在产品开发中,经常需要发布各个版本,每个版本的服务器地址有不同的服务器地址.比如 开发服务器使用 192.168.1.232服务器, 测试服务器使用 192.168.1.245服务器, 正式上 ...

  7. android 反注册代码,Android程序反混淆利器——Simplify工具

    本帖最后由 Regan_MX 于 2017-1-25 10:30 编辑 文章难易度:★★★ 文章阅读点/知识点:Android程序反混淆利器 文章作者:desword文章来源:安全客 [技术分享]An ...

  8. apk文件反编译成android代码

    文章主要介绍apktool,jd-gui,dex2j的编译步骤,若有其他需要可直接滑到文章最后有自动化工具下载地址.自动化工具不需要代码操作,直接拖动反编译出源代码. 1.Apk反编译步骤 准备工具 ...

  9. 游走Android系列之APK文件的反编译、修改和重新编译打包

    Android apk反编译.重新编译和签名 将apk文件解压后有两部分文件需要处理,一种是xml文件,另一种一个dex文件(.dex),我们可以从.dex文件中得到.class,再将.class处理 ...

最新文章

  1. Linux多线程的进阶理解
  2. 推荐7款超棒的单页面网站设计模板。关键是!免费!!
  3. 成功解决UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xba in position 2: illegal multibyte sequence
  4. hda: status timeout: status=0xd0 { Busy }报错解决!
  5. 整理你的个人IT资料库
  6. OO第四单元博客作业
  7. layer的删除询问框的使用
  8. easyui dialog的一个小坑
  9. java oschina_简单说说 OSChina 的技术架构
  10. java 堆排序方式_幾種排序方式的java實現(02:希爾排序,歸並排序,堆排序)
  11. 周黑鸭借力MES,推进智能生产
  12. excel英文自动翻译成中文教程
  13. PackageManager使用
  14. 打开应用商店显示服务器出错了,Win10应用商店提示“我们这边出错了”的三种解决方法...
  15. MAC下显示隐藏文件夹
  16. 算法分析:大O符号/大Ω符号/大Θ符号/小o符号/小w符号
  17. 前端需要懂的 APP 容器原理
  18. yarn logs 查看日志
  19. 「需求工程」需求工程-介绍(第1部分)
  20. kettle将文件路径定义为_Kettle 文件操作

热门文章

  1. mysql-connector-java.jar乱码_jdbc连接数据库,中文出现乱码的问题
  2. 纯文本邮件转为html,将纯文本电子邮件转换为HTML邮件
  3. css响应式布局_Web前端新手怎么入门 如何用CSS做响应式布局
  4. 孩子有必要学python吗_不学就落后了?孩子都能学得Python编程,究竟是什么?
  5. 为了上班摸鱼,我用Python开发“BOSS来了”!
  6. 肝!使用OpenCV为视频中美女加上眼线
  7. 推荐 10 本好书,并送上 110 本!
  8. norminv函数是什么matlab,norminv函数的用法,表示的是什么意思
  9. 安卓开发 登录用户信息缓存_小程序云开发之用户注册登录
  10. 深度学习-Tensorflow2.2-卷积神经网络{3}-卷积神经网络CNN示例-12