http://www.eoeandroid.com/thread-30768-1-1.html
今天反编译一个apk,遇到了很多问题,查了好几个文档,现在把前人的一些经验和自己碰到的问题记录下来,作一个总结,与大家分享,希望对大家有帮助
一、找到apk中的class.dex:
把apk文件改名为.zip,然后解压缩其中的class.dex文件,它就是java文件编译再通过dx工具打包成的。
二、得到java源文件
工具准备:
1、把dex文件反编译为jar文件的工具。(dex2jar)
http://code.google.com/p/dex2jar/downloads/list
2、把jar反编译为java的工具。(JD-GUI)
http://java.decompiler.free.fr/?q=jdgui
反编译步骤:
1、把class.dex拷贝到dex2jar.bat所在目录,直接拖动class.dex到dex2jar.bat,生成classes.dex.dex2jar.jar。
或者:1.在cmd下进入dex2jar.bat所在路径,然后输入“dex2jar.bat XXX”,XXX指的是你要反编译的apk中的classes.dex文件所在路径及名称,比如:我的dex2jar.bat在D:\Android\apk_decode\dex2jar-0.0.7-SNAPSHOT路径下, classes.dex在D:\Android下,所以: 你进入dex2jar.bat路径下后,输入dex2jar.bat D:\Android\classes.dex,这样会生成一个jar文件。
2.用rar解压出jar文件中的class文件,然后用jad或DJ Java Decompiler反编译工具将.class文件反编译成.java文件
3、运行JD-GUI工具(它是绿色无须安装的),打开上面的jar文件,在File下有个Save JAR Source,它可以生成src源代码。
三、上面操作只能得到class文件,下面利用Google提供的apktool得到xml文件
1. 下载apktool,可以去Google的官方下载,地址:http://code.google.com/p/android-apktool/得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。解压apktool-1.0.0.tar.bz2得到apktool.jar放到 C:\Windows ,解压apktool-install-windows.zip到任意文件夹(例如E盘根目录)。(我是两个包解压后都放在C:\Windows下)
2. Win+R 运行CMD,用cd命令转到apktool-install-windows所在文件夹,输入apktool看看。会列出一些帮助的话就成功了(解释d为加压 第一个路径为你的apk所在的位置。第二个是要输出的位置)
在这一步中我碰到这样一个问题:
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version n
umber in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
4)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
版本问题,装了个jre6,在360中的软件管家可以找到的,记得装完后配置path路径,果然,ok。
继续:
apktool d e:\a.apk(apk路径)ABC(文件夹名称)
这时当前目录下生成 ABC文件夹,里面就是我们想要的东东了
四、将“二”中得到的java文件和“三”中得到的xml文件组合成一个android工程,即可得到完整的apk源码。
但是好像项目中用到的包没用弄进来,很是郁闷,希望哪位大侠弄懂之后教我,谢谢
分享到:
相关推荐
总结来说,这个“apk反编译及签名打包工具组”提供了一整套流程,包括APK的反编译、代码和资源的修改、再编译以及重新签名打包。对于Android开发者、安全研究人员或是热衷于APK定制的用户来说,这套工具是非常实用的...
总结来说,APK反编译工具如apktool、JD-GUI和dex2jar是Android开发者不可或缺的辅助工具,它们可以帮助我们洞察应用的内部结构,学习优秀的编程实践,同时也提供了调试和优化应用的可能性。但同时,我们也必须明确,...
总结,APK反编译和加壳是Android开发中的两个重要环节。反编译用于理解APK的工作原理,而加壳则用来提升应用的安全性。了解和掌握这些技术,对于开发者来说,无论是优化代码还是保护自己的知识产权,都具有重要意义...
Android APK 反编译是一种常见的安全威胁,许多 Android 开发者都存在这个问题。那麼有什么办法能防止 Android APK 反编译和破解呢?本文将对 Android APK 反编译之有效防止破解和反编译加密方法进行详细介绍。 一...
总结来说,APK Easy Tool v1.59.2 Portable是一个强大的Android应用分析和修改工具,它整合了APK反编译(通过APKTool)、DEX反编译(Baksmali和Smali)、APK重构以及签名和信息查看等功能,极大地简化了开发者对APK...
通过**APK反编译**的技术手段,可以有效解决这些问题。 #### 二、APK反编译基础概念 **APK(Android Package Kit)**是Android操作系统的应用程序包格式,包含了应用程序的所有资源文件、代码以及元数据等。**反...
总结起来,安卓apk反编译涉及到多种工具和技术,包括dex2jar、Apktool、JD-GUI、Smali、Baksmali等,以及动态分析和安全评估的方法。这个合集可能是为了帮助用户了解和实践这些反编译步骤,从而更好地理解和修改...
总结来说,【安卓apk反编译工具】如JD-GUI是Android开发者和安全研究人员的重要工具,它们帮助我们洞察APK内部运作,从而推动软件的安全性、性能和创新。在使用这些工具时,要确保遵循合法和道德的使用原则。
总结来说,"apk反编译"和"dex反编译"是Android逆向工程的重要组成部分,它们有助于开发者理解和修改APK,同时也为安全研究人员提供了分析潜在恶意行为的手段。在进行这些操作时,应遵循合法性和道德性原则,确保使用...
然而,值得注意的是,进行APK反编译可能涉及到侵犯版权和隐私问题,因此在实际操作中应确保遵循合法合规的原则,仅用于学习、研究或修复目的。同时,了解如何保护自己的应用程序免受逆向工程的攻击也是至关重要的,...
总结起来,Smali动态调试和APK反编译是Android开发者和安全研究人员的必备技能。通过掌握这些技术,我们可以深入了解应用的工作原理,找出潜在问题,甚至对恶意软件进行深入分析。然而,这也涉及到对Android系统和...
总结来说,APK反编译是Android开发和安全研究的重要组成部分。通过了解APK的签名机制、使用反编译工具以及解析XML和源码,我们可以更好地理解和优化Android应用,同时也提高了对潜在安全问题的识别能力。然而,务必...
- **版权问题**:在进行APK反编译时需要注意版权问题,确保自己的行为符合法律法规。 - **安全性**:对于安全性要求较高的应用,可能采用混淆技术增加反编译难度,此时反编译的结果可能不够理想。 - **资源文件解析*...
总结,APK反编译工具是Android开发者不可或缺的辅助工具,它们能够帮助我们理解和学习其他应用程序的实现方式,同时也为安全分析和优化提供了可能。在使用过程中,我们需要谨慎操作,遵循合法和道德的原则,以确保...
总结起来,APK反编译是Android开发中的一个重要环节,它利用工具如dex2jar将APK文件中的.dex代码转译为可读的形式。虽然反编译可以帮助我们学习和分析应用,但也需要谨慎对待,避免侵犯他人权益。在实际工作中,熟练...
总结起来,"Apk反编译工具包"提供了一整套用于理解和修改Android应用程序的工具和资源。通过熟悉dex2jar和apktool的使用,结合提供的文档,开发者可以深入探究APK的内部结构,提升自己的Android编程技能。同时,应...
总结来说,“apk反编译工具”是Android开发中不可或缺的辅助工具,它们帮助开发者理解和探索APK内部的运作机制,推动了Android生态的安全性和创新性。了解和掌握这些工具的使用,对于提升开发者的技术能力,尤其是在...
总结来说,APK反编译签名是Android开发中的核心环节,它关乎应用的安全、信任和更新机制。了解并掌握这些知识,对于开发者来说至关重要,有助于提升应用的质量和安全性。同时,随着技术的发展,开发者也需要持续关注...