当前位置:首页 » 编程软件 » winapk反编译

winapk反编译

发布时间: 2023-03-15 12:14:21

❶ 如何反编译systemUI.apk

ystemui.apk等特殊软件的编译与反编译步骤如下:
第一:要在你的PC上建立java的环境,才能执行编译工作。具体设置方法可参考线刷包移植卡刷包教程。
第二:下载Apktool工具 ,下载后解压得到apktool文件夹,把里面的三个文件放在CDM模式(win+R)默认的目录下。例如,我的是Windows7 32位 我的CDM模式默认目录是C:\用户(Users)\Administrator。
第三:如果你是要编译系统文件的话,请将你要修改的rom里提取framework-res.apk,再用CMD模式“安装”。(不这样做会 导致解包错误)
安装方法:把framework-res.apk放在刚才放在C:\用户(Users)\Administrator文件夹下。cmd模式 执行apktool if framework-res.apk 这个是安装framework-res.apk
第四:准备工作都做好了,现在就可以反编译和编译了。将你要反编译的apk放在C:\用户(Users)\Administrator目录下。(你也可以用指定目录)cmd模式 执行apktool d XXXX.apk 这个就是反编译比如反编译SystemUI就执行 apktool d SystemUI.apk 就可以了(会在当前的目录下生成SystemUI的文件夹,修改就是在这个文件夹里进行)
注意:1.第三步很重要,很多人不成功就是因为没做第三步。
2.编辑回去的systemui.apk及framework-res.apk不能直接放回去(framework-res.apk放回去会导致手机不断重启systemui.apk放回去会导致手机无上栏)

❷ 怎么反编译APK文件

一、dexmp方法

dexmp是emulator自带提供的查看dex文件的工具,可使用类似这样的命令将dex文件mp到txt文件中:

D:\Program Files\android-sdk-windows-1.6_r1\platforms\android-1.6\tools>dexmp.exe -d classes.dex > spk.mp.txt

得到的文件内容,描述了类的信息,但实在是不好读啊~~~~

二、dex2jar + XJad 方法

该方法是使用dex2jar.jar包,将classes.dex文件解包成jar,在通过XJad(或者其他class反编译工具)进行java反编译。如:

1、dex2jar.bat d:\play\classes.dex

默认的输出路径同classes.dex,生成的文件名为classes.dex.dex2jar.jar

2、使用XJad反编译该jar包

之后的使用方法,大家都懂的:)

该方法的好处在于,通过XJad反编译后,大家可直接开到java源文件,缺点在于只能反编译出开发时的java文件,而开发时使用的lib包不能反编译出来。

三、AXMLPrinter2.jar + baksmali.jar + smali.jar 方法

这个方法就强大了,AXMLPrinter2是还原AndroidManifest.xml和main.xml的工具,直接打开这两个xml文件是乱码,而通过还原之后,可以很明白的看到里面的内容(我猜测还是使用了字节异或的方式加的密)。

baksmali.jar是反解析dex的工具,smali.jar则是再还原成dex的工具

操作方式如下:

1、java -jar AXMLPrinter2.jar D:\play\AndroidManifest.xml > AndroidManifest.txt

2、java -jar AXMLPrinter2.jar D:\play\res\layout\main.xml > main.txt

3、java -jar baksmali-1.2.5.jar -o classout/ d:\play\classes.dex

baksmali可解析(注意,是解析,不是反编译)原java包以及引用的lib包,解析出的文件认真看还是能看懂,比如以下片段:

view plain to clipboardprint?
.class Lcom/paul/test/a;
.super Landroid/view/View;

# static fields
.field private static final a:Landroid/graphics/Typeface;

