具体步骤:
1.首先将apk文件后缀改为RAR并解压。
2.解压并扰棚rar文件,得到其中的classes.dex文件
3.我们需要用到dex2jar 把dex文件转为jar文件。
3.1把解压李渣得到的classes.dex文件放入dex2jar.bat 所在目录 )
3.2打开DOS命令行,进入dex2jar所在目录,运行 dex2jar.bat classes.dex 生成 classes_dex2jar.jar
4.最后用jd-gui.exe打开生成的classes_dex2jar.jar我们绝则就能开到应用的源代码了。
❷ app可以被反编译到什么程度
android APK中的Java代码可以被反编译到什么程度主要看APK的加密程度。
第一种情况:无混淆无加密无加壳。
直接利用Dex2jar和JD-GUI可把源码从APK里抠出来,代码逻辑清晰,基本上做到可复用,只是资源文件的引用需要计算一下。
第二种情况:混淆。
通常是利用Proguard做的防护。因为是对jar做的不可逆混淆(除非有mapping),因此不能还原成原来的代码。但是代码结构,代码逻辑一致,只要花长时间对代码进行梳理一样可找准核心代码,解密方法跟第一种一致。
第三种情况:加密。
这里以DexGuard为例。对于这种代码加密的方法,在程序运行中必定会进行解密,只要抽出它解密的逻辑便可。PS:我自己做过DexGuard的解密,如果用Dex2jar反编译看的话逻辑是不对的,一定要从Smali代码看。后来发现网上已经有人做了。
解密的脚本:A look inside Dexguard
第四种情况:加壳。
这种情况跟第三种类似。无论你怎么加壳,运行的时候必定是Dalvik可识别的Odex代码,建议直接在内存里mp出来。这里推荐Xpose的ZjDroid。
加固可以在一定程度上保护自己核心代码算法,提高破解/盗版/二次打包的难度,缓解代码注入/动态调试/内存注入攻击等。
目前市面上有很多第三方加固的平台, 如果新应用发布前需要扫描或者加固的话,可以先试试免费的,例如腾讯御安全,建议自己先去扫描测试下。
❸ 如何读apk反编译出的java源代码csdn
打开Androidfby中的Android反编译工具,开始直接反编译,选中你要反编译的apk,反编译即可,这样就可以得到软件中图片,xml,dex文件,或者直接用解压文件解压,但是不能保证xml正常显示,所以我们最好是结合一起用
打开反编译之后的文件夹,找到classes.dex,将其复制到dex2jar的文件夹目录下面,与dex2jar.bat在同一目录即可。打开命令提示符,一直打开到dex2jar目录,执行以下命令dex2jar.bat classes.dex
这时会在dex2jar目录下生成一个classes_dex2jar.jar文件,这时运行jd-gui目录下的jd-gui.exe,选择File-----》Openfile------》classes_dex2jar.jar,即可查看java代码了
❹ 如何反编译Apk得到Java源代码
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批处理工具。
下载地址:
dex2jar:http://code.google.com/p/dex2jar/downloads/list
JD-GUI:http://code.google.com/p/innlab/downloads/lis
apktool:http://code.google.com/p/android-apktool/downloads/list
工具截图:
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包得到原文件。
编译截图:
生成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资源。
注意:文件的路径中最好不要出现中文!
http://jingyan..com/article/dca1fa6fbe140ef1a4405212.html
❺ Java反编译工具 JD-GUI安装使用
在编程世界里,代码的编译与反编译犹如创作与解构的艺术,将源码编译成二进制的执行文件(.class)是编译,而将这些不可见的代码还原成人类可读的源码,则是反编译。在Java开发中,这种过程尤为重要,因为我们常需要深入理解运行时的内部逻辑。
JD-GUI,这款由C++打造的多平台工具,是Java反编译领域的翘楚,支持Windows、Linux和Mac OS,甚至提供了Eclipse插件JD-Eclipse,将反编译操作无缝融入到开发环境中。
无需繁琐的安装步骤,只需双击运行,JD-GUI即可处理.jar和.class文件,它能快速地将整个包转换为易于理解的源代码.zip包,且反编译准确度极高,尽管反编译后的代码与原始源码略有差异,但足以揭示程序的核心逻辑。
JD-GUI有两种运行模式:JD-GUI作为独立程序运行,以及JD-Eclipse/JD-IntelliJ作为集成插件使用。前者以独立界面呈现,后者则嵌入到Eclipse或IntelliJ的开发环境中,为开发者提供了更便捷的操作体验。
要下载JD-GUI,只需访问官方网站 https://github.com/java-decompiler</,找到最新版本1.6.6,选择下载链接。在浏览器中输入地址,点击"DOWNLOAD NOW",选择合适的镜像地址进行下载,随后按照提示保存到本地,等待下载完成即可。
使用方法简洁明了:启动jd-gui.exe,通过菜单栏选择 File > Open File</,找到待反编译的.class文件,即可看到对应java源码的揭示,或者直接将jar或class文件拖放到JD-GUI图标上,软件会自动处理。
对于网络不稳定的情况,我们贴心地准备了预下载的软件包。只需关注并搜索我们的公众号 开源字节</,回复“软件工具”,即可获取到下载链接。切记,每一份代码的解读,都源于对JD-GUI的得心应手运用。
❻ JAVA初学,反编译的一个安卓APP,怎么会没有主(main)方法,程序不是从主方法开始运行吗,还
android程序一般都是由MainActivity开始的局弯,是一个Activity类。你可以在Manifest.xml中找到<action android:name="android.intent.action.MAIN"/>,然后望上找到<activity android:name=xxx">,xxx就是程兄亩序的入口羡腊森。一般都是activity类。