Mac Android Apk反编译

news/2025/2/26 7:38:23

转自:https://www.cnblogs.com/typing/p/7780017.html

在mac os系统上反编译android apk,首先需要准备好以下3个文件:

1、apktool:https://ibotpeaches.github.io/Apktool/install/  

2、dex2jar:https://github.com/pxb1988/dex2jar 

3、jd-gui:http://jd.benow.ca

 

下载好后,就可以开始我们的反编译之路了:

1、安装apktool:将下载的apktool.jar和apktool.txt(可能下载的不是这个名称可以修改一下),apktool.txt需要另保存名称为apktool(不需要sh和txt后缀)可以执行以下命令:

touch apktool

cat apktool.txt >> apktool就行

然后将shell脚本apktool和apktool.jar移到/usr/local/bin文件夹下

sudo -s

mv 源文件 /usr/local/bin

然后执行apktool -v命令:如出现以下提示就说明成功了

2、dex2jar和jd-gui解压即可;

3、执行命令apktool d apk文件:如

以下是生成的文件夹:

这个文件夹下可以看到apk中的资源文件,如图片,xml文件等等,如果你只需要获取图片等资源文件那么到这里就可以了,若要进一步获取java代码的话就需要用到dex2jar和jd-gui工具了

1、要获取java代码的话就要进行回编译(apktoo可以进行反编译和回编译),主要就是获取classex.dex文件。

运行命令:apktool b 反编译生成的文件夹

如:

会生成build文件夹:如

其中classes.dex文件就是我们所需要的了,不同的apk会生成不同数量的classes.dex文件,看大小和拆分了。

 

2、现在要用到我们的dex2jar这个工具了

d2j-dex2jar.sh和d2j_invoke.sh添加运行权限:

chmod +x d2j-dex2jar.sh

chmod +x d2j_invoke.sh

然后运行命令./d2j-dex2jar.sh apk,如

之后可以在dex2jar文件夹中看到classes-dex2jar.jar文件,这个就是最终的java文件,那么我们怎么看呢,这就要用到我们下载的jd-gui了

 

3、安装jd-jui,直接安装,会报错,因为来源不信任,无法安装。

这时的安装方法是:

使用brew安装 ,打开终端窗口,输入下面命令

brew cask install jd-gui

如果提示 brew 不是。。。命令,则需要安装brew,输入下面命令即可安装 brew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"  

回车(这里有提示目录不存在,要创建需要按return 回车键 即可安装)

brew 安装完成后 然后输入

brew cask install jd-gui 等待一会即可安装成功(一定要保证网络良好)。

 

打开jd-gui工具,将classes-dex2jar.jar拖入即可,如下所示显示:

终于完成了!!

 

 

 

 

文章是转载的,另一 篇是

https://www.cnblogs.com/typing/p/7780017.html


http://www.niftyadmin.cn/n/543238.html

相关文章

通过使用浏览器对象模型,输出当前浏览器窗口中打开的文档的URL信息,并将显示在窗口中。...

<script type"text/javascript">window.document.write("这个网页文件来自&#xff1a;".bold());window.document.write(window.location.toString());</script>转载于:https://www.cnblogs.com/clear93/p/4624174.html

Android安全之---应用防dex2jar原理及实现

转自&#xff1a;https://www.jianshu.com/p/0306cb947d7a 一、反编译某平台代码 最近在看某外卖平台的代码&#xff0c;发现某外卖平台最新版本版本无法正常的通过dex2jar工具将dex转换出Java源代码&#xff0c;在转换过程中会提示出错&#xff0c;如图&#xff1a; dex2jar…

中企通信亮相WRE制造业CIO峰会2017

由WRE CIO Alliance与Trueadvisor联合主办的“WRE制造业CIO峰会2017”在2017年6月22日-23日在上海锦江汤臣洲际大酒店成功举办&#xff0c;作为WRE首席信息官系列峰会之一的制造业CIO峰会将汇集超过250世界领先制造业的公司CIO, CTO和IT高管&#xff0c;其中包括全球顶尖IT研究…

java中的sleep()和wait()的区别

转自&#xff1a;https://www.cnblogs.com/hongten/p/hongten_java_sleep_wait.html 对于sleep()方法&#xff0c;我们首先要知道该方法是属于Thread类中的。而wait()方法&#xff0c;则是属于Object类中的。 sleep()方法导致了程序暂停执行指定的时间&#xff0c;让出cpu该其…

浅谈软件创新之处

微信小游戏——跳一跳 作为一个PC端的小程序&#xff0c;微信跳一跳曾一度被刷爆朋友圈&#xff0c;成为最受欢迎的小游戏&#xff0c;它无疑是很成功的。游戏简单&#xff0c;容易上手。那么它如此受欢迎的原因或者说它和其他游戏相比优势和创新在何处呢&#xff1f;首先&…

[TypeScript] TypeScript对象转JSON字符串范例

[TypeScript] TypeScript对象转JSON字符串范例 Playground http://tinyurl.com/njbrnrvSamples class DataTable {public columns: Array<string> new Array<string>();public rows: Array<DataRow> new Array<DataRow>(); }class DataRow {public c…

自定义RecyclerView,实现ListView、GridView、ViewPager功能

CommonRecyclerView 通用的RecyclerView&#xff0c;实现了RecyclerView、GridView、ViewPager功能 How to To get a Git project into your build: Step 1. Add the JitPack repository to your build file gradle maven sbt leiningen Add it in your root build.gradle …

使用PowerShell Direct从Hyper-V主机管理VM

使用PowerShell Direct从Hyper-V主机管理VM借助PowerShell Direct&#xff0c;我们可以无需担心网络或防火墙限制&#xff0c;因为无论网络还是远程管理配置&#xff0c;它都可以工作。那么&#xff0c;很多朋友都会问既然不是通过网络和防火墙那是通过什么样的方式连接的呢&am…