不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
apk反编译
编辑:dnawo 日期:2013-04-19
本文说的apk反编译是对apk中的classes.dex文件进行反编译,比较常见的方法有两种,下边分别进行说明。
1.dex2jar + JD-GUI
①.使用WinRAR从apk中解压出classes.dex,放到dex2jar文件夹;
②.在命令行窗口执行命令"dex2jar.bat classes.dex",生成classes_dex2jar.jar;
③.使用JD-GUI打开classes_dex2jar.jar,可查看反编译的源代码,也可以选择"File→Save All Sources"保存文件;

说明:有时部分代码JD-GUI不能成功反编译,此时可以尝试从jar中单独解压出class文件,然后使用jad进行反编译,可能会成功。下边的批处理实现将jar中所有class文件反编译为java文件:
2.baksmali + smali
①.使用WinRAR从apk中解压出classes.dex;
②.在命令行窗口执行命令"baksmali.jar classes.dex"开始反编译,生成到out文件夹;
③.修改smali文件;
④.在命令行窗口执行命令"smali.jar out"进行编译,重新生成dex文件;
说明:这个方法比第一个方法的优点是反编译后可以再编译,缺点是smali代码不容易阅读修改。
3.资源链接
[1].dex2jar:https://code.google.com/p/dex2jar/
[2].JD-GUI:http://java.decompiler.free.fr/?q=jdgui
[3].JAD:http://www.varaneckas.com/jad/
[4].smali:https://code.google.com/p/smali/
[5].7-Zip:http://www.7-zip.org/
1.dex2jar + JD-GUI
①.使用WinRAR从apk中解压出classes.dex,放到dex2jar文件夹;
②.在命令行窗口执行命令"dex2jar.bat classes.dex",生成classes_dex2jar.jar;
③.使用JD-GUI打开classes_dex2jar.jar,可查看反编译的源代码,也可以选择"File→Save All Sources"保存文件;

说明:有时部分代码JD-GUI不能成功反编译,此时可以尝试从jar中单独解压出class文件,然后使用jad进行反编译,可能会成功。下边的批处理实现将jar中所有class文件反编译为java文件:
复制内容到剪贴板
程序代码

@echo off
rem 使用说明:拖动apk到批处理,反编译文件保存于classes文件夹
rd /s /q classes
7za.exe e %1 classes.dex
call dex2jar.bat classes.dex
7za.exe x -otemp classes_dex2jar.jar
for /f %%i in ('dir /b /s temp\*.class') do (
call :todo %%i
)
del /q classes.dex
del /q classes_dex2jar.jar
rd /s /q temp
start explorer.exe %cd%\classes
goto :eof
:todo
(
set dir=%~dp1
md %dir:temp=classes%
jad -o -d %dir:temp=classes% -s java %1
)
rem 使用说明:拖动apk到批处理,反编译文件保存于classes文件夹
rd /s /q classes
7za.exe e %1 classes.dex
call dex2jar.bat classes.dex
7za.exe x -otemp classes_dex2jar.jar
for /f %%i in ('dir /b /s temp\*.class') do (
call :todo %%i
)
del /q classes.dex
del /q classes_dex2jar.jar
rd /s /q temp
start explorer.exe %cd%\classes
goto :eof
:todo
(
set dir=%~dp1
md %dir:temp=classes%
jad -o -d %dir:temp=classes% -s java %1
)
2.baksmali + smali
①.使用WinRAR从apk中解压出classes.dex;
②.在命令行窗口执行命令"baksmali.jar classes.dex"开始反编译,生成到out文件夹;
③.修改smali文件;
④.在命令行窗口执行命令"smali.jar out"进行编译,重新生成dex文件;
说明:这个方法比第一个方法的优点是反编译后可以再编译,缺点是smali代码不容易阅读修改。
3.资源链接
[1].dex2jar:https://code.google.com/p/dex2jar/
[2].JD-GUI:http://java.decompiler.free.fr/?q=jdgui
[3].JAD:http://www.varaneckas.com/jad/
[4].smali:https://code.google.com/p/smali/
[5].7-Zip:http://www.7-zip.org/
评论: 0 | 引用: 0 | 查看次数: 5850
发表评论
请登录后再发表评论!