【APP逆向17】解决app强制更新

  • 前言:当我们需要逆向某款app的特定版本,并且不是最新版本时,而app又有强制更新机制,该怎么办呢?

  • 1.如下图所示

  • 2.解决这种更新一般有两个版本

    • 2.1:关闭手机网络,打开app后,再次开启网络(low,并且在使用过程中可能再次出现更新弹框)
    • 2.2:通过hook机制,跳过弹框触发的请求
  • 3.以上图app为例,当我们反编译该app后,搜索版本

    • 3.1:
    • 3.2:点击进入,查看对应的代码
    • 3.3:根据字面意思,猜测,这里应该是检测app版本并且弹出更新框的地方,如是我们通过hook验证
  • 4.hook上述的方法,跳过show()

import frida
import sys

rdev = frida.get_remote_device()
pid = rdev.spawn(["com.hupu.shihuo"])
session = rdev.attach(pid)

scr = """
Java.perform(function () {
    // 包.类  
    var UpdateDialog = Java.use("com.azhon.appupdate.dialog.UpdateDialog");

    // Hook,替换 
    UpdateDialog.show.implementation = function(){
        console.log("-----------------------show来了-----------------------");

        //var res = this.show();
        //return res;
    };

});
"""

script = session.create_script(scr)
def on_message(message, data):
    print(message, data)

script.on("message", on_message)
script.load()
rdev.resume(pid)
sys.stdin.read()
  • 5.手机开启frida服务,设置端口转发--执行上述hook脚本后,我们发现app没有更新提示了。
posted @ 2024-02-28 21:50  Tony_xiao  阅读(1231)  评论(0编辑  收藏  举报