栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

android java反编译

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

android java反编译

一:dex反编译 工具依赖:dex2jar-2.0

获取工具:提供两个链接,一个是github的,需要翻墙,有更新,另一个不用翻墙的,但从16年后就没有更新了

Releases · pxb1988/dex2jar · GitHubhttps://github.com/pxb1988/dex2jar/releases

dex2jar download | SourceForge.nethttps://sourceforge.net/projects/dex2jar/

命令简析:

dex2jar提供了一组批处理和sh脚本来支持windows和Linux上执行

下面是git hub上 Bob Pan 在 3 Nov 2014 写的操作流程,与现在的实际条件已经有所不同,但这几步流程是一样的,有所不同的是jdk现在可以使用jdk8,后续应该还可以使用jdk17。

    Install JDK7

     // For Ubuntu 
     sudo apt-get install openjdk-7-jre 
    

    Download dex2jar from dex2jar - Browse Files at SourceForge.net

Extract dex2jar-version.zip to a folder. for example /home/panxiaobo/, _C:_

  // For Linux
  unzip -x dex2jar-version.zip -d /home/panxiaobo

    use dex2jar to generate .jar file. dex2jar will generate a file named someApk-dex2jar.jar in the working folder.

     // For Linux, Mac OSX, Cygwin
     sh /home/panxiaobo/dex2jar-version/d2j-dex2jar.sh /home/panxiaobo/someApk.apk
     // For Windows
     C:dex2jar-versiond2j-dex2jar.bat someApk.apk
    

    use a decompiler to view the source.

    jd-guiJADProcyon

    that's it

下面的链接是反编译出jar包之后的查看工具,jd-gui并不是唯一的工具,使用AS也是可以通过加载jar包的方式但看到反编译出来的代码。jd使用很简单,和普通的文件工具差不多,就不专门介绍了。

https://github.com/java-decompiler/jd-gui/releases/https://github.com/java-decompiler/jd-gui/releases/

二:odex反编译 工具依赖:baksmali-2.5.2.jar ,smali-2.5.2.jar

获取工具:以下站点提供了原始的jar包下载,读者可以按需下载对应版本。如果有兴趣,读者也可以在这个git仓库上阅读源码。JesusFreke / smali / Downloads — Bitbuckethttps://bitbucket.org/JesusFreke/smali/downloads/

示例:反编译serivces.odex文件,

        第一步把odex解码为smali文件,这一步会把对应odex文件编译出当前目录的out路径下

        java -jar baksmali-2.5.2.jar x services.odex

        第二步把smali文件编译为dex包

        java -jar smali-2.5.2.jar ass -o classes.dex out

        第三步,使用dex反编译方法,反编译出源代码。

注意,odex反编译时,应尽可能保证当前odex有依赖的包都在当前路径下

命令简析:

        针对特定的版本,命令可能存在差异,可以使用 -h或--help列出当前版本的命令列表

如我使用的2.5.2的版本,如果是用于反编译 odex或oat文件,使用deodex,de,x三个命令都可以

参考命令如下:java -jar baksmali-2.5.2.jar x services.odex

E:toolsbux2.0pushbakframeworkoatarm64>java -jar baksmali-2.5.2.jar h
usage: baksmali [--version] [--help] [

Options:
  --help,-h,-? - Show usage information
  --version,-v - Print the version of baksmali and then exit

Commands:
  deodex(de,x) - Deodexes an odex/oat file
  disassemble(dis,d) - Disassembles a dex file.
  dump(du) - Prints an annotated hex dump for the given dex file
  help(h) - Shows usage information
  list(l) - Lists various objects in a dex file.

See baksmali help for more information about a specific command

E:toolsbux2.0pushbakframeworkoatarm64>

smali的命令列表如下

E:toolsbux2.0pushbakframeworkoatarm64>java -jar smali-2.5.2.jar h
usage: smali [-v] [-h] [

Options:
  -h,-?,--help - Show usage information
  -v,--version - Print the version of baksmali and then exit

Commands:
  assemble(ass,as,a) - Assembles smali files into a dex file.
  help(h) - Shows usage information

See smali help for more information about a specific command

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749631.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号