首页 > 其他分享 >Mac 下反编译Android APK

Mac 下反编译Android APK

时间:2022-09-07 10:24:42浏览次数:97  
标签:dex 反编译 dex2jar jar Mac sh apktool Android

准备工作:安装ApkTool、dex2jar、JD-GUI

安装ApkTool

1、下载ApkTool。大家可以从 https://ibotpeaches.github.io/Apktool/install/ 上下载ApkTool

2、安装ApkTool

(1)将下载好的apktool文件与apktool_2.4.0.jar文件准备好,并将apktool_2.4.0.jar更名为apktool.jar;

(2)将apktool.jar与apktool移动到/usr/local/bin目录下(可以通过在终端中输出命令open /usr/local/bin来打开这个目录);

(3)为上述两个文件增加可执行权限,即在终端中输入并执行:

 chmod +x apktool.jar
 chmod +x apktool

(4)在终端输入apktool看是否可以运行,如果不可以需要在系统偏好设置中打开安全与隐私中点击仍要运行apktool.jar;

安装dex2jar

大家可以从https://sourceforge.net/projects/dex2jar/files/ 上下载dex2jar

安装JD-GUI

大家可以从 http://jd.benow.ca/ 上下载JD-GUI

1、使用ApkTool反编译APK得到xml文件、AndroidManifest.xml和图片

cd [apkdir]
apktool d xxx.apk //该命令执行后会在同级目录下生成一个与你编译的apk同名的目录

通过上述命令就可以反编译apk了。

2、dex2jar将dex反编译成jar

第一步,解压apk获得dex文件

使用解压软件将apk进行解压(直接把后缀名改为.zip),得到classes.dex文件。有时有多个classes.dex文件(这是因为应用了MultiDex所致)。将classes.dex文件拷贝到下载解压的dex2jar目录下。然后执行如下代码进行反编译:

cd [你的dex2jar解压目录] 
sh d2j-dex2jar.sh classes.dex
sh d2j-dex2jar.sh classes2.dex

通过上述命令会得到一个或多个.jar文件(一个classes.dex产生一个jar文件)

3、使用JD-GUI查看反编译后的程序源码

将dex转换成jar之后接下来我们就可以使用JD-GUI来查看反编译后的程序源码了

操作步骤很简单,只需双击运行jd-gui-1.4.0.jar,然后将classes-dex2jar.jar拖拽到JD-GUI界面上即可

 
问题:d2j-dex2jar.sh: line 36: ./d2j_invoke.sh: Permission denied

执行sudo chmod 777 *.sh 命令搞定。

   

标签:dex,反编译,dex2jar,jar,Mac,sh,apktool,Android
From: https://www.cnblogs.com/myibm/p/16664359.html

相关文章

  • Android添加系统服务
    基于android12添加服务frameworks/base/services/java/com/android/server/SystemServer.java在这两个函数中都可以添加:startCoreServices()startOtherServices()......
  • 苹果Mac原型设计:Axure RP9如何查看和共享您的原型?
    今天就给大家带来了AxureRP如何查看和共享您的原型的教程,你快速完成操作,快来跟小编看看吧!为您带来Mac上好用的原型设计软件AxureRP9中文正式版,axuremac是专为UX专业......
  • Android获取Permission
    在AndroidManifest中加入需要获取的权限<uses-permissionandroid:name="android.permission.INTERNET"/><!--检查网络可用性--><uses-permissionandroid:name="an......
  • Android技术分享| Activity 过渡动画 — 让切换更加炫酷
    介绍在android5.0以上版本中,google为我们提供了几种activity切换的过渡动画,目的是为了让activity切换转场更加美观,而在android5.0之前的activity切换显得生硬......
  • Android系统属性-Settings.system和SystemProperties
    Android系统属性-Settings.system和SystemPropertiesJava代码--应用层方法:SystemProperties.get或者SystemProperties.set如果属性名称以“ro.”开头,那么这个属性被视......
  • MAC设置JAVA环境变量
    JAVA.bash_profile为每个用户配置环境变量,用户登录后会自动读取一次我们切换到当前用户主目录,然后编辑.bash_profile文件cd~vim.bash_profile输入内容假如我们有......
  • Windows/Mac OS常用快捷键汇总
    Windows/MacOS常用快捷键汇总目录Windows/MacOS常用快捷键汇总基本的快捷键文本编辑文本排版Web浏览器转自(Windows和Mac的键盘快捷键)[https://www.runoob.com/ta......
  • 3【Android 12】DisplayArea层级结构
    1DisplayArea类的继承关系DisplayArea类的继承关系,之前已经分析过,这里用一张简单的类图总结:2DisplayArea层级结构的生成既然DisplayContent是作为其代表的屏幕的Disp......
  • 安装程序无法自动安装 Virtual Machine Communication Interface Sockets (VSock) 驱
    安装程序无法自动安装VirtualMachineCommunicationInterfaceSockets(VSock)驱动程序,必须手动安装此驱动程序遇到的问题:虚拟机中安装的win7系统,在安装VMtools的时......
  • Android.mk 文件编写
    Android.mk以下内容通常够用,如需添加其他变量,百度查看LOCAL_PATH:=$(callmy-dir)//源码所在目录,写法固定include$(CLEAR_VARS)//清除除外LOCAL_PATH变量以外的其......