Android反编译(一)之反编译JAVA源码
Android反编译(一)
之反编译JAVA源码
[目录]
1、工具
1).dex反编译JAR工具
2).JAVA反编译工具
JD-GUI http://jd.benow.ca/
2、反编译步骤
步骤2:解压zip包得到classes.dex
命令: CMD>dex2jar.bat classes.dex
3、实例
步骤1:把apk文件后缀名改为.zip

步骤2:解压zip包得到classes.dex

步骤3:将Dex反编译为Jar包(工具:dex2jar)

步骤4:用jd-gui查看反编译的jar包


注:jd-gui可将JAR,保存为JAVA源文件的*src.zip,需要看.java,解压即可。
4、装X技巧
以下介绍两种装X技巧:
一)装X初级篇:
简化步骤3,每次打开CMD,手敲dex2jar.bat classes.dex,痛苦了、太痛苦了...
1).在dex2jar目录下,新建[反编译.bat]文件,输入
[反编译.bat]
2).第三步直接双击运行[反编译.bat]文件即可
二)装X境界进阶篇
简化反编译成JAR所有步骤(步骤1、2、3),只需拷贝APK到目录,小手双击一下bat,自动完成。
1).目录结构

2).新建BAT文件
【反编译Dex2Jar】.bat
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
REM 作者:Findyou
REM 时间:2013.12.09
REM Dex2jar工具目录名
SET DEX2JAR_NAME=dex2jar-0.0.9.15
SET C_PATH=%CD%
FOR %%I IN (*.apk) DO (
ECHO [反编译 %%I]
ECHO ================================
ECHO [创建与APK同名的临时文件夹]
REM 创建文件夹,如果已存在则先删除
SET SRT=%%I
RD /S /Q %%I_temp 2>nul
DEL !SRT:~0,-4!-dex2jar.jar 2>nul
MD %%I_temp
REM 复制反编译的apk文件到同名的文件夹中
ECHO [复制需反编译APK至临时文件夹]
COPY %%I %%I_temp 1>nul
REM 进入同名的文件夹
CD %%I_temp
ECHO [解压APK: %%I]
JAR -xf %%I
SET SRT=%%I
REM 重命名文件
REN classes.dex !SRT:~0,-4!.dex
REM 移动dex到Dex2jar文件夹中
ECHO [移动Dex文件到Dex工具目录中]
MOVE !SRT:~0,-4!.dex ../%DEX2JAR_NAME%
REM 进入Dex2jar文件夹
CD %C_PATH%\%DEX2JAR_NAME%
ECHO [执行反编译]
CALL d2j-dex2jar.bat !SRT:~0,-4!.dex ECHO [移动!SRT:~0,-4!-dex2jar.jar 到源APK目录]
MOVE *-dex2jar.jar ../ 1>nul
ECHO [删除临时文件]
CD %C_PATH%
DEL %DEX2JAR_NAME%\*.dex
RD /S /Q %%I_temp
ECHO [反编译完成]
ECHO --------------------------------
ECHO.
)
PAUSE
@ECHO ON
3).轻轻的双击【反编译Dex2Jar】.bat,自动反编译,是不是很爽...

