【移动安全基础篇】——01、新版本调试方法及Smali函数文件修改

1. ShakaApktool 工具:比 Apktool 更加强大

d -> 反编译
b -> 回编译
-df -> 使用默认框架
-o -> 输出目录和文件名

2. 新调试方法:AndroidStudio/idea + smaliIdea 插件

(1)反编译 apk 文件

(2)AS/Idea 中导入源码, File -> open Or Import project

(3)安装好对应的 app 并打开 Android Device Monitor

设置远程调试选项
Run -> Debug Configurations -> Remote Java Application

Host 填写为 localhost
端口为 Debug 开放的端口 8700

(4)使用 adb 以 debug 方式启动 apk
Adb shell am start -D -n packageName/ActivityName

(5)下定断点,开始 Debug 操作

(6)对关注的寄存器添加 watch
Ps:需要在 monitor 中打开 8700 端口

动态调试得到注册码信息

动态调试验证注册码,check 信息为 true

Smali 代码与 Java 代码格式对照

静态分析 onClick 函数中的操作

静态分析出 getPasswordFromName 函数
3. Smali 函数以及调用
使用 p-v 寄存器

.method 访问修饰符 函数名 函数签名
     .locals n #使用 n 个寄存器,即 v0~v(n-1)
     .param p1, “savedInstanceState” #Landroid/os/Bundle; #注释
     … #函数实现
     Return-xxx #返回
 .end method

调用
Invoke {参数}, 方法名
参数都是通过寄存器传递的(Pn, Vn)

4. Smali 文件修改

(1)跳转修改;
(2)添加 log;
(3)手动调用类中的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值