Мне нужна помощь в создании частного сервера для игры в единство, которая закрылась 3 года назад - PullRequest
0 голосов
/ 16 октября 2019

Так что я работаю на частном сервере для игры, которая закрылась 3 года назад. Я закончил с лаунчером, но в игре мне нужна помощь, так что мне сделать, чтобы сервер вернулся к клиенту / игре? заметьте, я не могу изменить код игры, потому что это такие вещи, как "u08EF" для бывших везде, и dnspy ​​не позволит мне скомпилировать его. я думаю, что это было вызвано, когда игра была впервые скомпилирована.

код сервера:

<?
$key = $_POST["key"];
$machine_guid = $_POST["machine_guid"];
$version = $_POST["version"];
$hash0 = $_POST["hash0"];
echo "heres what the game gets as data";
?>

И вот код игры

using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using engine.events;
using engine.filesystem;
using engine.helpers;
using engine.operations;

namespace engine.network.auth
{
    // Token: 0x02000551 RID: 1361
    public sealed partial class AuthManager : BaseEvent<AuthEventParams>
    {
        // Token: 0x060029D1 RID: 10705 RVA: 0x000C9768 File Offset: 0x000C7968
        private void OnEnterOperationCompleted(Operation \u08C6)
        {
            LoadNetworkFileBestHttpOperation loadNetworkFileBestHttpOperation = \u08C6 as LoadNetworkFileBestHttpOperation;
            int u08EF = 0;
            string text = string.Empty;
            double time = 0.0;
            string text2 = string.Empty;
            Dictionary<string, string> dictionary = null;
            if (loadNetworkFileBestHttpOperation != null && !loadNetworkFileBestHttpOperation.\u086C && loadNetworkFileBestHttpOperation.ࡁ.IsLoaded)
            {
                EnterServerResponse enterServerResponse = EnterServerResponse.FromByte(loadNetworkFileBestHttpOperation.ࡁ.Bytes);
                u08EF = enterServerResponse.\u08D1;
                text = enterServerResponse.\u0822;
                time = enterServerResponse.ࡥ;
                text2 = enterServerResponse.\u08B5;
                dictionary = enterServerResponse.\u08D0;
                Utility.setTime(time);
            }
            Log.AddLine("----------- Result process enter -------------");
            Log.AddLine("Status code: " + u08EF.ToString());
            Log.AddLine("SocketIntrerface: " + text);
            Log.AddLine("serverTime: " + time.ToString());
            Log.AddLine("deployVersion: " + text2);
            Log.AddLine("deployHash: " + ((dictionary != null) ? "present!" : "not present!"));
            Log.AddLine("-------------------------------------  ");
            AuthEventParams authEventParams = new AuthEventParams
            {
                \u08EF = u08EF,
                ࡋ = text,
                ࢨ = text2,
                \u088E = dictionary
            };
            if (authEventParams.\u08EF == 1)
            {
                AuthManager.\u085B = true;
                this.Dispatch<AuthManager.Event>(authEventParams, AuthManager.Event.EnterSuccess);
            }
            else
            {
                this.Dispatch<AuthManager.Event>(authEventParams, AuthManager.Event.EnterFail);
            }
            this.UnsubscribeAll();
        }
    }
}

1 Ответ

0 голосов
/ 16 октября 2019

Вы говорите, что не можете скомпилировать код из-за литералов \u123x. Скорее всего, это связано либо с тем, что к исходной сборке применена запутывание, либо из-за неправильного кодирования, используемого где-то в конце строки. Я бы настоятельно предположил, что комбинация обоих сценариев имеет место.

Это должно работать нормально, так как на самом деле просто создает новую локальную переменную типа integer с идентификатором u08EF.

* 1006. *

Вы должны заменить все похожие идентификаторы действительным именем.

private void OnEnterOperationCompleted(Operation asdf) {

Фактически, которые не могут работать, это четыре символа, используемые в качестве идентификаторов в следующем отрывке. Вероятно, это результаты неправильной кодировки.

// ...
    EnterServerResponse enterServerResponse = EnterServerResponse.FromByte(loadNetworkFileBestHttpOperation.ࡁ.Bytes);
// ...
    time = enterServerResponse.ࡥ;
// ...
    ࡋ = text,
    ࢨ = text2,
// ...

Какие члены Intellisense предлагает вам для типов EnterServerResponse, AuthEventParams и LoadNetworkFileBestHttpOperation?

Aпо этой теме можно прочитать это сообщение в блоге от jon skeet.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...