前言
近期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语法类似,实现比较简单,在此不做进一步解析。
这里是成品:
惠普任务小助手
完~