当前位置:首页 » 安卓系统 » 安卓app反编程序源在哪里

安卓app反编程序源在哪里

发布时间: 2023-03-18 21:41:24

‘壹’ 如何反编译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:***文件夹(你编译出来文件夹)

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

‘贰’ 安卓手机反编译状态栏是反编译哪个文件那个文件名具体在哪叫什么

【原创】手机端反编译:安卓手机状态栏时间精确到秒
大神们都不发教程的…可我却喜欢分享技术,本教程适合小白,适合电脑端不会搭建java环境跟反编译的家伙
1.提取:
使用x-plore文件管理器提取system/framework/下的所有apk格式的程序例如framework_res.apk和framework-miui-res.apk等等.(总之是比目录下的所有apk格式的文件.有些系统却只有一个,例如泛泰a760s的深度os包)再提取system/app/SystemUI.apk 这三个文件.提取到sd卡根目录
2.安装手机端反编译软件:apktool和加载条件
下载apktool3.6手机版(我用的是非通用版,是armv7专用版),解压把apktool文件夹放在sd卡根目录.安装apktool3.6打开并且获取root权限允许,里面目录找到 framework_res.apk和framework-miui-res.apk分别先后加载选择"作为framework导入"(很多人修改SystemUI.apk不能反编译或者回编译出错就是这个原因,因为没有导入刚才那几个)然后找到SystemUI.apk按住它选择"反编译全部"等待n分钟后,反编译成功后关闭apktool,打开x-plore找到sd根目录新产生的文件SystemUI_src文件夹里面的\res\layout\status_bar.xml用x-plore管理器对着它选择以文本编辑:status_bar.xml(代码可能不同,但是道理一样,安卓系统通用,本人已修改cm10、深度、小米、x-ui其中包括2.3、4.04、4.1.2跟4.2.2反正安卓通用)

3.游戏才刚刚开始!现在开始修改:
在x-plore文件编辑界面点搜索刚才那个文件里面的字,找到如下代码:(可搜索statusbar.Clock,这样快点)
<com.android.systemui.statusbar.Clock android:textAppearance="@android:styleTextAppearance.StatusBar.Icon" android:gravity="left|center" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />(也许你的系统有所不同代码,不用管,删了此代码全部就得了)
删了上面的代码,全部修改为以下代码:
<DigitalClock android:textSize="14.0dip" android:textStyle="bold" android:textColor="#ffffffff" android:gravity="center_vertical" android:id="@+id/digitalClock" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" />(直接复制然后粘贴)
4.回编译 和替换
替换完后保存,就可以回编译了:打开apktool软件,找到SystemUI_src文件夹点一点它,选择回编译,等待n分钟成功后,用x-plore文件管理器打开sd卡根目录的 SystemUI_src.apk文件,选择以zip方式打开,把SystemUI_src.apk里面的resources.arsc跟\res\layout\路径下的status_bar.xml 跟status_bar_expanded.xml 三个文件覆盖替换到原本SystemUI.apk里面的文件(不用签名)

5.替换原来的程序
把改好的SystemUI.apk用x-plore管理器替换覆盖到system/app/里面!重启后,状态栏时间精确到秒爽!(替换前记得提取原版的SystemUI.apk以免修改错误导致状态栏没了,不过不用怕.把原版的 SystemUI.apk替换回来就行了)

‘叁’ android反编译怎么看资源文件

首先需要反编译的三个软件:

apktool:资源文件获取;

dex2jar:源码文件获取;

jd-gui:源码查看。


反编译流程:


1. apk反编译得到程序的源代码、资源文件

1.1 apktool解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,现在用weixin做实验(这里仅是示范作用),将需要反编译的weixin_800.apk文件放到该目录下,打开命令行界面(运行-CMD),定位到apktool文件夹,输入以下命令:apktool d [-s] -f weixin_800.apk -o weixin; 其中weixin_800.apk是要反编译的apk文件名,weixin是反编译后存放的目录文件,此文件不需要新建,反编译后会自动生成

1.2 打开weixin文件夹,res就是要找的资源文件,目录结构和平时建的项目很像。

1.3 这时候打开D:apktoolweixin esanim下a.xml看下,xml文件轻而易举的获取了


2. Apk反编译得到Java源代码

2.1 解压dex2jar和jd-gui文件;将要反编译的APK后缀名改为.zip,并解压,得到其中的classes.dex文件,将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15文件夹内

2.2 在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat classes.dex

2.3 这个时候会发现dex2jar-0.0.9.15文件夹多了一个classes_dex2jar.jar文件

2.4 现在就可以用工具jd-gui.exe打开这个jar了

