我正在反转一个旧的流放之路客户端,目的是构建一个模拟器。我设法在较新的 64 位客户端中进入角色选择屏幕,但我正在努力在较旧的 32 位客户端中取得相同的进展。FWIW 他们使用相同的加密设置、CryptoPP 库和带有公钥加密的 Salsa20。我只是想 NOP 加密功能,所以我可以忽略它。
我发现Call EDX在之前send和之后不久recv都调用了函数,这些是唯一可能与 crypt 相关的函数调用。在NOPing这两个函数之后,我确实确认了第一个登录数据包以明文形式发送了用户名,所以我认为我的加密跳过是好的。但是客户端在收到我的第二个服务器数据包时崩溃了。未修改的客户端此时抱怨无法反序列化我发送的数据包。
我引用了一个巨大(600MB)的解密数据包集合,有人非常慷慨地与我分享,以制作我的服务器响应。
我的问题是 - 我接下来应该看哪里? 我正在考虑将 API Monitor 设置为仅监视 exe 发出的每个调用,以查看发生的最后几件事,到目前为止我只监视与网络相关的调用。或者我应该首先确认我 NOPing 的调用是唯一与 crypt 相关的函数?我对此还是个新手,不确定我的时间最好花在哪里。感谢您提供的任何一般见解!
