正己 发表于 2022-11-1 22:00

《安卓逆向这档事》第四节课后小作业贴

本帖最后由 正己 于 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个名交作业的同学有奖励。**
# 三.优质作业展示
---
待更新

Eaysuild.xean 发表于 2022-11-2 00:37

第四课作业
先上结果:

过程如下:
1. 查看整个弹窗可能出现的关键字或者关键函数

2. MT搜索dex关键字(论坛)

3.发现可疑类

4.查看可疑类,看了一下主要实现了两个Dialog的弹窗方法

4.查看是否有引用该方法的Activity,看起来是MainActivity在oncreate的时候调用了弹窗类

5.定位具体调用的代码段



6. 查看是否有其他方法的调用,发现没有其他调用依赖,暴力删除该行代码,重新编译签名后,确认无弹窗


renhang 发表于 2022-11-3 17:15

第二关练习:通过不同方式修改一件三连和硬币判断         
    方法一:

   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 01:21

本帖最后由 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即可,由于太过简单不过多说明

正己 发表于 2022-11-2 09:24

Null666yyds 发表于 2022-11-2 01:21
额,就简单说一下吧。。

这样就注册id没了,。


我指的是首页里的弹窗哦,不是第三关,而且你应该下载作业demo去看看

Tonyha7 发表于 2022-11-2 09:39


np加的{:301_997:}

aazsjcl 发表于 2022-11-2 14:28

查看classes.dex直接搜索【定位】出来3个结果随便进去一个经测试用 # 去注释37行或者77行后安装还是有弹窗

第一种
注释117行
安装后弹窗成功去除

第二种
直接在84行添加return-void
安装测试成功无弹窗

AngMer 发表于 2022-11-2 15:45

Frank丶 发表于 2022-11-2 17:12

Schwarz 发表于 2022-11-2 22:44

通过MT直接搜索关键字定位的,将三个show()注释了。activity好像没找到这个的活动记录,算法助手也试了关键字拦截,好像也不行

Arcticlyc 发表于 2022-11-2 23:04

https://arcticlyc.lanzout.com/i2mmB0f3av6b
密码:6n4v
页: [1] 2 3 4
查看完整版本: 《安卓逆向这档事》第四节课后小作业贴