工具下载

 
 
根据apktool网站提示的下载方法,右击wrapper script,链接存储为apktool,不要带拓展名
 
 

然后点击find newest here下载apktool.jar,选择第一个下载最新版本

 
 

下载完把apktool_2.3.3.jar重命名为apktool.jar,然后把apktool.jar和apktool一起拷贝到/usr/local/bin路径下

 
 
 
 

这样环境就配好啦,打开终端,输入apktool命令,看到以下输出说明apktool配置成功

 
 

新建个MyTest目录方便管理,随便放个test.apk进去作为测试包

 
 

反编译

终端输入cd /Users/zachary/zachary/MyTest进入到测试apk所在目录,输入apktool d test.apk开始反编译

 
 

编译结束可以看到MyTest目录下多了个test文件夹,里面就是反编译以后的产物,我们想要的AndroidManifest.xml和res/.等资源文件

 
 

此时资源文件反编译就完成了,下面继续反编译java代码,这是就要用到dex2jarjd-gui
下载完dex2jarjd-gui解压一下就可以了,复制到MyTest目录方便操作

 
 

终端进入MyTest目录,输入命令sh dex2jar-2.0/d2j-dex2jar.sh test.apk(如果提示Permission Deny权限问题,先输入命令chmod +x dex2jar-2.0/d2j-dex2jar.sh改一下权限就好了)

 
 
运行结束,在MyTest目录会生成文件test-dex2jar.jar,就是我们需要的java代码压缩文件
 
 
右击用jd-gui打开(或者先打开jd-gui再把test-dex2jar.jar拖到jd-gui自动导入,就可以看到java代码啦
 
 
 

回编译

刚才我们执行apktool d test.apk反编译得到了test目录

 
 
 

回编译就是执行命令apktool b test

 
 
成功之后,test目录下会生成build和dist目录
 
 
build目录下存放的是打包后的dex文件和资源文件(和apk解压后一样一样的)
 
image.png

dist目录下存放的是重新打包后的apk文件

 
 

重新签名

复制签名文件到dist目录下方便操作

 
 
 

终端进入dist目录,执行命令jarsigner -verbose -keystore [your_key_store_path] -signedjar [signed_apk_name] [usigned_apk_name] [your_key_store_alias] -digestalg SHA1 -sigalg MD5withRSA
字段说明:

  • [your_key_store_path]:密钥所在位置的绝对路径
  • [signed_apk_name]:签名后安装包名称
  • [usigned_apk_name]:未签名的安装包名称
  • [your_key_store_alias]:密钥的别名

因为我们把秘钥和test.apk放在同一路径,所以密钥所在位置的绝对路径直接填testkey就好啦,macjenkinskey是我的秘钥别名,别误会(邪恶.jpg)

 
 

输一下密码,看不到输入的,开始签名

 
 
 
签完名后,在dist目录下就可以看到签完名后的apk了
 

后话

反编译的时候,也可以把test.apk的拓展名改成test.zip解压出来

 
把classes.dex复制到dex2jar-2.0路径下
 
 
 

终端进入dex2jar-2.0路径下,执行命令./d2j-dex2jar.sh classes.dex

 
 
同样可以得到classes-dex2jar.jar
 
 
反编译,再回编译,同样可以得到classes.dex,就在这个路径下
 
 
 
             收工.png


Android反编译apk并重新打包签名(Mac环境)的更多相关文章

  1. Android反编译odex然后重新打包

    #Android反编译odex然后重新打包 最近不知道怎么回事,突然把我那刷了氧OS的root了,然后就开始好奇起来氢OS所带有的那些本地化的东西,比如通话录音就是典型的一个之一.其中也做了很多的尝试 ...

  2. [Android]反编译apk + eclipse中调试smali

    从来没有想过反编译apk是来的如此方便,并且还可以修改后重新编译运行,这比在win下修改pe容易多了,感谢apktool和smali工具的作者提供这么好的工具. 跟踪apk一般的做法是在反编译的sma ...

  3. Android 反编译apk 详解

    测试环境: win 7 使用工具: CSDN上下载地址: apktool (资源文件获取)  下载          dex2jar(源码文件获取) 下载        jd-gui  (源码查看)  ...

  4. Android反编译和二次打包

    参考:APK反编译 一.工具介绍: 1.解压工具 2.JDK 3.apktool: aapt.exe,apktool.bat,apktool.jar;三个在同一目录结合使用,用来反编译apk,反编译生 ...

  5. Android 反编译apk

    工具介绍:    apktool 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 下载地址:https://bitbucket.org/iBotPeaches/apktool/downl ...

  6. Android 反编译Apk提取XML文件

    Apktool https://ibotpeaches.github.io/Apktool/install/ 下载地址:Apktool https://bitbucket.org/iBotPeache ...

  7. 【转】利用apktool反编译apk,并且重新签名打包

    网站:https://ibotpeaches.github.io/Apktool,下载安装好apktool. 我的安装在 C:\Users\Administrator\Downloads\apktoo ...

  8. Android反编译APK

    http://blog.csdn.net/vipzjyno1/article/details/21039349/ 关于被加壳工具添加我的apk如何脱壳 http://www.blogfshare.co ...

  9. Android反编译(三)之重签名

    Android反编译(三) 之重签名 [目录] 1.原理 2.工具与准备工作 3.操作步骤 4.装X技巧 5.问题 1.原理 1).APK签名的要点 a.所有的应用程序都必须有数字证书 ,Androi ...

