有时候使用apktool反编译apk修改Smali文件之后再进行build会出现错误,这种情况下可以换一个更高版本的apktool试试。一个强大的apk文件编辑工具。执行成功后你会发现tools目录下多了一个classout文件夹,里面就是smali类型的文件,里面是反编译出的代码,但是不是java代码,还是能看出变量和方法的。
smali/baksmali使用方法如下:
首先把baksmali-1.3.2.jar和smali-1.3.2.jar文件放到android sdk安装路径下的tools里面,把apk文件改成rar文件,解压后取出classes.dex文件,也放入tools里面,然后用命令行,cd tools目录下,
java -jar baksmali-1.3.2.jar -o classout/ classes.dex
下免就可以使用java命令,tools目录下多了一个classout文件夹,里面就是smali类型的文件,里面是反编译出的代码,但是不是java代码,还是能看出变量和方法的,
用jd_gui来看反编译出的Java代码,这样便于寻找自己想要改的东西,找到后可以到baksmali classout下去修改相应的地方。然后是利用smali编译回去:
命令如下:java -jar smali-1.3.2.jar classout/ -o classes.dex
把classout下编译成classes.dex然后把classes.dex放回apk下覆盖原来的classes.dex文件。
详细图文教程:
遇到比较高级的apk文件可以选择使用baksmali+smali来进行apk的修改及重新打包。
1.首先解压apk文件,获得classes.dex文件

2.使用baksmali反编译classes.dex
命令为: java -jar baksmali.jar -o classout/ classes.dex

3.反编译的smali文件存在./classout之中。&

4.此时对classout目录下的smali文件就可以进行修改了
修改过之后需要使用smali.jar将smali目录重新编译为classes.dex

5.使用压缩工具将新生成的classes.dex塞入apk包替换原有的classes.dex
这里需要说明的就是使用baksmali.jar反编译的生成的smali文件使用的是baksmali语法,和apktool反编译生成的smali语法有些许的区别。
6.替换apk包中的classes.dex文件之后,需要对apk重新签名才能安装
























大小: 16.9M
大小: 55.6M
dex2jar2.0 免费最新版
完美UPX脱壳机0.3简体中文免费版
Stud_PE(PE查看和修改工具)v2.6.1.0 中文绿色版
.net反编译工具(reflector 8)8.5.0.179 官方版
Reflector(.Net的Dll反编译工具)V5.1.2.0绿色英文版
VB6反编译软件(VBRezQ)V3.1b汉化特别版
ResHackerV3.4.0.79汉化绿色版
VB反编译工具(VB Decompiler)v9.2 英文绿色特别版
Athena-A(汉化工具)v4.13 绿色汉化特别版
CHM反编译工具 (能够快速的提取CHM文件中的全部信息)1.1中文绿色免费版
HackFansUnpack(全自动脱壳)中文特别版
unEbookEditV2.6绿色版
51反汇编工具V1.0 智能版
AsmFunv1.20.623中文绿色版
C32ASMv0.4.12中文绿色注册表