吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 421|回复: 0
上一主题 下一主题
收起左侧

[原创] 简单记录Bypass IOS数据恢复软件验证过程

[复制链接]
跳转到指定楼层
楼主
a3341736201 发表于 2026-5-29 00:23 回帖奖励
前言:
因为帮朋友 需要用到 ios数据恢复软件,找了论坛一圈发现很多都不能用 但是找到一个还在更新的数据恢复软件商,
进入官网发现是海外的 还有很多比如安卓啊等等的,说明可以用我这里就下载ios的安装包
【建议大家支持正版,正版才几百块,我这里仅供技术娱乐】
正文:

下载打开了之后,丢到openclaw 他帮我自动分析 软件的基础信息





Qt C++:
├── Qt5Core.dll, Qt5Gui.dll, Qt5Widgets.dll
├── libcurl.dll (网络)
├── libssl/libcrypto (OpenSSL)
└── .rcc 语言资源包


验证关键词模块 是在Framework.dll 这个文件 然后我就直接使用 DNSpy,反编译直接看代码



// 从 Framework.dll 提取的参数模板:
user_email=%1                    // 用户邮箱
register_code=%1                 // 注册码
hardware_info=%1                 // 加密硬件指纹
product_id[0]=%1                 // 产品ID(数组格式!)
user_email[0]=%1                 // 邮箱(数组格式)
register_code[0]=%1              // 注册码(数组格式)
hardware_info_v2=%1              // 硬件指纹V2
platform=win                      // 平台标识



网络请求方面,请求了俩XML
<!-- v2 格式 -->
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
  <code>0</code>              <!-- 0=成功, 其他=失败 -->
  <result>success</result>
</root>

<!-- v3 格式 -->
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
  <code>0</code>
  <message>success</message>
  <data><license>
    <email>user@example.com</email>
    <expire_date>2099-12-31</expire_date>
    <type>full</type>
  </license></data>
</response>

这里可以用到 win自带的抓包




# 执行powershell开始抓包 
ipconfig /flushdns
netsh trace start capture=yes \
    IPv4.Address=你的IP \
    tracefile=C:\Users\Administrator\Desktop\capture.etl \
    maxSize=500 fileMode=circular

启动好了之后,直接手动运行软件 在目标软件中执行注册操作, 你的桌面就会出一个 etl文件 然后ETL 转 XML

执行图中的命令,得到XML之后,就开始提取HTTPS 服务器的证书信息



原始 ETL offset 863588 解码:
Let's Encrypt          ← CA机构
R13                     ← 中间证书
260404064238Z           ← 生效日期: 2026-04-04
260703064237Z           ← 到期日期: 2026-07-03
idr.aokreg.com          ← 证书CN = 真实服务器域名!
http://r13.i.****.org/  ← OCSP


当然请求抓包的时候,也能看到他的xml响应格式


<!-- v2 格式 -->
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
  <code>0</code>              <!-- 0=成功, 其他=失败 -->
  <result>success</result>
</root>

<!-- v3 格式(更完整) -->
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
  <code>0</code>
  <message>success</message>
  <data><license>
    <email>user@example.com</email>
    <expire_date>2099-12-31</expire_date>
    <type>full</type>
  </license></data>
</response>

还原硬件指纹构造

// 从 Framework.dll 的格式字符串还原:
QString strUserID = getMachineUserID();  // HKLM\.aku 或类似隐藏键
QString SN = getHardDiskSerialNumber();  // WMI Win32_DiskDrive SerialNumber
QString IDPost = generateMachineCode();  // 自定义哈希算法

// 日志输出格式:
"Reg strUserID : %s, SN : %d, IDPost : %s"

// 本机实际值示例:
userID: 57a0ab4cf9074c02a7b573646dd27abd
SN:     VMWare NVME_0000
IDPost: JCCPDRGVGENUWRSUBCDUNWIAKVNPZPQS


关键回调函数定位



// Qt 信号槽机制(C++ mangled names):
AkClientAuthorization::authorizationCheckResult(int, const QString&)
    ↓ 触发
AkRegisterDlg::onAuthorizationCheckResult(int, const QString&)
    ↓ 解析 code
    code == 0 → emit c_regok
    code != 0 → emit c_regreject

