----------------------------------------------------------------
转载请注明出处和作者联系方式:
文章出处:http://blog.csdn.net/pengguowen
作者: pengguowen<imlvye#gmail.com>
----------------------------------------------------------------
今天在论坛上看到了一个关于apk反编译的工具,试用了下,感觉到有点靠谱!反编译工具包名字Decompile APK.zip,里面包含dex2jar-0.0.7-SNAPSHOT.zip 工具和jd-gui.exe工具, dex2jar工具主要是把APK中的classes.dex反编译成一个class jar包,而jd-gui.exe 从class中反编译成java文件。
dex2jar-0.0.7-SNAPSHOT.zip 包解压后含有几个文件,需要用到的是dex2jar.sh (linux下)或者dex2jar.bat(windows下),直接使用dex2jar.sh classes.dex命令即可。
看看反编译的效果吧:
源代码:
package com.peng.lighton;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.view.View;
public class lightonView extends View {
private Paint paint;
public lightonView(Context context) {
super(context);
paint = new Paint();
paint.setAntiAlias(true);
this.setKeepScreenOn(true);
paint.setColor(Color.WHITE);
}
public void onDraw(Canvas canvas) {
canvas.drawRect(new Rect(0, 0, this.getWidth(), this.getHeight()), paint);
}
}
反编译:
package com.peng.lighton;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.view.View;
public class lightonView extends View
{
private Paint paint;
public lightonView(Context paramContext)
{
super(paramContext);
Paint localPaint = new Paint();
this.paint = localPaint;
this.paint.setAntiAlias(true);
setKeepScreenOn(true);
this.paint.setColor(-1);
}
public void onDraw(Canvas paramCanvas)
{
int i = getWidth();
int j = getHeight();
Rect localRect = new Rect(0, 0, i, j);
Paint localPaint = this.paint;
paramCanvas.drawRect(localRect, localPaint);
}
}
反编译后的代码基本上看的懂作者原意。