当前位置:首页 » 安卓系统 » android反编译源码

android反编译源码

发布时间: 2022-12-13 07:32:44

㈠ 如何将反编译android代码

反编译android代码并在eclipse中查看: apk反编译得到程序的源代码、图片、XML配置、语言资源等文件 下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下, 打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:apktool.bat d -f test.apk test 在改目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了,效果如下:

㈡ 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 文件,将别名添加到里面即可。本例添加的别名如下:

其中:

㈢ 自己可以编译安卓源码吗

用最新的Ubuntu 16.04,请首先确保自己已经安装了Git.没安装的同学可以通过以下命令进行安装:

sudo apt-get install git git config –global user.email “[email protected]” git config –global user.name “test”

其中[email protected]为你自己的邮箱.

简要说明

android源码编译的四个流程:1.源码下载;2.构建编译环境;3.编译源码;4运行.下文也将按照该流程讲述.

源码下载

由于某墙的原因,这里我们采用国内的镜像源进行下载.
目前,可用的镜像源一般是科大和清华的,具体使用差不多,这里我选择清华大学镜像进行说明.(参考:科大源,清华源)

repo工具下载及安装

通过执行以下命令实现repo工具的下载和安装

mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

补充说明
这里,我来简单的介绍下repo工具,我们知道AOSP项目由不同的子项目组成,为了方便进行管理,Google采用Git对AOSP项目进行多仓库管理.在聊repo工具之前,我先带你来聊聊多仓库项目:

我们有个非常庞大的项目Pre,该项目由很多个子项目R1,R2,...Rn等组成,为了方便管理和协同开发,我们为每个子项目创立自己的仓库,整个项目的结构如下:


这里写图片描述

执行完该命令后,再使用make命令继续编译.某些情况下,当你执行jack-admin kill-server时可能提示你命令不存在,此时去你去out/host/linux-x86/bin/目录下会发现不存在jack-admin文件.如果我是你,我就会重新repo sync下,然后从头来过.

