文档章节

apk反编译 简述

RocZhang
 RocZhang
发布于 2017/02/07 13:49
字数 435
阅读 37
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

JWT学习总结

官方 https://jwt.io 英文原版 https://www.ietf.org/rfc/rfc7519.txt 或 https://tools.ietf.org/html/rfc7519 中文翻译 https://www.jianshu.com/p/10f5161dd9df 1. 概述 JSON Web Token(......

冷基
今天
4
0
AOP的学习(1)

AOP 理解AOP编程思想(面向方法、面向切面) spring AOP的概念 方面 -- 功能 目标 -- 原有方法 通知 -- 对原有方法增强的方法 连接点 -- 可以用来连接通知的地方(方法) 切入点 -- 将用来插入...

太猪-YJ
今天
4
0
一张图看懂亮度、明度、光度、光亮度、明亮度

亮度、明度、光亮度,Luminance和Brightness、lightness其实都是一个意思,只是起名字太难了。 提出一个颜色模型后,由于明度的取值与别人的不同,为了表示区别所以就另想一个词而已。 因此在...

linsk1998
昨天
11
0
Python应用:python链表示例

前言 python链表应用源码示例,需要用到python os模块方法、函数和类的应用。 首先,先简单的来了解下什么是链表?链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是...

python小白1
昨天
5
0
Source Insight加载源码

Source Insight是一个图形化的源代码查看工具(当然也可以作为编译工具)。如果一个项目的源代码较多,此工具可以很方便地查找到源代码自建的依赖关系。 1.创建工程 下图为Snort源代码的文件...

天王盖地虎626
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部