Manageability Developer Tool Kit 7.0.12102.2 с исправленной ошибкой IMR_RES_SOCKET_ERROR при работе через MPS

Ошибка IMR_RES_SOCKET_ERROR при работе через MPS и её решение

Нашлась (давно имеющаяся) ошибка Manageability Commander v.7.x (7.0.11161.2 и 7.0.12102.2 как минимум) при работе оного через MPS - получением ошибки IMR_RES_SOCKET_ERROR при попытке сделать Take Control (см.картинку).

Проблема обнаружилась в структуре:

private static byte[] CreateTCPSessionParamsEx(string username, string password, string domain, SOCKSProxy proxy)
        {
            //typedef struct {
            //  int version;                    //must be 3
            //  char user_name[MAX_WIN_UN_LEN];
            //  char user_pswd[MAX_PSWD_LEN];
            //  char user_domain[MAX_WIN_DN_LEN];
            //  ProxySettings proxy_settings
            //} TCPSessionParamsEx;

            //
            // typedef struct {
            //   PROXY_TYPE type;               // enum PROXY_NO_PROXY, PROXY_SOCKS_V5
            //   char server[MAX_IP_LEN];       // MAX_IP_LEN = 128
            //   int port;
            //   char user[MAX_NAME_LEN];       // MAX_NAME_LEN = 128
            //   char password[MAX_PSWD_LEN];   // MAZ_PSWD_LEN = 128
            // } ProxyType;

Где прописана версия 3 с дополнительным полем user_domain, хотя реально используется (должна использоваться) версия 2, где оного нет. В результате получаем сплошные нули в следующей за ней структуре параметров MPS, в то время, как "начало совпадает" и работа внутри локальной сети не страдает. Потому разработчки, явно тестирующие (лишь) на локалке такого банально не видели.

Итого, исправленный (правильный) вид должен быть:

private static byte[] CreateTCPSessionParamsEx(string username, string password, SOCKSProxy proxy)
        {
            // typedef struct {
            //   int version;                   // must be 2
            //   char user_name[MAX_NAME_LEN];  // MAX_NAME_LEN = 128
            //   char user_pswd[MAX_PSWD_LEN];  // MAZ_PSWD_LEN = 128
            //   ProxySettings proxy_settings
            // } TCPSessionParamsEx;
            //
            // typedef struct {
            //   PROXY_TYPE type;               // enum PROXY_NO_PROXY, PROXY_SOCKS_V5
            //   char server[MAX_IP_LEN];       // MAX_IP_LEN = 128
            //   int port;
            //   char user[MAX_NAME_LEN];       // MAX_NAME_LEN = 128
            //   char password[MAX_PSWD_LEN];   // MAZ_PSWD_LEN = 128
            // } ProxyType;

 

В результате получим:

Manageability Commander 7.0.12102.2 fixed IMR_RES_SOCKET_ERROR for MPS

Пересобранный вышеприведенным образом Commander прилагается, либо сразу весь в виде папки:

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
Anti-bot.