随机推荐

  1. 与TIME_WAIT相关的几个内核参数

    问题 公司用浏览器访问线上服务一会失败一会成功,通过ssh连接服务器排查时发现ssh也是这样: 检查 抓包后发现建立连接的请求已经到了服务器,但它没有响应: 纠结了好久,后来在腾讯云技术支持及查了相关 ...

  2. 自定义控件之SegmentControlView

    SegmentControlView配合PageView使用 效果图 核心代码 package com.example.segmentcontrolview; import android.conte ...

  3. windows中的软链接硬链接等

    学校嘛,有些时候还是得逆逆上网客户端啥的,并且学校的不少工作,这Windows的需求还是挺强的,之前Win10的体验并不是太好,不过时隔这么久,打算从7升级到10了,恰好系统也该换了. 首先是命令行的 ...

  4. 基于卷积神经网络CNN的电影推荐系统

    本项目使用文本卷积神经网络,并使用MovieLens数据集完成电影推荐的任务. 推荐系统在日常的网络应用中无处不在,比如网上购物.网上买书.新闻app.社交网络.音乐网站.电影网站等等等等,有人的地方 ...

  5. 20165306 Exp6 信息搜集与漏洞扫描

    Exp6 信息搜集与漏洞扫描 一.实践内容概述 1.实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 2.实践内容 (1)各种搜索技巧的应用 搜索网址目录结构 搜索特定类型的文件 搜索E-Ma ...

  6. hadoop配置项笔记 - yarn

    hadoop版本:3.1.1 yarn-site.xml yarn.log-aggregation-enable 作用:是否开启任务日志收集 默认值:false 我的设置:true yarn.log- ...

  7. heartbeat 非联网安装(通过配置本地yum文件库安装heartbeat)

    软件环境:centos6.5 一.下载rpm包 首先找一台联网的centos6.5机器 安装epel扩展源: yum install -y epel-release 安装yum-plugin-down ...

  8. Android 简单记事本

    写在前面 课程作业需要,于是忙活好几天抄了一个简单的记事本,使用已学内容包括Android UI布局,Activity的跳转,SQLite数据库. 开发环境:Android Studio 参考:htt ...

  9. 关于Ocelot和Consul 实现GateWay(网关) 服务注册 负载均衡等方面

    Ocelot   路由  请求聚合  服务发现 认证  鉴权 限流熔断 内置负载均衡器 Consul   自动服务发现    健康检查 通过Ocelot搭建API网关   服务注册   负载均衡 1. ...

  10. 自定义 Cordova插件(基础篇)

    cordova自定义插件 注意:存放自定义cordova插件目录不能有空格可能会报错 cordova的安装 下载node.js,安装完成后你可以在命令行中使用node和npm. 安装cordova使用 ...