文档章节

apk反编译 简述

RocZhang
 RocZhang
发布于 2017/02/07 13:49
字数 435
阅读 28
收藏 0

#准备工具#
注:以下AS=Android Studio ##Smalidea+Android Studio调试smali代码## github地址
下载地址 (下载最新版baksmali, smali, smalidea) 安装
打开Android Studio:Tools>Android>SDK Manager>Plugins>Install plugin from disk...>——选择下载好的smalidea-0.03.zip

##APKTOOL##
下载地址
安装说明文档地址

#将反编译得到的Smali代码导入到Android Studio并配置调试端口#
##用ApkTool或baksmali得到smali代码##

java -jar baksmali-2.2b4.jar help
java -jar baksmali-2.2b4.jar disassemble myapp.apk -o ./projects/myapp/src

    apktool d <file.apk> 反编译到当前文件夹
    apktool d <file.apk> -o <dir> 反编译到指定文件夹
    apktool d –f <file.apk> <dir>  强制覆盖已存在文件

用文本编辑工具打开AndroidManifest.xml,在application节点中设置属性android:debuggable="true"
添加调试等待

invoke-static {}, Landroid/os/Debug;->waitForDebugger()V //可以添加到应用启动的onCreate方法中

打包文件

    apktool b -d <dir> -o <file.apk>

使用keytool和jarsinger给apk重新签名

keytool -genkey -v -keystore my-keystore.keystore -alias name_alias -keyalg RSA -validity 10000
 (validity为有效期,单位是天)
jarsigner -verbose -keystore <path of my-keystore.keystore> <path of apk>  alias_name
zipalign -f -v 4 <your.apk >  <your_aligned.apk>

参考
【Android安全】使用jarsigner命令对apk进行重签名
使用keytool和jarsigner为jar签名

##将反编译得到的Smali代码导入Android Studio## 打开AS>import project>选择Smali文件夹> 一路下一步即可
右键project>Mark Directory As..>Sources Root
File>Project Structure..>选择对应的SDK
依次选择Run>Edit Configurations...>+>Remote>输入调试进程的名字(可选),填写一个未被占用端口(8700)>ok
链接手机,打开USB调试

adb install <file.apk>

Tools>Android>Android Device Monitor(可以通过一个完整的Gradle项目打开)
选择Devices>Thread>选中8700端口应用
返回AS,设置好断点,点击debug按钮,开始调试

© 著作权归作者所有

共有 人打赏支持
RocZhang

RocZhang

粉丝 7
博文 17
码字总数 10646
作品 0
东城
程序员
Android Studio 开发之NDK混合开发的应用

NDK简述 Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”。 NDK包括了: 从C / C++生成原生代码库所需要的工具和build files。 将一致的...

qq_35703234
2017/08/23
0
0
反编译 apk 工具--onekey decompile apk

功能 集成apktool/dex2jar/jd-gui 只需执行一步即可反编译出apk所有文件(资源文件和jar等等) 打开jd-gui反编译jar文件 使用方法 在Downloads中下载onekey-decompile-apk.zip, 解压缩到类似D...

叶秀兰
2014/04/09
4.5K
1
浅析,反编译 Android APK流程分享!

作为公司的技术兼产品人员,看到别人开发的优秀Android APK实在羡慕,在Android开发的过程,也很想去学习别人那些漂亮的动画和布局,或是产品逻辑等是怎么做的,所以最近学习了对APK的反编译...

科技创造
2015/07/07
3.9K
5
Android APK反编译详解(附图)

这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。 在此郑重声明,贴出来的目的不是为了去破解人家的软...

长平狐
2013/01/06
121
0
Android反编译(二) 之反编译XML资源文件

Android反编译(二) 之反编译XML资源文件 [目录] 1、工具 2、反编译步骤 3、重新编译APK 4、实例 5、装X技巧 6、学习总结 1、工具 1).反编译工具 apktool http://code.google.com/p/android-a...

老鹰a
06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

深夜胡思乱想

魔兽世界 最近魔兽世界出了新版本, 周末两天升到了满级,比之前的版本体验好很多,做任务不用抢怪了,不用组队打怪也是共享拾取的。技能简化了很多,哪个亮按哪个。 运维 服务器 产品 之间的...

Firxiao
4分钟前
0
0
MySQL 8 在 Windows 下安装及使用

MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用法。 下载 下载地址 https://dev....

waylau
38分钟前
0
0
微信第三方平台 access_token is invalid or not latest

微信第三方开发平台code换session_key说的特别容易,但是我一使用就带来无穷无尽的烦恼,搞了一整天也无济于事. 现在记录一下解决问题的过程,方便后来人参考. 我遇到的这个问题搜索了整个网络也...

自由的开源
今天
0
0
openJDK之sun.misc.Unsafe类CAS底层实现

注:这篇文章参考了https://www.cnblogs.com/snowater/p/8303698.html 1.sun.misc.Unsafe中CAS方法 在sun.misc.Unsafe中CAS方法如下: compareAndSwapObject(java.lang.Object arg0, long a......

汉斯-冯-拉特
今天
2
0
设计模式之五 责任链模式(Chain of Responsibility)

一. 场景 相信我们都有过这样的经历; 我们去职能部门办理一个事情,先去了A部门,到了地方被告知这件事情由B部门处理; 当我们到了B部门的时候,又被告知这件事情已经移交给了C部门处理; ...

JackieRiver
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部