2.5 通过反编译,可以知道别人用到了哪些库文件,它的代码大体是如何编写的等等。有了思路就可以自己尝试了。

‘肆’ 如何反编译Android 的apk/dex/odex,获得源码

关于APK,DEX的介绍

当我们编译一个安卓项目的时候,整个项目会被打包成一个 .apk文件。这个文件其实是一个标准的zip文件,因此可以用解压缩工具打开。这个apk文件一般都包含程序的代码(在classes.dex文件中), 资源文件, 证书, manifest 文件等。 其中对我们最重要的是classes.dex文件,因为编译后的字节码(bytecode)都是放在这个文件中。我们后面讲的反编译就是针对这个dex文件来的。

反编译普通的APK文件:

对于普通的APK/DEX文件的反编译,其实工具有很多, 包括:

  • ByteCode Viewer: 一个可视化的集成工具,说实话,不太好用,不够稳定,生成代码质量中等。

  • dex2jar + jd_gui: 这两个工具组合还可以, 用起来比ByteCode Viewer麻烦一些,但比较稳定,生成代码质量中等。

  • 在线反编译工具JADX: http://www.javadecompilers.com/apk , 这是基于SourceForge上的JADX的开源工具来实现的。本来以为在线反编译质量不会好,但出人意料的是:JADX是我发现的最好的反编译工具, 不但使用简单(直接上传,转换,下载就ok),而且反编译出来的代码质量很高,特别是变量命名方面,可读性很不错。

  • 反编译ODEX文件:

    Android 5.0 Lollipop以后,Google用ART代替了以前的Dalvik,对于普通的app来说我们仍然可以用上面的方法来把dex文件反编译成Java源代码。但对于系统预装的App,特别是类似应用商店,播放器等, 你会发现这些应用的apk文件中找不到对应的classes.dex文件,而是会发现在其子目录下有个.odex文件。 那如何反编译这个odex文件呢?我通过google查了查,知道应该用baksmali,但从github上下载了几个版本都不行,报各种不同错误。经过反复搜索和尝试,终于找到了这篇文章
    : http://www.naldotech.com/how-to-deodex-applications-on-android-5-0-lollipop/ 。 具体方法如下:

    1. 从这里下载工具包, 解压缩到本地。 这里的baksmali的版本是2.0.3. 不同版本的baksmali针对的Android内核不同。有时候高版本反倒不好用。

    2. 打开工具所在目录, 按住shift键, 点击鼠标右键,打开windows命令窗口

    3. 把 odex文件拷贝到该目录

    4. 在命令窗口运行: oat2dex.bat *.odex. 正常情况下,应该显示OK等信息。如果报错的话,说明这个文件无法转换,后面的也不用试了。

    5. 运行 oat2dex.bat *.odex temp.dex . 运行后会创建一个temp.dex文件。

    6. 运行 java -jar baksmali-2.0.3.jar -a 21 -x temp.dex -o source . 运行后会创建一个source的文件夹,并将temp.dex反编译到该文件夹。-a 21 表明的是Android内核的版本21

    7. 运行 java -jar small-2.0.3.jar -a 21 source -o classes.dex, 反编译为classes.dex文件。

    需要注意的是:由这种方式反编译成的classes.dex 文件相比原生的classes.dex 还是缺少了些信息,因此反编译这种classes.dex 文件后生成的java代码可读性会更差些。

    8. 用在线工具JADX 来把 classes.dex 最终反编译为java代码。

‘伍’ 反编译Android APK的具体步骤是怎样的

1、配置好JAVA环境变量,下载:apktool 解压的文件放在C盘根目录的apktool文件夹里(apktool文件夹自己创立)
2打开命令提示符,(开始-运行-输入cmd)
3输入:cd \apktool 系统指令到了apktool文件夹(这里就是为什么要把解压的apktool解压的文件放到apktool文件夹的原因,当然你也可以自命名文件夹的名称,那么比如arc,那么指令就变成了:cd \arc 前提是你必须把apktool解压的文件放到这个文件夹里面)
4使用RE管理器把系统里面的framework-res.apk 与 SystemUI.apk 提取出来放在apktool文件夹里面

5 如果只是想反编译framework-res.apk

输入apktool if framework-res.apk(框架的建立)
6开始最重要的反编译,输入指令,apktool d framework-res.apk

(反编辑的APK一定要用没换过图片的,否则回编辑失败)
7最后反编译完成

修改代码完成后,输入代码:apktool d framework-res 即可完成回编译
8回编译后的新的 apk在framework/dis 文件夹里面
9如果反编译的是系统文件,比如,SystemUI.apk 那么必须进行挂载框架,反编译时,必须敲入一下命令:(然后再重复7-9步骤)
apktool if framework-res.apk
apktool if SystemUI.apk

