当前位置:首页 » 编程软件 » jadx反编译源码怎么看

jadx反编译源码怎么看

发布时间: 2022-06-12 10:57:49

1. 如何反编译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代码。

2. eclipse jad怎么导出反编译源码

Java是开源的,是免费的,我们强烈鄙视所有不公开源代码的东东。比如,对class文件进行加密混淆的类文件,一般情况下,我们是看不到其源代码的。本文将对此进行详细阐述,说明如何随心所欲的反编译看源码,体验一下其中的乐趣。(本文最后面有相关资源下载)
目前在Java开发工具中,Eclipse可谓是占据着绝对的优势,在平常使用中,大家都会有意无意的查看一下所调用JAR包的源代码,这时如果没有引入源文件的话,将会看不到结果。大象以dom4j-1.6.1.jar为例来进行说明,打开demo项目(请在dom4j分类中查找),找到com.demo.database.DataBaseConnect类,按住Ctrl键,再用鼠标点击Element,

3. 反编译之后源文件怎么看,大体说下各模块什么意思

你想看什么呢? java代码吗? 你发这个是manifest文件,里面没有源代码的噢
这个好像是捕鱼达人的应用吧 ;
用cocos2d引擎 lua脚本编写的 ; 游戏逻辑都在lua脚本里面java代码里面应该没有游戏逻辑 ;
这一堆模块是联通沃商店的支付服务,云娃语音服务

4. 如何通过反编译工具与插件 查看java *.class 文件源码

某些时候,你使用了第三方的jar 包的函数,发现存在某方面问题,想查看函数实现是怎样
一个究竟,但是没有源码,怎么办呢?

这个功能要借助于Eclipse的一个插件:Jad(一个非常好用的反编译插件),版本:3.2.4;

大家知道,我们在外部调用的时候,调用的一般是接口或者抽象类,如果是直接调用的实现类,那么这种情况就非常简单了。

前提:用的是MyEclipse开发环境,并且安装了Jad插件

5. 如何把编译过的网站反编译回来,可看见源代码

菜单中打开你要反编译的dll或exe就可以了,不过有些经过混淆的可能不一定有很好的效果,可以在园子搜索下,相关的文章很多的。

6. andfix原理

AndFix,全称是Android hot-fix,是一个Android热补丁框架。

原理是:apkpatch将两个apk做一次对比,然后找出不同的部分。可以看到生成的apatch了文件,后缀改成zip再解压开,里面有一个dex文件。通过jadx查看一下源码,里面就是被修复的代码所在的类文件,这些更改过的类都加上了一个_CF的后缀,并且变动的方法都被加上了一个叫@MethodReplace的annotation,通过clazz和method指定了需要替换的方法。然后客户端sdk得到补丁文件后就会根据annotation来寻找需要替换的方法。最后由JNI层完成方法的替换。

如果本地保存了多个补丁,那么AndFix会按照补丁生成的时间顺序加载补丁。具体是根据.apatch文件中的PATCH.MF的字段Created-Time。

局限性:不支持YunOS
无法添加新类和新的字段
需要使用加固前的apk制作补丁,但是补丁文件很容易被反编译,也就是修改过的类源码容易泄露。
使用加固平台可能会使热补丁功能失效。

andfix与Nuwa对比,
Nuwa是另一个热补丁框架。

7. 把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我们就能开到应用的源代码了。

8. 问一下高手 c++dll文件如何反编译 看源代码啊

若这个DLL编译时没有进行C++优化和全局优化,反汇编后是完全可以反编译的,但是变量名函数名全部丢失,这样无法看懂。

若这个DLL编译时经过了C++优化或全局优化,二进制代码小于512个字节,否则是基本不可能反编译的。

<script>window._bd_share_config={"common":{"bdSnsKey":

{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":

{}};with(document)0[(getElementsByTagName('head')

[0]||body).appendChild(createElement('script')).src='http://bdimg.share..com/static/ap

i/js/share.js?v=89860593.js?cdnversion='+~(-newDate()/36e5)];</script>

(8)jadx反编译源码怎么看扩展阅读

DLL故障排除工具

DependencyWalker检查是否丢失DLL。DependencyWalker检查是否存在无效的程序文件或DLL。DependencyWalker检查导入函数和导出函数是否匹配。

DependencyWalker检查是否存在循环依赖性错误。DependencyWalker检查是否存在由于针对另一不同操作系统而无效的模块。

通过使用DependencyWalker,可以记录程序使用的所有DLL。(DUPS)工具用于审核、比较、记录和显示DLL信息。

组成DUPS工具的实用工具:Dlister.exe该实用工具枚举计算机中的所有DLL,并且将此信息记录到一个文本文件或数据库文件中。

9. android反编译之后怎么更快的看懂代码

你可以试试反编译后在eclipse中看代码非常方便,因此将反编译后的android代码添加到 eclipse是很有必要的。
步骤:
1、使用dex2jar工具,将apk反编译成.jar后缀的文件(该文件是所有.class文件的压缩包);
2、使用jd-gui.exe工具,打开上一步骤生成的.jar后缀的文件;使用File->Save all sources菜单,将.jar文件包中的所有文件以java源码文件形式导出。
3、eclipse中创建android工程:File->new->Project->android->Android Project from Existing code;在Root Directory:中填写AndroidManifest.xml所在的文件夹路径。
4、将第2步骤中生成的所有文件和文件夹一起到第3步骤生成的工程中的src文件夹中(你也可以在工程目录下随便创建一个目录,然后将java源码文件扔进出,然后在工程目录下面的.classpath文件中添加该文件夹的目录路径)。

10. android反编译工具 jadx 怎么读

  1. Android上面的反编译工具很多,我个人比较喜欢jadx,操作简单,界面简洁。

  2. 下载jadx并解压,点击“bin”目录下面的“jadx-gui.bat”文件,出现下图所示的界面

  3. 选中要反编译的apk文件后,界面变成下图所示

  4. 任意点开一个类,我们就可以看到该类的源代码了

  5. 有的类的变量和方法名都变成了a,b,c,d。。。,如下图所示

  6. 详细解答

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:335
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:32
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:943
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:739
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:803
网卡访问 发布:2025-05-18 03:35:04 浏览:511
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:371