错误三:使用emulator时,虚拟机停在黑屏界面,点击无任何响应.此时,可能是kerner内核问题,解决方法如下:
执行如下命令:

  • ./out/host/linux-x86/bin/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7

  • 通过使用kernel-qemu-armv7内核 解决模拟器等待黑屏问题.而-partition-size 1024 则是解决警告: system partion siez adjusted to match image file (163 MB >66 MB)

    如果你一开始编译的版本是aosp_arm-eng,使用上述命令仍然不能解决等待黑屏问题时,不妨编译aosp_arm64-eng试试.

    结束吧

    到现在为止,你已经了解了整个android编译的流程.除此之外,我也简单的说明android源码的多仓库管理机制.下面,不妨自己动手尝试一下.

    ㈣ android反编译生成的代码如下 像MainActivity.access$000(this.this$0);这样的代码该怎样解释,怎么改

    access$0表示调用一个外部类的方法,说明这段代码是在内部类中使用的:

    在调用的外部类方法定义代码的上面,应该会有一段。methodstaticsyntheticaccess$0。

    的代码,这个代码里面才是真正要调用的方法。

    安卓虚拟机指令在调用外部类方法的时候,需要区分类的调用关系。

    thiscmdisdeprecated,usethed2j-dex2jarifpossible

    dex2jarversion:translator-0.0.9.15

    dex2jar..Apkd(d2j)classes.dex->..Apkd(d2j)classes_dex2jar.jar



    (4)android反编译源码扩展阅读

    反编译是一个复杂的过程,反编译软件有:

    1、SWF相关的反编译程序

    ActionScriptViewer

    第一个也是最强大的商业SWF反编译工具,同类产品中,它的AS代码反编译效果最好,SWF转Fla工程重建成功率最高。

    2、Android相关的反编译程序

    SMALI/BAKSMAL

    SMALI/BAKSMALI是一个强大的apk文件编辑工具,用于Dalvik虚拟机(Google公司自己设计用于Android平台的虚拟机)来反编译和回编译classes.dex。其语法是一种宽松式的Jasmin/dedexer语法,而且它实现了.dex格式所有功能(注解,调试信息,线路信息等)。

    ㈤ android反编译源码时,个别类出现如下错误

    反编译的代码只能作为参考,如算法,布局,设计,图案,因为Android反编译,比如在的setContentView(123567)的活动,这将是一个数字,而不是我们常见的R.layout.xxx,类似R.String.xxx等都是一样的,所以编译不通过正常的。 如果您想了解该项目,作为一个模板,你可以去在github上或谷歌代码来找到一些开源项目,如果你选择反编译反编译2.2之前的提议apk文件,然后不要混淆编译器!如:推荐+ Android的开源项目数量,迫使大量的工作在网上迫使这样的研究PDF书。!

    ㈥ 如何反编译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)

    ㈧ android 软件反编译 可以获得源代码吗

    android培训中有很重要的一个知识点就是反编译获得java源代码,但是这个知识点又恰恰是很多同学的软肋,很难掌握,今天就来帮你解决你的难题。

    环境:win7

    步骤:

    1,下载工具包

    dex2jar-0.0.9.13--反编译工具--name=dex2jar-0.0.9.13.zip&can=2&q=

    jd-gui-0.3.5.windows.zip--反编译后的文件查看器

    分别解压。

    2,将源apk的后缀名修改.jar并解压,得到其中的classes.dex文件,将classes.dex复制到dex2jar.bat所在目录dex2jar-0.0.9.13文件夹

    在命令行下定位到dex2jar.bat所在目录 (开始>运行>cmd>cd c:\dex2jar-0.0.9.13)

    运行 :dex2jar.bat classes.dex

    将生成 classes_dex2jar.jar

    接下来就可以通过jdgui下的jd-gui.exe程序打开生成的jar包看到java代码了。

    多看多做多练习是学习语言必须经历的过程,学习不是一朝一夕的事情,只有恒之以衡的坚持才能带来成功。希望以上的Android教程能给大家带来帮助。

    ㈨ Android app证书反编译代码

    反编译代码dex2jar。
    在学习android程序的开发过程中,有时候需要借鉴别人的代码,提升自己的开发水平。
    前面说了反编译,我们当然不希望我们的应用被别人反编译,所以就得在打包的时候进行代码混淆,这样的包也可反编译出代码,但是代码的可读性很低,从而达到保护代码的目的。

    ㈩ 如何高效阅读android反编译后的源码

    一、工具准备:apktool , dex2jar , jd-gui
    二、使用dex2jar + jd-gui 得到apk的java源码
    1.用解压工具从 apk包中取出 classes.dex 文件
    用命令(dex2jar.bat classes.dex)得到一个 jar文件
    2.用jd-gui反编译工具将得到.jar文件反编译成.java文件
    三、使用apktool得到apk的xml文件

    1. 用命令(apktool d xxx.apk xxx_xml)反编译xxx.apk包2.从 xxx_xml 文件夹得到xml文件四、第二步 得到的程序源代码 和 第三步 得到的xml文件组合下,即可得到完整的apk源码。

    五、应用: 汉化/去广告,加 values-zh-rCN, values-zh-rTW, values-de, values-fr

    1.在步骤三的文件夹xxx_xml/res/ 下, 建文件夹: values-zh-rCN,values-zh-rTW

    2.1复制valuesstrings.xml 到 values-zh-rCN 并翻译.

    2.2 去广告见;

    3.重建APK,用命令(apktool b xxx) ,输出到ABC/dist/out.apk

    或命令( apktool b xxx out.apk)

    详细代码

    热点内容
    安卓怎么用手电筒检测换屏 发布:2025-03-19 05:30:33 浏览:670
    苹果6怎么设置短密码 发布:2025-03-19 04:44:41 浏览:17
    三人乐队怎么配置 发布:2025-03-19 04:34:42 浏览:914
    趣编程入口 发布:2025-03-19 04:25:09 浏览:939
    a的存储形式 发布:2025-03-19 04:24:00 浏览:789
    android键盘修改 发布:2025-03-19 04:21:45 浏览:165
    记录体温源码 发布:2025-03-19 04:14:06 浏览:895
    安卓电池充电次数怎么查看 发布:2025-03-19 04:08:44 浏览:318
    问解压 发布:2025-03-19 03:29:44 浏览:811
    原神手机号如何修改账号密码 发布:2025-03-19 03:29:22 浏览:188