Android反编译(一)

之反编译JAVA源码

 

[目录]

1、工具

2、反编译步骤

3、实例

4、装X技巧

 

1、工具
1).dex反编译JAR工具 

dex2jar   http://code.google.com/p/dex2jar/downloads/list

 

2).JAVA反编译工具

JD-GUI   http://jd.benow.ca/

 

 

2、反编译步骤

步骤1:把apk文件后缀名改为.zip

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

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

命令: CMD>dex2jar.bat classes.dex

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


 

3、实例

 步骤1:把apk文件后缀名改为.zip

 Android反编译(一) 之反编译JAVA源码_反编译 


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

Android反编译(一) 之反编译JAVA源码_移动_02 

 

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

Android反编译(一) 之反编译JAVA源码_反编译_03

 

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

Android反编译(一) 之反编译JAVA源码_APP_04

Android反编译(一) 之反编译JAVA源码_反编译_05 

 注:jd-gui可将JAR,保存为JAVA源文件的*src.zip,需要看.java,解压即可。 

 

4、装X技巧

以下介绍两种装X技巧:  

一)装X初级篇: 

简化步骤3,每次打开CMD,手敲dex2jar.bat classes.dex,痛苦了、太痛苦了... 

1).在dex2jar目录下,新建[反编译.bat]文件,输入

[反编译.bat] 

dex2jar.bat classes.dex

2).第三步直接双击运行[反编译.bat]文件即可


 

二)装X境界进阶篇

简化反编译成JAR所有步骤(步骤1、2、3),只需拷贝APK到目录,小手双击一下bat,自动完成。

1).目录结构

Android反编译(一) 之反编译JAVA源码_APP_06

 

2).新建BAT文件

【反编译Dex2Jar】.bat

Android反编译(一) 之反编译JAVA源码_APP_07

@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

Android反编译(一) 之反编译JAVA源码_APP_07


3).轻轻的双击【反编译Dex2Jar】.bat,自动反编译,是不是很爽...

Android反编译(一) 之反编译JAVA源码_反编译_09

 

转自:

http://www.cnblogs.com/findyou/p/3450692.html