10对于三星手机(比如9100、9108/9100G),如果反编译SystemUI.apk要敲入一下命令进行框架挂载apktool if framework-res.apk
apktool if twframework-res.apk
apktool if SystemUI.apk
11回编译的命令是 apktool b XXX (没有后面的apk后缀)反编译的命令是 apktool d xxx (有后面的apk)

‘陆’ 怎么通过apk反编译来找应用的数据存放路径

一、Apk反编译得到Java源代码
下载上述反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9文件夹,内含apk反编译成java源码工具,以及源码查看工具。
apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件
源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码

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

然后,进入jdgui文件夹双击jd-gui.exe,打开上面生成的jar包classes_dex2jar.jar,即可看到源代码了

二、apk反编译生成程序的源代码和图片、XML配置、语言资源等文件
如果是汉化软件,这将特别有用
首先还是要下载上述反编译工具包,其中最新的apktool,请到google code下载
apktool(google code)

具体步骤:
下载上述反编译工具包,打开apk2java目录下的apktool1.4.1文件夹,内含三个文件:aapt.exe,apktool.bat,apktool.jar
注:里面的apktool_bk.jar是备份的老版本,最好用最新的apktool.jar

在命令行下定位到apktool.bat文件夹,输入以下命令:apktool.bat d -f abc123.apk abc123

三、 图形化反编译apk
上述步骤一、二讲述了命令行反编译apk,现在提供一种图形化反编译工具:Androidfby
首先,下载上述反编译工具包,打开Androidfby目录,双击Android反编译工具.exe,就可以浏览打开要反编译的apk

‘柒’ 安卓APP反编译后的程序源代码在哪里

assets是html文件,lib是jar,res是资源文件。AndroidManifest是配置文件,源码在smali和original里面

‘捌’ 如何实现APK的反编译得到APK的源码

最新的反编译不用此方法, 有最新的一键自动反编译工具:

这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。

在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。

注:本Android反编译教程,在Windows7-Ultimate-64bit操作系统上,测试通过!

下述所需的反编译工具包 下载

一、反编译Apk得到Java源代码
首先要下载两个工具:dex2jar和JD-GUI

前者dex2jar是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。以下是下载地址:

dex2jar:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip

JD-GUI:http://laichao.googlecode.com/files/jdgui.zip

具体步骤:

首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;

解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录(在DOS命令下CD 目录)

运行

dex2jar.bat classes.dex

生成

classes.dex.dex2jar.jar

生成jar文件的截图如下:

运行JD-GUI(jd-gui.exe),打开上面生成的jar包,即可看到源代码了

HelloAndroid源码(编译前的apk源码对照)如下:

二、反编译apk生成程序的源代码和图片、XML配置、语言资源等文件

如果是汉化软件,这将特别有用。首先还是下载工具,这次用到的是apktool

下载地址:http://code.google.com/p/android-apktool/downloads/list

下载:apktool1.4.1.tar.bz2 和 apktool-install-windows-r04-brut1.tar.bz2(两个包都下载)

具体步骤:

将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar

在命令行下定位到apktool.bat文件夹,输入以下命令:apktool d C:\*.apk C:\*文件夹,如下图:

命令行解释:apktool d [apk文件 ] [输出文件夹]

反编译的文件如下(AndroidManifest.xml为例):

特别注意:你要反编译的文件一定要放在C盘的根目录里(其实不用放在C盘根目录也行)

例如:在D盘目录D:\apktool1.4.1

cd /d D:\apktool1.4.1 //切换到D盘目录,包含HelloAndroid.apk以及aapt.exe,apktool.bat,apktool.jar三个文件

apktool.bat d -f HelloAndroid.apk HelloAndroid // apktool反编译命令,注意 d和
-f 的写法

将反编译完的文件重新打包成apk,很简单,输入apktool b c:\***文件夹(你编译出来文件夹)即可,命令如下:这个主意你文件所在盘

打包apk后的文件在目录C:\HelloAndroid下,生成了两个文件夹:

build

dist

其中,打包生成的HelloAndroid.apk,在上面的dist文件夹下,Ok

最后,再介绍一款刚出来的反编译工具 Androidfby ,它是一款对上述步骤进行了封装的图形界面工具,下载地址

但是,针对部分签名的apk,无法实现反编译,但本博客方法则仍然可以反编译成功!仅供参考使用

另外,作为应用开发者,肯定不希望自己的代码被反编译的,下一遍博客将讲述如何通过混淆代码防止被别人反编译

Android如何防止apk程序被反编译

作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。

Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹

proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。

下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用,先来看看android-sdk-windows\tools\lib\proguard.cfg的内容:

[html] view
plainprint?