# instance fields
.field private b:I
.field private c:I
.field private d:Z
.field private e:J
.field private f:I
.field private l:[Ljava/lang/String;

# direct methods
.method static constructor ()V
.registers 2
sget-object v0, Landroid/graphics/Typeface;->SANS_SERIF:Landroid/graphics/Typeface;
const/4 v1, 0x0
invoke-static {v0, v1}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object v0
sput-object v0, Lcom/wiyun/ad/a;->a:Landroid/graphics/Typeface;
return-void
.end method
#
# other methods ..........
#
# virtual methods
.method public onKeyUp(ILandroid/view/KeyEvent;)Z
.registers 4
const/16 v0, 0x42
if-eq p1, v0, :cond_8
const/16 v0, 0x17
if-ne p1, v0, :cond_b
:cond_8
invoke-direct {p0}, Lcom/paul/test/a;->d()V
:cond_b
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/paul/test/a;->setPressed(Z)V
invoke-super {p0, p1, p2}, Landroid/view/View;->onKeyUp(ILandroid/view/KeyEvent;)Z
move-result v0
return v0
.end method
.class Lcom/paul/test/a;
.super Landroid/view/View;

# static fields
.field private static final a:Landroid/graphics/Typeface;

# instance fields
.field private b:I
.field private c:I
.field private d:Z
.field private e:J
.field private f:I
.field private l:[Ljava/lang/String;

# direct methods
.method static constructor ()V
.registers 2
sget-object v0, Landroid/graphics/Typeface;->SANS_SERIF:Landroid/graphics/Typeface;
const/4 v1, 0x0
invoke-static {v0, v1}, Landroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
move-result-object v0
sput-object v0, Lcom/wiyun/ad/a;->a:Landroid/graphics/Typeface;
return-void
.end method
#
# other methods ..........
#
# virtual methods
.method public onKeyUp(ILandroid/view/KeyEvent;)Z
.registers 4
const/16 v0, 0x42
if-eq p1, v0, :cond_8
const/16 v0, 0x17
if-ne p1, v0, :cond_b
:cond_8
invoke-direct {p0}, Lcom/paul/test/a;->d()V
:cond_b
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/paul/test/a;->setPressed(Z)V
invoke-super {p0, p1, p2}, Landroid/view/View;->onKeyUp(ILandroid/view/KeyEvent;)Z
move-result v0
return v0
.end method

认真一看,就知道:

# static fields 定义静态变量的标记

# instance fields 定义实例变量的标记

# direct methods 定义静态方法的标记

# virtual methods 定义非静态方法的标记

以onKeyUp方法为例,其中定义了处理逻辑,if-eq p1, v0, :cond_8 表示如果p1和v0相等,则执行cond_8的流程:

:cond_8
invoke-direct {p0}, Lcom/paul/test/a;->d()V

调用com.paul.test.a的d()方法

不相等: if-ne p1, v0, :cond_b 则执行cond_b的流程:

:cond_b
const/4 v0, 0x0

invoke-virtual {p0, v0}, Lcom/paul/test/a;->setPressed(Z)V

invoke-super {p0, p1, p2}, Landroid/view/View;->onKeyUp(ILandroid/view/KeyEvent;)Z

move-result v0

大概意思就是调用com.paul.test.a的setPressed方法,然后再调用父类View的onKeyUp方法

最后 return v0

该方法,能把外部引用的lib包类也解析出来,能开到包的全貌。缺点在于,解析出的smali文件并不是反编译出的java文件,可读性降低了,但仔细研究也能看出大概。

❸ 如何反编译android的apk文件得到资源文件

您好,很高兴能帮助您
一.反编译Apk得到Java源代码
转载自:http://hi..com/%CB%BF%D4%B5%CC%EC%CF%C2/blog/item/2284e2debafc541e495403ec.html

工具下载:需用到dex2jar和JD-GUI这2个工具
dex2jar下载地址:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip
JD-GUI下载地址:
windows版JD-GUI:http://laichao.googlecode.com/files/jdgui.zip
linux版JD-GUI:http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686.tar.gz
步骤:
1.首先找到Android软件安装包中的classes.dex
把.apk文件改名为.zip,然后解压缩,得到其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件

2.把classes.dex拷贝到dex2jar.bat所在目录。
在命令行模式下定位到dex2jar.bat所在目录,运行 dex2jar.bat classes.dex ,生成classes.dex.dex2jar.jar

3.运行JD-GUI工具(它是绿色无须安装的)
打开上面的jar文件,即可看到源代码
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
二.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件。
转载自:http://blog.sina.com.cn/s/blog_5752764e0100kv34.html
工具下载:
在http://code.google.com/p/android-apktool/下 载获得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。
步骤:
1.解压缩下载的两个文件包,apktool-install-windows-2.1_r01-1.zip解压缩后得到的包里有aapt.exe 和apktool.bat.(注意要把apktool-1.0.0.tar.bz2解压后的一个.jar 文件进来)
2.打开命令窗口 (开始 > 运行,输入cmd,回车。)进入到apktool.bat的文件夹里。
输入:
apktool d C:\***.apk C:\***文件夹
(命令行解释:apktool d 要反编译的文件 输出文件夹)
特别注意:你要反编译的文件一定要放在C盘的根目录里,
3.打开 C:\***文件夹 就可以得到我们学院的各种资源了。

三.将反编译完的文件重新打包成apk
很简单,只要输入:
apktood b c:***文件夹(你编译出来文件夹)

你的采纳是我前进的动力,
记得好评和采纳,答题不易,互相帮助,

❹ 安卓apk文件如何反编译

安卓apk文件反编译:
一、反编译xml文件
1>
首先下载我给你们提供的文件夹apk_fanbianyi,把它放到某个盘的根目录下(为了方便输入dos命令),然后打开apktool文件夹,安装win+r键,然后输入cmd,进入dos命令行,大家别怕,不用晕,很简单的。
2>
然后在dos命令中首先输入文件夹所在盘符+“:”回车,接着再输入cd+apktool所在目录,切换dos工作空间到apktool文件夹下。
3>
接着输入
apktool.bat
d
【需反编译apk文件路径】
{【反编译文件反编译后的路径】},其中最后一部分可以省去,系统会默认把apk文件反编译到apktool目录下,例如输入
apktool.bat
d
d:/apk_fanbianyi/ttkp.apk,在apktool文件夹下就会生成一个ttpk的文件夹,所有的xml文件全部反编译成功。
二、反编译java文件
1>
首先解压需要反编译的apk文件,拷贝出里面的classes.dex文件到dex2jar文件夹(为了方便操作,省去dos命令输入路径的麻烦)
2>
把工作空间切换到dex2jar文件夹下,输入命令cd
d:/apk_fanbianyi/dex2jar回车
3>
输入命令dex2jar.bat
classes.dex回车,发现dex2jar文件夹下多了一个classes_dex2jar.jar文件,这是反编译成功的java文件
三、xml文件的打开
1>
打开apktool文件夹下的ttkp文件夹,任意找到一个xml文件,选中单击右键,选择notepad++打开(需下载),如果没有此软件,可以选择打开方式,选择记事本打开
四、java文件的打开
1>
dex2jar文件夹下的classes_dex2jar.jar拷贝到apktool文件夹的ttkp文件夹中,不能用notepad++打开,不然会乱码的
2>
启动apk_fanbianyi文件夹下的jd-gui.exe,然后点左上角file,选择open
file,找到classes_dex2jar.jar文件,可以发现有很多包,选择包下的任意一个java文件,打开不乱码了,是不是很神奇,哈哈,你学会了安卓apk文件反编译

❺ 怎样修改APK文件!修改后怎么打包成APK

1、首先打开apk反编译软件,点击“打开”一个apk。或者直接把需要反编译修改的apk拖入到窗口中。

❻ 如何反编译apk文件得到源码和XML文件

1.下载反编译工具
需要下载四个工具:dex2jar、JD-GUI、apktool、apktool-install-windows-r05-ibot
dex2jar:将apk中的classes.dex转化成Jar文件。
JD-GUI:反编译工具,可以直接查看Jar包的源代码。
apktool:反编译工具,通过反编译APK中XML文件,直接可以查看。
apktool-install-windows-r05-ibot:辅助windows批处理工具。

2.解压缩APK包
apk文件也是一种常见的zip,常用的压缩软件就可轻松地解压apk文件。用压缩软件将apk文件中的文件解压到一个文件夹中,得到APK中的资源包括XML文件和classes.dex文件,classes.dex就是java文件编译再通过dx工具打包而成的。

3.反编译dex文件
解压apk文件后,你会发现res目录的图片没有加密,但java源码编译成了一个classes.dex文件,无法用普通的反编译class文件的方法来处理,dex2jar可以将dex文件转换成普通的jar包。
解压下载的dex2jar,把解压后的文件夹放到系统盘跟目录中并把这个目录加到系统path变量中,就可以直接用:dex2jar.bat或dex2jar.sh转换dex文件了。
DOS行命令如下:dex2jar.bat xx\classes.dex(xx是classes.dex文件所在的路径)。
将在同目录得到普通jar包:classes_dex2jar.jar,就可以用处理普通jar包的方法来反编译这个jar包得到原文件。

4.反编译jar包
得到jar包后,下载自已喜欢的反编译工具,推荐使用JD-GUI,有比较简单的图形界面,可以反编译单个class文件,也可以反编译jar包,比较方便。
打开压缩文件JD-GUI,运行jd-gui.exe,打开上面生成的jar包,即可看到源代码了。

5.反编译xml文件
打开解压的res\layout目录,有很多xml文件,如果你想看下作者是如何设计界面的,你会很失望,因为你看到的是一大堆乱码!这个时候我们需要用到的是apktool。
具体操作方法:将下载的apktool和apktool-install-windows-r05-ibot两个包解压到同一个文件夹下,这个文件夹有三个文件:aapt.exe,apktool.bat,apktool.jar。把这个文件夹也放到系统盘的根目录中并把这个目录加到path变量中。以HelloWord.apk为例:
在DOS命令行中输入:apktool d xx\HelloWord.apk HelloWord得到HelloWord文件夹,此文件夹中的xml文件就是编译好的可以正常查看的文件。
这样就得到了可以得到编译的源码和XML资源。
注意:文件的路径中最好不要出现中文!

❼ 为什么很多APK文件反编译了打包出错

可能是由于以下几种情况导致

1、在Android Project配置文件中你使用了当前工程目标版本所没有的特性,针对这种情况只需更改下目标版本就行了
2、apktool.jar可能不是最新的,针对这种情况下载最新版的apktool.jar就行了
3、在windows平台上aapt.exe、apktool.bat可能不是最新的,针对这种情况也只需下载最新版

❽ APKTOOL怎样用的,我反编译成功之后回编译失败,出现下图这样的情况是怎样的

编译失败是操作过程中错误造成的。解决方式如下:

1、首先去官方网站点击下载可用的最新ApkTool。

❾ 如何反编译apk以查看源码

1.下载apktool所需文件:
a、 apktool1.5.2.tar.bz2
b、前庆apktool-install-windows-r05-ibot.tar.bz2 (windows系统)

2.解压刚刚下载的文件,并将解压的文件放入C:\Windows目录下

3.启动控制台,输入apktool,回车可查看到apktool工具常用指令

4.新建一个文件夹,用于存放apk及待解压的文件,这里笔者将文件夹建在D:\apk目录,同时放入用于测试的android app包(test.apk)

5.控制台输入:apktool d D:\apk\test.apk D:\apk\test 进行反编译操作
中句话中“D:\apk\test.apk”或悔档指apk存放位置,“D:\apk\test”指反编译后文件衫乱存放的位置

6.反编译成功之后,进入D:\apk\test文件目录可以查看到反编译后的文件

❿ 求助,apk被加密了,反编译不了,可有方法解决

下载dex2jar JD-GUI apktool

反编译步骤:
1.反编译Apk得到Java源代码
首先要下载两个工具:dex2jar和JD-GUI
前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。

具体步骤:
1.首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;
2.解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录
运行 dex2jar.bat classes.dex
生成 classes.dex.dex2jar.jar

2.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件
还是下载工具,这次用到的是apktool

具体步骤:
将下载的两个包解压到同一个文件夹下,应该卖辩亩会有三个文件:中森aapt.exe,apktool.bat,apktool.jar
1.解压缩下载的两个文件包,apktool-install-windows-r04-brut1.tar解压缩后得到的包里有aapt.exe 和apktool.bat.(注意要把apktool1.4.1.tar解压后的一个.jar 文件到解压后的\apktool-install-windows-r04-brut1文件夹灶仿里)
2.特别注意:你要反编译的文件一定要放在C盘的根目录里

热点内容
linux查看selinux状态 发布:2025-07-20 13:36:35 浏览:914
福利资源解压密码 发布:2025-07-20 13:34:10 浏览:268
我的世界怎么在手机搞服务器 发布:2025-07-20 13:26:07 浏览:905
android系统键盘 发布:2025-07-20 13:19:38 浏览:500
程序化交易算法 发布:2025-07-20 13:09:58 浏览:973
已关闭服务器是什么意思 发布:2025-07-20 13:06:49 浏览:709
三星s5密码多少钱 发布:2025-07-20 12:55:14 浏览:961
密码忘记了怎么找回 发布:2025-07-20 12:46:18 浏览:534
华为的密码锁为什么开不了 发布:2025-07-20 12:45:35 浏览:133
app登录密码在哪里 发布:2025-07-20 12:22:31 浏览:693