《安卓逆向这档事》第四节课后小作业贴
本帖最后由 正己 于 2022-11-18 10:52 编辑# 一.目录
---
[《安卓逆向这档事》一、模拟器环境搭建](https://www.52pojie.cn/thread-1695141-1-1.html)
[《安卓逆向这档事》二、初识APK文件结构、双开、汉化、基础修改](https://www.52pojie.cn/thread-1695796-1-1.html)
[《安卓逆向这档事》三、初识smail,vip终结者](https://www.52pojie.cn/thread-1701353-1-1.html)
[《安卓逆向这档事》四、恭喜你获得广告&弹窗静默卡](https://www.52pojie.cn/thread-1706691-1-1.html)
# 二.前言
---
为了提高大家的积极性,特意开了这个作业贴。
鉴于前两课的作业我已经讲解了,所以这个贴就给第四课。
编程这件事,一定要做好笔记,并且关掉视频自己动手实操一遍,这样效果最佳!!!
**帖子我设置只有我可见,等一周后取消,切记不要回复和作业无关内容,否则会被扣分,前50个名交作业的同学有奖励。**
# 三.优质作业展示
---
待更新 第四课作业
先上结果:
过程如下:
1. 查看整个弹窗可能出现的关键字或者关键函数
2. MT搜索dex关键字(论坛)
3.发现可疑类
4.查看可疑类,看了一下主要实现了两个Dialog的弹窗方法
4.查看是否有引用该方法的Activity,看起来是MainActivity在oncreate的时候调用了弹窗类
5.定位具体调用的代码段
6. 查看是否有其他方法的调用,发现没有其他调用依赖,暴力删除该行代码,重新编译签名后,确认无弹窗
第二关练习:通过不同方式修改一件三连和硬币判断
方法一:
if-eqz p0, :cond_42
.line 37
check-cast p1, Landroid/content/Context;
const-string p0, "当前已经是大会员了哦!"
将 if-eqz 修改为nez 破解大会员提示 此方法为修改判断条件
方法二:
找到isvip函数
.method public final isvip()Z
.registers 2
const/4 v0, 0x0
return v0
.end method
将const/4 v0, 0x0 修改为 const/4 v0, 0x1 此方法为 修改函数返回值
方法三:
if-ge p0, v0, :cond_15
.line 34
move-object p0, p1
check-cast p0, Landroid/content/Context;
const-string v0, "请先获取10个硬币哦"
这里是 if-ge 跳转cond_15 直接将 if-ge 修改为goto 此方法为 强制跳转
最终效果:
丑小鸭师傅的demo练习:
进入app 发现点击登录出现"登陆失败"直接mt先搜索一波
emmm,,,搜不到。发现字打错了。 "登录失败"是这个再搜一次
.method public check(Ljava/lang/String;Ljava/lang/String;)V
.registers 5
.param p1, "name"# Ljava/lang/String;
.param p2, "pass"# Ljava/lang/String;
.prologue
const/4 v1, 0x0
.line 28
const-string v0, "hfdcxy"
invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_1b
const-string v0, "1234"
invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_1b
.line 30
const-string v0, "登录成功"
invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v0
invoke-virtual {v0}, Landroid/widget/Toast;->show()V
.line 34
:goto_1a
return-void
.line 33
:cond_1b
const-string v0, "登录失败"
invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v0
invoke-virtual {v0}, Landroid/widget/Toast;->show()V
goto :goto_1a
.end method
这瞧一眼账号hfdcxy密码1234 判断是这个 就登陆成功 不是的话 就登陆失败
破解的方法非常多最简单直接的 两个eqz 改成nez什么都不输入直接登录 就能登陆成功了。
本帖最后由 Null666yyds 于 2022-11-2 23:49 编辑
额,就简单说一下吧。。:sleepy:
http://cdn.img.kggzs.cn/uploads/2022/11/02/63615439d91d4.jpg
这样就注册id没了,。
这两个删掉,(第三关)http://cdn.img.kggzs.cn/uploads/2022/11/02/636154acc3166.jpg
http://cdn.img.kggzs.cn/uploads/2022/11/02/636154e6f07c6.jpg
第五关,把类名里check*方法的返回值赋值为true
useNewAPICheck同样
注:首页np加的那个弹窗搜字符串,加return-void即可,由于太过简单不过多说明 Null666yyds 发表于 2022-11-2 01:21
额,就简单说一下吧。。
这样就注册id没了,。
我指的是首页里的弹窗哦,不是第三关,而且你应该下载作业demo去看看
np加的{:301_997:}
查看classes.dex直接搜索【定位】出来3个结果随便进去一个经测试用 # 去注释37行或者77行后安装还是有弹窗
第一种
注释117行
安装后弹窗成功去除
第二种
直接在84行添加return-void
安装测试成功无弹窗
通过MT直接搜索关键字定位的,将三个show()注释了。activity好像没找到这个的活动记录,算法助手也试了关键字拦截,好像也不行
https://arcticlyc.lanzout.com/i2mmB0f3av6b
密码:6n4v