`
limingcai
  • 浏览: 112361 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

android生成的apk文件反编译源代码然后修改

阅读更多
第一种
反编译Apk得到Java源代码
http://forum.lupaworld.com/thread-60551-1-1.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文件,即可看到源代码

实际上 这种只能看到代码而不能看到图片 并且内容相差太多 恢复不了原来的代码 思路还是有的 其它文件就看不到了

第二种


老外写的《android-apktool》软件,可以帮助我们把APK反编译,生成程序的源代码和图片、XML配置、语言资源等文件。我们对图片和语言资源等文件修改后,可以再把它们编译打包成APK,签名后就是手机可以安装的本地化/修正版APK了。
《android-apktool》软件软件可以访问它的主页http://code.google.com/p/android-apktool/下载获得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。下载后解开,为了方便使用,按作者的推荐把得到的4个文件复制到C:\Windows文件夹里。

这个工具是Java写的,需要你的电脑安装了JRE或者JDK,并在系统环境变量Path里加入java.exe所在路径。

以上准备工作做好后,就可以用它来反编译APK了。这里我用动态壁纸的APK来做示范。
用过动态壁纸,你也许会发现在设置壁纸时,界面的显示有点问题:“动态壁纸”,在手机上中文显示为“当前壁纸”。这是“动态壁纸选择器”LiveWallpapersPicker.apk的翻译错误造成的。

(假设LiveWallpapersPicker.apk放在C盘根目录)

开始 > 运行,输入cmd,回车。
apktool d "C:\LiveWallpapersPicker.apk" "C:\LiveWallpapersPicker"
复制代码
(命令行解释:apktool d 要反编译的文件 输出文件夹)

这样,LiveWallpapersPicker.apk就被反编译了,输出内容在C:\LiveWallpapersPicker文件夹里。

打开C:\LiveWallpapersPicker文件夹,我们发现里面有一些XML文件和一些文件夹。绝大部分情况下,语言和图片资源都在res文件夹里,我们这个例子当然不例外。

打开res文件夹,可以其中又是很多文件夹。(又是)绝大部分情况下,语言资源都放在values*文件夹里。比如说values放默认语言(英语居多),values-de放德语,values-fr放法语等等。一般我们关心的是values-zh-rCN(简体中文)和values-zh-rTW(繁体中文)。

打开values-zh-rCN文件夹,其中有个strings.xml。打开看看:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <string name="application_name">动态壁纸选择器</string>
    <string name="live_wallpaper_picker_title">当前壁纸</string>
    <string name="live_wallpaper_preview_title">当前壁纸预览</string>
    <string name="configure_wallpaper">设置...</string>
    <string name="wallpaper_instructions">设置壁纸</string>
    <string name="live_wallpaper_empty">无当前壁纸。</string>
    <string name="set_live_wallpaper">设置壁纸</string>
    <string name="wallpaper_title_and_author">%1$s提供者:%2$s</string>
    <string name="live_wallpaper_loading">正在载入当前壁纸…</string>
</resources>


很好,就是它了。把“当前壁纸”都改为“动态壁纸”,再检查和修正标点——中文内容用中文标点(强烈呼吁大家注意标点问题,目前马大哈太多了)后,保存。

本例改这么多就够了。其它复杂的APK建议把res文件夹里的内容都检查下,至少你关心的语言文件夹里的内容都检查下。

改完后,就可以重打包了。还是在cmd命令行里,输入:
apktool b "C:\LiveWallpapersPicker"
复制代码
(命令行解释:apktool b 要打包内容所在文件夹)
就可以了。生成的APK在C:\LiveWallpapersPicker\dist文件夹里,叫out.apk。

这个out.apk是没有签名的,所以不能直接装到手机里。签名工具和方法见http://www.hiapk.com/bbs/thread-21261-1-1.html,这里不说了。

签名后得到的APK,就是可以装到手机里的了。
这是一位朋友写的 我拿来试了下 感觉对不上号 所有的图片可以获得到 但是代码却一点也看不到 都是些smali的文件,这还要编译 出来的也是很多不规范的 根本不能改代码
最多是把广告给删了 然后再装回去 就是因为有图片可以改 直接把图片替换掉就可以了

最终 还没有解决怎么把一个完整的项目反编译出来 最后直接导到工程里的 期待高手解答
分享到:
评论

相关推荐

    Apk 反编译成Java源代码工具

    有时候,为了分析或者学习其他应用的实现原理,开发者可能会使用到APK反编译工具。本篇文章将详细介绍如何使用"Apk 反编译成Java源代码工具"来获取APK中的源码。 首先,我们需要了解反编译的基本概念。反编译是将已...

    android apk 反编译Android APK反编译得到Java源代码和资源文件.docx

    - 这个命令将把APK反编译并解压到指定的输出文件夹中,包含所有的资源文件,如图片、布局XML、字符串资源等。 4. 如果需要重新打包APK,只需在同一个命令行窗口输入`apktool b c:\***文件夹`,这里`c:\***文件夹`...

    android安装包apk文件反编译代码

    下面是使用这两个工具进行APK反编译的基本步骤: 1. 下载并解压提供的压缩包,得到jdgui-java和dex2jar-0.0.9.15目录。 2. 使用解压工具打开APK文件,提取出其中的classes.dex文件。这个文件包含了应用的主要代码。...

    android如何将apk反编译成为源代码

    在Android开发领域,有时我们需要对APK文件进行反编译以查看或修改其源代码,这对于学习、调试或逆向工程来说是很有用的。本文将详细介绍如何将一个APK文件反编译为源代码,并提供相关的工具和步骤。 首先,我们...

    反编译Apk得到Java源代码

    反编译Apk得到Java源...反编译Apk得到Java源代码是一种重要的技术,通过使用dex2jar、JD-GUI和apktool这三个工具,我们可以将apk文件反编译成Java源代码和各种资源,使得我们可以对Android应用进行深入的分析和修改。

    APK一键反编译工具

    APK一键反编译工具是针对Android应用程序的逆向工程工具,它允许用户轻松地将APK文件解包并查看其内部结构。这个工具对于开发者、安全研究人员或想要修改APK应用的人来说非常有用,因为它提供了深入理解APK内部工作...

    android的apk反编译

    ### Android APK反编译知识点详解 #### 一、概述 Android平台因其开源性与灵活性而备受开发者喜爱。但在实际使用过程中,用户可能会遇到各种各样的问题,比如软件中烦人的广告或者游戏中的某些设定(如经验金币获取...

    dlg.rar_Apk c_反编译 源代码_反编译得到cpp

    标题中的"dlg.rar_Apk c_反编译 源代码_反编译得到cpp"表明这是一个关于Android APK应用反编译的资源包,重点在于将APK文件反编译为C++源代码。在Android应用开发中,APK文件是应用程序的二进制格式,通常由Java代码...

    Android APK反编译文件

    APK反编译是将已编译的APK文件转换回其源代码形式,以便分析和理解其内部结构和功能。这对于开发者调试、学习他人应用的实现、安全审计或者二次开发有着重要的作用。常见的工具有如Apktool、dex2jar、JD-GUI等。 1....

    apk文件反编译工具

    总结来说,"apk反编译工具"是一个用于检查和验证Android应用混淆效果的组合工具,包括dex2jar和JD-GUI。通过这两个工具,开发者可以评估混淆过程是否有效,从而增强应用的安全性。但同时,也要意识到反编译可能带来...

    android的apk之反编译.pdf

    ### Android APK反编译详解 #### 一、概述 在移动开发领域,特别是针对Android平台的应用,有时我们可能需要对已发布的APK进行反编译,以了解其内部实现细节或者进行安全分析等工作。本篇文章将详细介绍如何进行...

    Android apk一键反编译工具

    APK反编译是将已编译的APK文件转换回源代码和资源文件的过程。这个过程通常包括以下几个步骤: 1. **提取APK**:APK文件本质上是一个ZIP格式的压缩包,可以使用常规的解压工具打开。提取APK后,可以看到其中包含的...

    apk反编译得到源代码

    反编译apk生成程序的源代码和图片、XML配置、语言资源等文件。 转载自:http://blog.sina.com.cn/s/blog_5752764e0100kv34.html 工具下载: 在http://code.google.com/p/android-apktool/下 载获得,apktool-1.0.0....

    Android apk文件反编译工具

    6. **二次修改与打包**:完成反编译后,开发者可能需要修改反编译出的代码或资源,然后使用apktool、dex2jar等工具重新打包,并使用signing tools进行签名,生成新的APK文件。 需要注意的是,反编译APK可能会涉及到...

    android_apk反编译工具

    本文将详细介绍如何使用"android_apk反编译工具",包括dex2jar和JD-GUI,来查看APK的源代码。 首先,我们需要理解APK文件的结构。一个APK文件主要包括DEX(Dalvik Executable)文件,这是Java字节码在Android系统中...

    Android apk反编译工具集

    Apktool是由IzzySoft开发的一款强大的Android反编译工具,能够将APK文件解压为源代码、资源文件、XML配置等。它支持重建APK,允许开发者对原始资源进行修改,然后重新打包并签名。Apktool还可以用于逆向工程,帮助...

    Android APK反编译工具反编译工具包

    这个“Android APK反编译工具反编译工具包”就是为了这些目的而准备的。它包含了三个核心工具:apktool、dex2jar和jd-gui,这些都是Android反编译流程中的关键组件。 首先,`apktool`是一个开源工具,用于解包和...

    apk解包+修改源代码+重新编译打包工具.zip

    综上所述,这个工具包提供了一套完整的流程,从APK的解包、源代码修改到重新编译打包,是Android应用逆向工程和调试的重要辅助工具。通过掌握这些知识点,开发者可以更好地理解和定制Android应用。

    apk反编译工具合集

    然而,需要注意的是,未经授权的APK反编译和修改可能涉及到版权和法律问题,因此在进行此类操作时,必须确保遵循合法和道德的准则,尊重软件开发者的知识产权。此外,对于商业项目,了解并掌握这些工具的使用也是...

    反编译google android apk文件的方法

    2. 打开命令窗口,输入:apktool d C:\*.apk C:\*文件夹,反编译 APK 文件,生成源代码和图片、XML 配置、语言资源等文件。 3. 打开生成的文件夹,即可得到我们需要的各种资源了。 反编译 APK 文件的方法可以帮助...

Global site tag (gtag.js) - Google Analytics