安卓逆向-JADX | APKTOOL | 签名

JADX

(把apk jar class dex等直接转化为java代码)
通过文件名可以先自己猜一下文件的作用
利用好搜索功能

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一些使用经验(内存不足/代码展示不全)

在这里插入图片描述
在这里插入图片描述


APKTOOL

(.dex是Android虚拟机可执行的字节码文件,通过反编译成可读文件,APKTOOL反编译apk包里面的所有内容,而不光是解压 .dex->.smali)
命令行操作
apktool d test.apk         # 解压
apktool b 目录             # 重新打包,打包完放在目录下的dist文件夹里
大厂安全人员可能利用APKTOOL的漏洞,让我们反编译APP失败。方法:1.搞老版本 2.等APKTOOL升级 3.自己改APKTOOL(开源)

关于smali

  • 一个.smali文件对应一个原java文件
  • .smali可以和.dex相互转换
  • 修改APK代码通常修改smali文件(重新修改.java源代码 重新编译的困难太大)
  • baksmali.jar smali.jar可以对dex 和 smali文件做转换
Dalvik 虚拟机(Dalvik VM)是 Google 专门为 Android 平台设计的一套虚拟机。区别于标准 Java 虚拟机 JVM 的 class 文件格式,Dalvik VM 拥有专属的 DEX 可执行文件格式和指令集代码。反汇编后 DEX 文件会产生.smali 后缀的代码文件,smali 代码拥有特定的格式与语法,smali 语言是对 Dalvik 虚拟机字节码的一种解释

在这里插入图片描述

反编译后的AndroidManifest.xml

  • APP权限配置
  • 程序入口
  • 逆向的关键线索
    在这里插入图片描述
<application>标签(一个apk只有一个)在这里插入图片描述
<activity>标签
关键找<action>带main特征的,然后反向找到<activity>上写的关键类

在这里插入图片描述

在这里插入图片描述

签名

keytool jarsigner 工具是JAVA JDK自带的
用keytool生成证书(命令行 -validity是证书有效期)
keytool -genkey -keystore my-release-key.keystore -alias my_alias -keyalg RSA -keysize 4096 -validity 10000
用生成的证书给apk签名(命令行)
jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore my-release-key.keystore -signedjar 
 com.dahuodong.veryevent_4.6.2_60_sign.apk com.dahuodong.veryevent_4.6.2_60.apk my_alias

在这里插入图片描述
在这里插入图片描述

未签名APK不能在安卓手机上安装,APP在启动时会对签名校验,要逆APP,跳过校验

猜你喜欢

转载自blog.csdn.net/m0_50685012/article/details/113431160
今日推荐