懂球帝app逆向之旅

声明:本文仅限学习交流使用,禁止用于非法用途、商业活动等。否则后果自负。如有侵权,请告知删除,谢谢!本教程也没有专门针对某个网站而编写,单纯的技术研究

案例分析

目标案例:
aHR0cHM6Ly9zdGF0aWMxLmRvbmdxaXVkaS5jb20vYXBwL2Fway9jaGFubmVsL2RvbmdxaXVkaS1EUURfUEMuYXBr

1.对应的接口和难点
在这里插入图片描述
需要解析无广告直播的链接进行使用

技术依赖

这个app检测SSL 证书,手机需要安装

JustMePlush.apk—2.1
Zygisk-LSPosed----1.92
frida—14.2.18
frida-tools —9.2.5

我这边用的真机,所以真机的依赖也需要装证书我们上一期都已经说了,不知道的可以看

https://blog.csdn.net/w62181310/article/details/134162716

frida可以查看我之前的项目进行查看

https://blog.csdn.net/w62181310/article/details/134197536

JustMePlush网上都有,就不赘述了,Zygisk-LSPosed安装如果发现装不了,可以下载zip进行使用

https://github.com/LSPosed/LSPosed

参数分析

app如果可以动态+静态同步使用破解事半功倍,那么我们先用jadx看看位置再上frida
我们通过jadx打开这个app的apk,还记得之前搞web的搜索大法嘛,这个同样适用

在这里插入图片描述
这里看着很像,但是不确定,我们直接上hook

用adb链接手机
在这里插入图片描述
在用adb进行转发,我这边使用python直接执行

import os


os.system("adb forward tcp:27042 tcp:27042")
os.system("adb forward tcp:27043 tcp:27043")

获取设备的代码

import frida

# 获取设备信息
rdev = frida.get_remote_device()
# 获取在前台运行的APP
front_app = rdev.get_frontmost_application()
print(front_app)

准备工作可以了,那么我们直接用frida进行hook下看看
在这里插入图片描述
很好已经开始hook了
在这里插入图片描述
我们对刚刚找到进行hook可以看到它是上面的是加密值下面是公钥
在这里插入图片描述
公钥在里面就用,那么我们可以直接找个在线的试一试
在这里插入图片描述
可以解出来,但是这里有一个重点,他是私钥进行的加密公钥进行的解密,所以需要注意

本期到这里就结束了,里面主要是ssl证书的认证和底层证书,底层证书这些网上都有现成教程,我就不班门弄斧了。最近确实有点忙,好长时间没更新了,后续一起学习一起进步!!!
拜拜
在这里插入图片描述

公钥解密样例

import base64
from rsa import core, PublicKey, transform


def public_key_decrypt(rsa_public_key_der_b64, qr_code_cipher_b64):
    qr_code_cipher = base64.b64decode(qr_code_cipher_b64)
    public_key = base64.b64decode(rsa_public_key_der_b64)

    try:
        rsa_public_key = PublicKey.load_pkcs1_openssl_der(public_key)
        cipher_text_bytes = transform.bytes2int(qr_code_cipher)
        decrypted_text = core.decrypt_int(cipher_text_bytes, rsa_public_key.e, rsa_public_key.n)
        final_text = transform.int2bytes(decrypted_text)
        final_qr_code = final_text[final_text.index(0) + 1:]
        return final_qr_code.decode()
    except Exception as ex:
        # _logger.exception(ex)
        return None


# 加密数据
message = "ZGFLsSSZLDTv31X2JWp2fqYbTLBNIcD+hgnYrxQjurkUneKbT9aanbv+Ie2uWfCC415kDiGhHSsdjjdrQvRiONEbkDvAdD1UZTJg7M5aLpr0YxBeXH40RW6X2DjKDGVaJUiUmg6E0TrFvTt9TIhQhkvqmP2WmgIf5oySSFkcitbvr7OTkG236IVvC5923pzOjn3f6FvivUEC2bGUXx3iPSQWIetkk6uXJXo5iPar5s/Ah7J5YgWh5xCrr2EZa2BfMdtiE2yDgYf6CU2kvlFOf+trlZukrL75EBz4v2wHSgbwUKINXNK77XzneJPC/NmcpaWlJM16H15lrMF8NIFb8Q=="
keys_ = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsmAfm+rJmiuvaR04aLgyeGEMjAU3Ei+u1tq+sgY4S8Te+uojItE1VRq+kUMf83ehERY9FzDafRrkIe2wIL1G97dvb1UMDlkRggxP3aetZFSuPDLBK5GSVUAOTluNgKRTurxoOQKhLrU14Y/W1chXSuFC6EqlqfZRpTlxE/N1r0zUYg+mDRDnACyEvw0ucm79y2oNxzldnP5a+d5RbyfLtvN2i49MXxuXf+uTGDI+gtQXTvr/qF69SAuHAJIGd1EeQjwUGEQtgo8dTguUKvN/nqMzaUw9L6zTgCZBM2dYRnxoyMt+58MGsNnzd4j/BnYiUogsOSGjA1FzKMhh5hFn/QIDAQAB'
print(public_key_decrypt(keys_, message))

效果

在这里插入图片描述

hook脚本分享

   Java.perform(function () {
    console.log('--------------------- hook start ---------------------------')
    let wb = Java.use('com.dongqiudi.news.util.w2');
    wb.a.overload('java.lang.String', 'java.lang.String').implementation = function (str, str2){
        console.log('=====================================================================================')
        console.log(str)
        console.log(str2)
        let res = this.a.overload('java.lang.String', 'java.lang.String').call(this,str, str2)
        console.log("加密结果:" + res);
        return res;
    }
})

相关推荐

  1. 字节面试题()后端开发

    2024-03-20 20:10:05       49 阅读
  2. 安卓apk逆向

    2024-03-20 20:10:05       50 阅读
  3. app逆向-frida-rpc详解

    2024-03-20 20:10:05       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-20 20:10:05       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-20 20:10:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-20 20:10:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-20 20:10:05       20 阅读

热门阅读

  1. ARM:汇编点灯

    2024-03-20 20:10:05       19 阅读
  2. 深入理解OnCalculate函数的运行机制

    2024-03-20 20:10:05       21 阅读
  3. Stability AI推出StableLM:开源ChatGPT替代方案

    2024-03-20 20:10:05       21 阅读
  4. 团体程序设计天梯赛 L2-027 名人堂与代金券

    2024-03-20 20:10:05       22 阅读
  5. Visual C++ 2005 可以生成清单信息了

    2024-03-20 20:10:05       20 阅读
  6. C语言基础练习——Day12

    2024-03-20 20:10:05       20 阅读
  7. Spring Data访问Elasticsearch----查询方法

    2024-03-20 20:10:05       24 阅读
  8. 了解比特币分叉:演变与分歧

    2024-03-20 20:10:05       20 阅读
  9. Docker 命令大全

    2024-03-20 20:10:05       19 阅读
  10. LeetCode204. Count Primes

    2024-03-20 20:10:05       22 阅读