文档章节

apk反编译 简述

RocZhang
 RocZhang
发布于 2017/02/07 13:49
字数 435
阅读 35
收藏 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反编译(二) 之反编译XML资源文件

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

老鹰a
2018/06/29
0
0
android apk反编译详解

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

刘小米
2014/10/30
0
0
浅析,反编译 Android APK流程分享!

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

科技创造
2015/07/07
4.1K
5

没有更多内容

加载失败,请刷新页面

加载更多

开始看《Java学习笔记》

虽然书买了很久,但一直没看。这其中也写过一些Java程序,但都是基于IDE的帮助和对C#的理解来写的,感觉不踏实。 林信良的书写得蛮好的,能够帮助打好基础,看得出作者是比较用心的。 第1章概...

max佩恩
昨天
9
0
Redux 三大原则

1.单一数据源 在传统的MVC架构中,我们可以根据需要创建无数个Model,而Model之间可以互相监听、触发事件甚至循环或嵌套触发事件,这些在Redux中都是不被允许的。 因为在Redux的思想里,一个...

wenxingjun
昨天
4
0
跟我学Spring Cloud(Finchley版)-12-微服务容错三板斧

至此,我们已实现服务发现、负载均衡,同时,使用Feign也实现了良好的远程调用——我们的代码是可读、可维护的。理论上,我们现在已经能构建一个不错的分布式应用了,但微服务之间是通过网络...

周立_ITMuch
昨天
2
0
XML

学习目标  能够说出XML的作用  能够编写XML文档声明  能够编写符合语法的XML  能够通过DTD约束编写XML文档  能够通过Schema约束编写XML文档  能够通过Dom4j解析XML文档 第1章 xm...

stars永恒
昨天
1
0
RabbitMQ学习(2)

1. 生产者客户端 void basicPublish(String exchange, String routingKey, boolean mandatory, boolean immediate, BasicProperties props, byte[] body) 1. 在生产者客户端发送消息时,首先......

江左煤郎
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多