2013-12-16更新 补充装X技巧进阶篇
转载请注明出处:Findyou
Android反编译(一)之反编译JAVA源码的更多相关文章
- JVM之---Java源码编译机制
Sun JDK中采用javac将Java源码编译为class文件,这个过程包含三个步骤: 1.分析和输入到符号表(Parse and Enter) Parse过程所做的工作有词法和语法分 ...
- 自己动手实现springboot运行时执行java源码(运行时编译、加载、注册bean、调用)
看来断点.单步调试还不够硬核,根本没多少人看,这次再来个硬核的.依然是由于apaas平台越来越流行了,如果apaas平台选择了java语言作为平台内的业务代码,那么不仅仅面临着IDE外的断点.单步调试 ...
- 【JDK命令行 一】手动编译Java源码与执行字节码命令合集(含外部依赖引用)
写作目标 记录常见的使用javac手动编译Java源码和java手动执行字节码的命令,一方面用于应对 Maven 和 Gradle 暂时无法使用的情况,临时生成class文件(使用自己的jar包):另 ...
- Android源码开发利器——Java源码调试(基于4.1.2)
原文地址:http://blog.csdn.net/jinzhuojun/article/details/8868038 调试Android Java源码 草帽的后花园——Neo 写在之前的 ...
- 一个android dex 转java源码工具
和dex2jar,smali2java比起来,这个工具至少结果是正确的,前两者对于循环,异常等的处理明显逻辑就是错误的. 该小工具是基于androguard制作,本来是想自己写一个,后来一找居然有现成 ...
- 从Java源码到Java字节码
Java最主流的源码编译器,javac,基本上不对代码做优化,只会做少量由Java语言规范要求或推荐的优化:也不做任何混淆,包括名字混淆或控制流混淆这些都不做.这使得javac生成的代码能很好的维持与 ...
- 如何阅读Java源码 阅读java的真实体会
刚才在论坛不经意间,看到有关源码阅读的帖子.回想自己前几年,阅读源码那种兴奋和成就感(1),不禁又有一种激动. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 说到技术基础,我打个比 ...
- 如何阅读Java源码
刚才在论坛不经意间,看到有关源码阅读的帖子.回想自己前几年,阅读源码那种兴奋和成就感(1),不禁又有一种激动.源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 说到技术基础,我打个比方吧, ...
- Java 源码学习线路————_先JDK工具包集合_再core包,也就是String、StringBuffer等_Java IO类库
http://www.iteye.com/topic/1113732 原则网址 Java源码初接触 如果你进行过一年左右的开发,喜欢用eclipse的debug功能.好了,你现在就有阅读源码的技术基础 ...
随机推荐
- \(\S2. \)The Ornstein-Uhlenbeck operator and its semigroup
Let \(\partial_i =\frac{\partial}{\partial x_i}\). The operator \(\partial_i\) is unbounded on \(L^2 ...
- 设计模式之美:Type Object(类型对象)
索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):Type Object 的经典介绍. 实现方式(二):Type Object 在游戏设计中的使用. 意图 允许在运行时动态灵活的 ...
- 关于"是否需要有代码规范"的个人看法
这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 我是个艺术家,手艺人,我有自己的规范和原则. 规范不能强求一律,应该允许很多例外. 我擅长制定编码规范,你们听我的 ...
- 《CLR.via.C#第三版》第一部分读书笔记(一)
最近开始仔细研读<CLR.via.C#第三版>这本书.读pdf文档确实很累.建议有条件的朋友还是买书看吧. 我的笔记用来记录我对这本书的理解,简化下逻辑,对每个部分我觉得是要点的进行归纳总 ...
- [SQLServer大对象]——FileTable初体验
阅读导航 启用FILESTREAM设置 更改FILESTRAM设置 启用数据库非事务性访问级别 FileTable 在我接触FileTable之前,存储文件都是存储文件的链接和扩展名到数据,其实并没有 ...
- AngularJS快速入门指南18:Application
是时候创建一个真正的AngularJS单页面应用程序了(SPA). 一个AngularJS应用程序示例 你已经了解了足够多的内容来创建第一个AngularJS应用程序: My Note Save Cl ...
- 删除xcode 里的多余证书
删除xcode 里的多余证书 方法一: command+shift+G 前往文件夹: ~/Library/MobileDevice/Provisioning Profiles 方法二: 进入xcode ...
- CSS3与页面布局学习总结(四)——页面布局大全BFC、定位、浮动、7种垂直居中方法
目录 一.BFC与IFC 1.1.BFC与IFC概要 1.2.如何产生BFC 1.3.BFC的作用与特点 二.定位 2.2.relative 2.3.absolute 2.4.fixed 2.5.z- ...
- 爱上MVC3~在控制器或Action上动态设定模板页(Layout)
回到目录 很多境况下,我们需要设置自己模块的layout,即它的布局页面,在MVC2中叫它模板页面,你可以在return view方法时设置它,当然,这不是一种好方法,因为我不想每个action都去设 ...
- Atitit 数据处理查询 中的异常标准化草案 jpa jdbc hb oql规范attilax总结
Atitit 数据处理查询 中的异常标准化草案 jpa jdbc hb oql规范attilax总结 Javaee6 与net 异常规范1 Jpa规范 JPA全称Java Persistence A ...