1. -optimizationpasses 5

2. -dontusemixedcaseclassnames

3. -

4. -dontpreverify

5. -verbose

6. -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

7.

8. -keep public class * extends android.app.Activity

9. -keep public class * extends android.app.Application

10. -keep public class * extends android.app.Service

11. -keep public class * extends android.content.BroadcastReceiver

12. -keep public class * extends android.content.ContentProvider

13. -keep public class * extends android.app.backup.BackupAgentHelper

14. -keep public class * extends android.preference.Preference

15. -keep public class com.android.vending.licensing.ILicensingService

16.

17. -keepclasseswithmembernames class * {

18. native <methods>;

19. }

20.

21. -keepclasseswithmembernames class * {

22. public <init>(android.content.Context, android.util.AttributeSet);

23. }

24.

25. -keepclasseswithmembernames class * {

26. public <init>(android.content.Context, android.util.AttributeSet, int);

27. }

28.

29. -keepclassmembers enum * {

30. public static **[] values();

31. public static ** valueOf(java.lang.String);

32. }

33.

34. -keep class * implements android.os.Parcelable {

35. public static final android.os.Parcelable$Creator *;

36. }

脚本中可以看到,混淆中保留了继承自Activity、Service、
Application、BroadcastReceiver、ContentProvider等基本组件以及
com.android.vending.licensing.ILicensingService,

并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。(详细信息请参考<proguard_path>/examples中的例子及注释。)

让proguard.cfg起作用的做法很简单,就是在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”就可以了

完整的default.properties文件应该如下:

[html] view
plainprint?

1. # This file is automatically generated by Android Tools.

2. # Do not modify this file -- YOUR CHANGES WILL BE ERASED!

3. #

4. # This file must be checked in Version Control Systems.

5. #

6. # To customize properties used by the Ant build system use,

7. # "build.properties", and override values to adapt the script to your

8. # project structure.

9.

10. # Project target.

11. target=android-9

12. proguard.config=proguard.cfg

大功告成,正常的编译签名后就可以防止代码被反编译了。反编译经过代码混淆的apk得到的代码应该类似于下面的效果,是很难看懂的:

如果您使用的是2.3之前的SDK版本也没关系,把上面的proguard.cfg文件复制一份放到项目中,然后进行相同的操作即可

‘玖’ Android 将 apk 反编译为源码

将 apk 解压,在解压后的文件夹中可以找到 classes.dex 文件。(除了 classes.dex 文件,可能还会有 classes2.dex , classes3.dex 等等,本文以 classes.dex 为例,对其他几个 dex 文件的操作是类似的)

使用 dex2jar 工具,将 dex 文件转换为 jar 文件

使用方式:

执行命令后,生成的 classes-dex2jar.jar 就是我们需要的 jar 文件。

使用 Luyten 工具查看 jar 文件,就能看到反编译后的源码了。

本例中, classes.dex 文件中存储的是 android 的一些基础库,实际编写的源码在 classes3.dex 中,对 classes3.dex 执行第二步,查看生成的 classes3-dex2jar.jar 文件,可以看到如下内容:

这就是反编译 apk 的基本操作了。

Cmder 是一个非常好用的命令行工具。

效果如下:

只需要执行 apk2jar 命令,就可以实现把 apk 解压到 apk_ 文件夹中,并将 apk_ 文件夹中的 classes.dex 文件转换为 jar 。原理就是通过 Cmder 添加别名,把上述的第一步和第二步中执行的命令行组合起来了。

为 Cmder 添加别名很简单,编辑 Cmder安装目录\config\user_aliases.cmd 文件,将别名添加到里面即可。本例添加的别名如下:

其中:

‘拾’ 怎样查看 Android APP 源代码

需要把反编译的apk存放到apktools同级文件夹目录下,然后运行要查看的安装包,具体操作如下:

1、首先把反编译的apk存放到apktools同级文件夹目录下,如下图所示。

热点内容
解压美食蛋糕 发布:2025-05-13 23:36:25 浏览:353
php含有字符 发布:2025-05-13 23:32:08 浏览:183
如何找出苹果手机已连接wifi密码 发布:2025-05-13 23:22:52 浏览:263
ie10缓存 发布:2025-05-13 23:10:09 浏览:458
安卓手机图标怎么设置提示 发布:2025-05-13 23:07:56 浏览:809
香蕉FTP下载 发布:2025-05-13 23:07:11 浏览:940
for循环sql语句 发布:2025-05-13 22:45:49 浏览:19
python实用代码 发布:2025-05-13 22:19:41 浏览:843
dede数据库的配置文件 发布:2025-05-13 22:19:08 浏览:970
给字符加密 发布:2025-05-13 22:12:32 浏览:975