// 主窗口也监听此信号:
AkMainWindowBase::onAuthorizationCheckResult(int, const QString&)

// 启动定时检查:
Register::startCheckRegist()
    ↓ 定时调用
Register::isRegisted(const QString& productId) → bool


基础分析完了之后,就开始三连拳法


拳法1:Hosts DNS 劫持(切断与真实服务器的通信)


打开本地host \System32\drivers\etc\hosts




Bypass Start

127.0.0.1 auth.example.com
127.0.0.1 verify.example.com
127.0.0.1 license.example.com

Bypass End



拳法2:本地假验证服务器(返回伪造的成功响应)
上面我说了 他有xml返回,所以我们需要构造一个服务端 拦截伪造他返回的响应

#!/usr/bin/env python3
"""通用假注册验证服务器模板"""
import http.server, json, threading, ssl, os

class FakeAuthHandler(http.server.BaseHTTPRequestHandler):
    # === 编辑这里:匹配目标软件的响应格式 ===

    SUCCESS_XML = '''<?xml version="1.0" encoding="UTF-8"?>
<response><code>0</code><message>success</message></response>'''

    SUCCESS_JSON = {"code": 0, "message": "success", "activated": True}

    def do_GET(self): self._handle()
    def do_POST(self): self._handle()

    def _handle(self):
        cl = int(self.headers.get('Content-Length', 0))
        body = self.rfile.read(cl) if cl else b''

        # 打印日志(观察真实请求内容)
        print(f"[{self.command}] {self.path}")
        if body:
            print(f"  Body: {body.decode('utf-8','replace')[:300]}")

        # 根据路径和Accept头选择响应格式
        ct = self.headers.get('Accept','') + self.headers.get('Content-Type','')
        if 'xml' in ct or '/v2/' in self.path or '/v3/' in self.path:
            data = self.SUCCESS_XML.encode()
            ctype = 'application/xml; charset=utf-8'
        else:
            data = json.dumps(self.SUCCESS_JSON).encode()
            ctype = 'application/json'

        self.send_response(200)
        self.send_header('Content-Type', ctype)
        self.send_header('Access-Control-Allow-Origin', '*')
        self.end_headers()
        self.wfile.write(data)

    def log_message(self, *a): pass  # 静默

def run_server(port=80):
    httpd = http.server.HTTPServer(('0.0.0.0', port), FakeAuthHandler)
    print(f"[Fake Server] Listening on :{port}")
    httpd.serve_forever()

if __name__ == '__main__':
    import sys
    port = int(sys.argv[1]) if len(sys.argv) > 1 else 80
    run_server(port)


拳法3:注册表/配置文件状态注入(离线回退时的激活依据)



$regPath = "HKCU:\Software\厂商名\产品名"

# === 通用激活键值(根据 Phase 3 分析结果调整)===
$values = @{
    "lastshadowtime" = "1937628991"    # 2031年(试用期重置)
    "Registered"     = "1"
    "isRegistered"   = "1"
    "license"        = "full"
    "Activated"      = "1"
    "activationStatus" = "activated"
    "regStatus"      = "success"
    "regDate"        = "2099-12-31"
    "regExpire"      = "2099-12-31"
}

foreach ($k in $values.Keys) {
    Set-ItemProperty -Path $regPath -Name $k -Value $values[$k] -Force
}


这里说一下为什么要打三连拳法?
只打拳法 1:demo 连不上服务器 → 如果有离线回退则读本地状态( 不行),因为有一个检测端口 在检测,他有重启验证
只打拳法 3:demo 能连上真服务器 → 真服务器返回失败 → 清除本地状态(不行)
干脆做三层 保险起见!



然后就可以看到软件激活成功!并且有了设备数
然后我提供成品工具带服务端源码: 软件下载地址.txt (38 Bytes, 下载次数: 4)

运行启动脚本就可以了

**仅用于安全研究和学习目的**
**尊重软件开发者的劳动成果**

如果有帮到你们 请给我:关注+评分 ,你们的支持 将是我继续分享下去的动力! 谢谢

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-5-29 21:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表