美文网首页
Android反编译(停止更新)

Android反编译(停止更新)

作者: Kerwin_Thomas | 来源:发表于2018-06-28 23:43 被阅读15次

反编译

常识

.apk文件

  1. META-INT 签名文件
  2. res 资源文件(AXML)
  3. R 资源文件
  4. AndroidManifest.xml 配置文件
  5. classes.dex
  6. resources.arsc 二进制资源文件
  7. lib 存放用C/C++编写的,用NDK编译生成的so文件
  8. 其他文件

.dex文件

是一种可在Dalvik虚拟机中执行的格式,包含最终由Android运行时执行的代码。

编译流程:.java -> .class -> .dex

.smali文件

Smali是Android的Dalvik虚拟机使用的一种dex格式的中间语言,是类似汇编语言的一套指令集,是Dalvik的寄存器语言

Android的签名保护机制

Android系统进制安装签名不一致的apk

什么是编译

什么是反编译

如何进行反编译

pic1.png

1. 使用apktool工具反编译

命令

// outDir为输出文件的路径
// 若不指定则为当前文件路径
java -jar apktool.jar d -f xxx.apk outDir

输入命令


apktool-res.png

反编译后目录如下


apktool2.png

这时已经可以获取图片和XML类型文件了,但源代码依然无法获取,现在其为smali格式


apktool3.png

工具

autoSign

签名工具

jadx

一款开源的Java decompiler

Command line and GUI tools for produce Java source code from Android Dex and Apk files

dex2jar

用于将dex文件转换成jar

jd-gui

用于将jar文件转换为java代码

apktool

用于还原9-patch图片、布局、字符串等一系列资源

AXMLPrinter2.jar

将xml文件反编译

操作

  1. 下载并解压相关工具,下载需要进行反编译的APK

影响

大胆一猜

  1. 获取用户名及密码
  2. 在用户不知情的情况下,控制用户的操作,向后台发送请求
  3. 恶意攻击后台,或者攻击用户,侵犯隐私及威胁数据安全

安全

代码混淆技术

Proguard

  1. It makes your Java and Android applications up to 90% smaller and up to 20% faster.
  2. ProGuard also provides minimal protection against reverse engineering by obfuscating the names of classes, fields and methods.

签名检测

目的:防止二次重打包

方式:
除了在java层处理,还可以在so或服务器中校验

应对:
在 so 里的用 IDA 打开 so 跟踪修改,服务器验证的抓包查看

使用C++改造底层

.etc

数据分拆合并

.etc

参考

Dex文件格式

Jadx使用方式

手把手教你逆向分析Android程序

相关文章

网友评论

      本文标题:Android反编译(停止更新)

      本文链接:https://www.haomeiwen.com/subject/wicoyftx.html