前言

近期Omen基本上是黑屏状态,抓包发现服务器似乎被玩坏了;
导致许多任务提交失败,浪费了我大量时间。
于是决定伪造其请求,来强行完成任务。

检查请求

抓包检查任务的提交数据,可以发现有一个动态的signature签名字段,
很明显这需要反编译来进行解决。

反编译

Omen是UWP应用,根据官方介绍:

在执行下一步操作之前,你应知道在开发通用 Windows 平台 (UWP) 应用时可从中选择的编程语言。 尽管本文中的演练使用的是 C#,但你可以使用一种或多种编程语言开发 UWP 应用(请参阅语言、工具和框架)。

可使用 C++、C#、Microsoft Visual Basic 和 JavaScript 进行开发。 JavaScript 使用用于 UI 布局的 HTML5 标记,其他语言使用一种称为 Extensible Application Markup Language (XAML) 的标记语言来描述其 UI。

经尝试后,确定Omen使用C#为编写语言。

于是,在此使用C#反编译工具:dnSpy

 如何找到Omen的可执行文件位置?

任务管理器,打开进程所在位置即可

把所在文件夹的所有文件都拖到dnspy里面。

观察任务提交数据与其它请求数据不同之处

“applicationId”: “6589915c-6aa7-4f1b-9ef5-32fa2220c844”,
    “sessionToken”: “***************”,
    “startedAt”: “2021-05-28T04:39:13.692698Z”,
    “endedAt”: “2021-05-28T04:39:16.643534Z”,
    “eventName”: “PLAY:WORLD_OF_WARCRAFT”,
    “value”: 1,
    “sdk”: “custom01”,
    “sdkVersion”: “3.0.0”,
    “signature”: “dZbGUpMU1csd12tFEYAkagpsilSnkWZrDGvc6TbKBHg=”,
    “appDefaultLanguage”: “en”,
    “userPreferredLanguage”: “en”
其它请求:
“applicationId”: “6589915c-6aa7-4f1b-9ef5-32fa2220c844”,
    “sessionToken”: “*******”,
    “page”: 3,
    “pageSize”: 100,
    “sdk”: “custom01”,
    “sdkVersion”: “3.0.0”,
    “appDefaultLanguage”: “en”,
    “userPreferredLanguage”: “en”

很明显,多出了签名、时间、任务名称信息

于是,搜索startedAt

搜索后,浏览每个结果,观察

浏览第一个结果的属性,发现,与提交数据类似;

浏览第二个结果,可以看出在初始化属性之后,调用GetSignature 方法生成签名signature

JAVA仿写

C#与JAVA语法类似,实现比较简单,在此不做进一步解析。


ESWINK , 版权所有丨如未注明 , 均为原创

原文标题:「渗透分析」JAVA模拟Omen任务请求分析

Eswink原创声明