当前位置:   article > 正文

android java反编译_baksmali依赖文件

baksmali依赖文件

一: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。

  1. Install JDK7

    1. // For Ubuntu
    2. sudo apt-get install openjdk-7-jre
  2. Download dex2jar from dex2jar - Browse Files at SourceForge.net

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

    1. // For Linux
    2. unzip -x dex2jar-version.zip -d /home/panxiaobo
  1. use dex2jar to generate .jar file. dex2jar will generate a file named someApk-dex2jar.jar in the working folder.

    1. // For Linux, Mac OSX, Cygwin
    2. sh /home/panxiaobo/dex2jar-version/d2j-dex2jar.sh /home/panxiaobo/someApk.apk
    3. // For Windows
    4. C:\dex2jar-version\d2j-dex2jar.bat someApk.apk
  2. use a decompiler to view the source.

  3. that's it

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

https://github.com/java-decompiler/jd-gui/releases/icon-default.png?t=M1L8https://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:\tools\bux2.0\push\bak\framework\oat\arm64>java -jar baksmali-2.5.2.jar h
usage: baksmali [--version] [--help] [<command [<args>]]

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 <command> for more information about a specific command

E:\tools\bux2.0\push\bak\framework\oat\arm64>

smali的命令列表如下

E:\tools\bux2.0\push\bak\framework\oat\arm64>java -jar smali-2.5.2.jar h
usage: smali [-v] [-h] [<command [<args>]]

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 <command> for more information about a specific command

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/617068
推荐阅读
相关标签
  

闽ICP备14008679号