• Android逆向学习(三)vscode修改smali绕过vip


    Android逆向学习(三)vscode修改smali绕过vip

    写在前面

    这是吾爱的第二个作业,主要就是要修改smali代码,其实smali代码我感觉没有必要去学,当然主要是我本来就会汇编语言,基本上汇编语言都是一样的,我是了解过mips,x86,jimple的,不管是mips还是smali还是x86的或者jimple,主要就是最寄存器的一些操作,格式也都差不多,简单学一下就可以上手

    修改判断绕过vip

    还是老样子,我们直接逆向后找到第二个挑战

    事实上这个挑战我感觉更加简单,所以大概率这篇博客看起来像是一个水文

    1、任务目标

    在这里插入图片描述

    这一个挑战的目标就是实现投币的一键三连,但是三连的话需要有一个大会员判断,我们这一次的任务就是绕过这个大会员

    2、代码分析

    我们直接使用之前的代码逆向软件,逆向后找到这个activity。然后看看这个代码的逻辑是怎么样子的

    在这里插入图片描述

    这时候可以直接使用smali2java这个插件查看反编译的java代码,但是缺点就是没法直接改java代码然后逆向回去,这里点名表扬一下dnspy这个软件,这是个专门对.NET进行逆向的一个软件,这个软件就可以直接修改代码后重新编译回去

    然后查看代码结构我们发现他就是通过isvip这个函数判断是不是大会员,这里其实有两个方法,一种是改变判断条件,一种是改变返回值,这个只需要简单学一下smali代码的语法就可以了,我选择的是第二种,这种更加简单

    我们通过查看代码发现isvip是只会返回一个false,我们就把它换成true就可以了

    然后我们很快就发现这个代码了

    .method public final isvip()Z
        .locals 1
    
        const/4 v0, 0x0
    
        return v0
    .end method
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3、代码修改

    然后我们将这个代码修改为这样

    .method public final isvip()Z
        .locals 1
    
        const/4 v0, 0x1
    
        return v0
    .end method
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    把0x0换成0x1,就相当于永远返回true了

    然后我们重新打包一下,然后签名安装

    4、结果

    20230903222258

  • 相关阅读:
    为什么我的remix没有injected web3
    robotframework在Jenkins执行踩坑
    【论文阅读】Dense Passage Retrieval for Open-Domain Question Answering
    分布式概念:编码一个简单分布式系统
    自己做网站需要考虑的问题
    Chrome 配置samesite=none方式
    JAVA学习第十课:java事件处理
    HPE脚本更新致京都大学77TB数据被删
    Qt5和Qt6的区别
    安卓基础学习 Day19|安卓高级控件------下拉列表
  • 原文地址:https://blog.csdn.net/qq_52380836/article/details/132656593