导航:首页 > 源码编译 > java反编译app源码详解

java反编译app源码详解

发布时间:2024-09-29 18:14:59

❶ 如何反编译Apk得到java源代码

具体步骤:
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

  1. 打开Androidfby中的Android反编译工具,开始直接反编译,选中你要反编译的apk,反编译即可,这样就可以得到软件中图片,xml,dex文件,或者直接用解压文件解压,但是不能保证xml正常显示,所以我们最好是结合一起用

  2. 打开反编译之后的文件夹,找到classes.dex,将其复制到dex2jar的文件夹目录下面,与dex2jar.bat在同一目录即可。打开命令提示符,一直打开到dex2jar目录,执行以下命令dex2jar.bat classes.dex

  3. 这时会在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类。

阅读全文

与java反编译app源码详解相关的资料

热点内容
linux同步脚本 浏览:664
福建新唐集成硬件加密 浏览:943
空调压缩机被破坏 浏览:105
现在学php怎么样 浏览:90
linuxchttp下载 浏览:770
大数据虚拟机云服务器 浏览:57
java与嵌入式开发 浏览:20
minios如何搭建文件服务器 浏览:1000
华为为啥有些压缩包解压不开 浏览:563
oracle可以编译存储吗 浏览:475
机械男和女程序员创业 浏览:799
自己怎么制作软件app 浏览:214
javajson字符串转java对象 浏览:230
必修一数学PDF 浏览:775
javascriptphpjsp 浏览:811
深圳一程序员退房完整版 浏览:294
后台管理app哪个好 浏览:766
加密锁无模块什么意思 浏览:22
加密国度英文 浏览:20
科沃斯用了app怎么使用按键 浏览:663