O maior portal de MU Online do Brasil — desde 2003
Tutorial Avançado Tutoriais

Como Editar o Cliente de MU: Patching do Main.exe e Configurações

Aprenda a fazer patching do Main.exe do MU Online: editar IP do servidor, tela de login, strings internas e proteções usando ferramentas hex e PE.

EQ Equipe ViciadosMU · Atualizado em 3 jul 2026 · ⏱ 12 min de leitura

Editar o cliente de MU Online é uma das habilidades mais importantes para administradores de servidores privados. Desde apontar o cliente para o IP correto do seu servidor até personalizar a tela de login e remover restrições de versão, o patching do Main.exe é o ponto de partida. Este guia cobre o processo completo para servidores Season 6 (o mais comum), com observações para outras versões.

Ferramentas Necessárias

Antes de começar, separe as seguintes ferramentas:

  • HxD — editor hexadecimal gratuito, para localizar e substituir bytes no binário
  • CFF Explorer — PE editor, para inspecionar seções, imports e resources do executável
  • x64dbg ou OllyDbg — para análise dinâmica e localização de offsets em tempo de execução
  • Resource Hacker — para editar recursos embutidos (ícones, bitmaps, strings de versão)
  • Notepad++ — para editar arquivos de configuração de texto (.ini, .cfg)
  • MU Client Patcher ou xTeam Patcher — para patch automatizado de IP e porta em S6
Atenção: Nunca edite o Main.exe original. Faça sempre uma cópia (Main_original.exe) antes de qualquer modificação. Mantenha o backup em local separado do diretório do cliente.

Estrutura do Diretório do Cliente

Um cliente Season 6 típico tem a seguinte estrutura relevante:

MUClient/
├── Main.exe              ← executável principal (alvo do patching)
├── Main.ini              ← configurações de IP, porta e versão (se existir)
├── setup.ini             ← configurações de vídeo e áudio do launcher
├── Data/
│   ├── Interface/        ← arquivos de UI (backgrounds, botões)
│   │   └── Login/        ← tela de login (LoginWindow.jpg ou Menu_Back.jpg)
│   └── Lang/             ← strings de texto (.bmd criptografados)
├── Music/
└── Sound/

Parte 1: Configurar o Main.ini

O arquivo Main.ini fica na raiz do cliente e controla os parâmetros básicos de conexão. Em muitos pacotes Season 6, este arquivo existe e é lido com prioridade sobre os valores hardcoded no binário.

Passo 1 — Abrir e localizar o Main.ini

Abra o arquivo Main.ini com Notepad++. A estrutura padrão de um cliente Season 6 é:

[Settings]
IP=127.0.0.1
Port=44405
ServerName=MuOnline
ClientVersion=1.04g
ProtocolVersion=1.04g
FrameRate=60
Width=1024
Height=768
ColorDepth=32
Windowed=0
SoundOn=1
MusicOn=1

Passo 2 — Alterar o IP e porta do ConnectServer

Substitua 127.0.0.1 pelo IP público ou privado do seu servidor:

IP=200.200.100.50
Port=44405
Nota: A porta 44405 é o padrão do ConnectServer para Season 6. Verifique o parâmetro Port em ConnectServer/ConnectServer.cfg para confirmar qual porta está ativa antes de alterar o cliente.

Passo 3 — Ajustar versão do cliente

O valor ClientVersion deve corresponder ao campo AcceptVersion configurado no ConnectServer:

ClientVersion=1.04g
ProtocolVersion=1.04g

Se o servidor usa Season 9 ou superior, o formato de versão muda:

ClientVersion=1.05k
ProtocolVersion=1.05k

Parte 2: Patch Direto no Main.exe (Edição Hexadecimal)

Quando o cliente não possui Main.ini ou quando o IP está hardcoded no executável, é necessário editar o binário diretamente.

Passo 4 — Localizar o IP hardcoded no HxD

  1. Abra o Main.exe no HxD (Ctrl+O → selecione o arquivo)
  2. Pressione Ctrl+F → aba Text-string
  3. Pesquise pelo IP atual hardcoded (ex: 192.168.1.100 ou game.servidor.com)
  4. O HxD destacará a posição no binário
Dica: Se o IP original for um domínio (ex: play.muoriginal.com), pesquise pela string de texto. Se for um IP numérico, pesquise como ASCII string. O endereço aparece como texto plano no binário, terminado por um null byte (00).

Passo 5 — Substituir o IP pelo novo endereço

Com o offset localizado:

  1. Selecione todos os bytes do IP ou domínio antigo
  2. Digite o novo IP no painel ASCII da direita
  3. Se o novo endereço for menor que o original, preencha o restante com null bytes (00) para não deslocar offsets
  4. Se for maior, ajuste o domínio para ter comprimento igual ou menor

Exemplo: substituir 192.168.001.001 (15 chars) por 200.200.100.050 (mantendo mesmo comprimento):

ANTES (hex):  31 39 32 2E 31 36 38 2E 30 30 31 2E 30 30 31
DEPOIS (hex): 32 30 30 2E 32 30 30 2E 31 30 30 2E 30 35 30

Passo 6 — Localizar e editar a porta (hardcoded)

A porta 44405 em little-endian de 2 bytes é 0xAD6D. No binário aparece como 6D AD. Busque no HxD por essa sequência hex e substitua pela porta configurada no seu ConnectServer. Exemplo para porta 55905 (0xDA5151 DA):

ANTES (hex):  6D AD
DEPOIS (hex): 51 DA

Passo 7 — Salvar e verificar

Salve com Ctrl+S no HxD. Execute o Main.exe modificado para confirmar que abre sem erros antes de distribuir.

Parte 3: Usando Patcher Automatizado (Season 6)

Para Season 6, o processo pode ser automatizado com ferramentas como o MU Client Patcher:

Passo 8 — Executar o patcher

  1. Coloque o MUClientPatcher.exe na mesma pasta do Main.exe
  2. Execute como administrador
  3. Preencha os campos:
[MU Client Patcher - Season 6]
ConnectServer IP   : 200.200.100.50
ConnectServer Port : 44405
GameServer IP      : 200.200.100.50
GameServer Port    : 55901
Encryption         : Standard (0x00)
Version Check      : Disabled
[Apply Patch]
  1. Clique em Apply Patch — o patcher cria um backup automático (Main_backup.exe) e grava o novo Main.exe
Atenção: Alguns patchers de terceiros injetam código adicional no executável. Use apenas patchers de fontes confiáveis. Verifique o MD5 do Main.exe original e do patchado para identificar exatamente quais bytes foram alterados.

Parte 4: Personalizar Interface com Resource Hacker

Passo 9 — Substituir a tela de login

A tela de login do Season 6 Episode 3 usa um bitmap embutido no executável:

  1. Abra o Main.exe no Resource Hacker
  2. Navegue até: BitmapIDB_BACKGROUND (ou ID 201 dependendo da build)
  3. Clique com botão direito → Replace Resource
  4. Selecione sua imagem de fundo (deve ser BMP, 1024x768, 24-bit sem compressão RLE)
  5. Clique ReplaceFileSave As → salve como novo Main.exe
Dica: Para converter JPG ou PNG para BMP no formato correto, use IrfanView: File → Save As → BMP, 24 bits, sem compressão RLE. O Paint do Windows também funciona via Salvar como → Bitmap 24 bits.

Em builds que carregam o background de arquivo externo, substitua diretamente:

MUClient/Data/Interface/Login/LoginWindow.jpg
MUClient/Data/Interface/Login/Menu_Back.jpg   ← depende da build

Tamanho obrigatório: 1024x768 para Season 6, 800x600 para Season 1-4.

Passo 10 — Alterar ícone do executável

  1. No Resource Hacker, navegue até Icon GroupIDI_MAINICON
  2. Clique com botão direito → Replace Resource
  3. Selecione um arquivo .ico com tamanhos 16x16, 32x32 e 48x48 incluídos
  4. Salve o executável

Passo 11 — Alterar strings visíveis ao jogador

Strings como o título da janela e mensagens de erro ficam em:

  • Resource Hacker → String Table → IDs de 1 a 200 (varia por versão)
ID 1: "MU Online"          → altere para "ViciadosMU - Season 6"
ID 5: "Conectando..."      → personalize conforme o servidor
ID 12: "Senha incorreta"   → pode ser traduzida ou alterada
Nota: Em builds com proteção de checksum interno, editar resources via Resource Hacker pode quebrar a verificação de integridade. Nesse caso, é necessário também neutralizar o checksum check no binário com x64dbg antes de redistribuir.

Parte 5: Configurações Avançadas no ConnectServer

Passo 12 — Verificar e sincronizar ConnectServer.cfg

O arquivo ConnectServer/ConnectServer.cfg deve estar alinhado com os valores patchados no cliente:

[Network]
Port=44405
EncryptionEnabled=1
; 0 = sem criptografia (apenas para testes)
; 1 = criptografia padrão MU (obrigatório em produção)

[Version]
AcceptVersion=1.04g
VersionCheck=1
; Defina VersionCheck=0 para aceitar qualquer versão (apenas desenvolvimento)

Passo 13 — Verificar versão na tabela do banco de dados

Além do .cfg, a versão é validada no SQL Server. Execute no SQL Server Management Studio:

USE MuOnline;

-- Verificar versão configurada
SELECT ServerCode, ServerName, Version, EXEVersion
FROM T_Version
ORDER BY ServerCode;

-- Atualizar para corresponder ao cliente patchado
UPDATE T_Version
SET Version    = '1.04g',
    EXEVersion = '1.04g'
WHERE ServerCode = 0;

Se houver múltiplos GameServers, execute para cada ServerCode:

UPDATE T_Version
SET Version    = '1.04g',
    EXEVersion = '1.04g';
-- (sem WHERE atualiza todos os servidores)

Parte 6: Criar Launcher de Verificação de Atualização

Passo 14 — Script batch básico de lançamento com update check

@echo off
title ViciadosMU Launcher
echo Verificando atualizacoes...

set LOCAL_VER=1.04g
set UPDATE_URL=http://update.seuservidor.com

:: Baixar versao remota
powershell -Command ^
  "(New-Object Net.WebClient).DownloadString('%UPDATE_URL%/version.txt')" ^
  > "%TEMP%\mu_ver.txt" 2>nul

set /p REMOTE_VER=<"%TEMP%\mu_ver.txt"
del "%TEMP%\mu_ver.txt" 2>nul

if "%LOCAL_VER%"=="%REMOTE_VER%" (
    echo Cliente atualizado. Iniciando...
    start "" "Main.exe"
    exit
)

echo Nova versao: %REMOTE_VER%. Baixando...
powershell -Command ^
  "(New-Object Net.WebClient).DownloadFile('%UPDATE_URL%/Main.exe','Main_new.exe')"
move /y Main_new.exe Main.exe
echo Atualizado. Iniciando...
start "" "Main.exe"

O servidor web deve ter /version.txt com apenas o número de versão em texto simples, ex: 1.04h.

Verificação Final e Distribuição

Antes de distribuir o cliente patchado aos jogadores:

  1. Teste em máquina limpa — não na mesma máquina usada para o desenvolvimento
  2. Verifique o log de conexão em GameServer/Logs/Connect_YYYYMMDD.log para confirmar que clientes chegam e são aceitos:

`` [CONNECT] 200.200.100.50 → Version: 1.04g → ACCEPTED ``

  1. Escaneie com antivírus antes de distribuir — patches no PE disparam falsos positivos em alguns AVs; gere uma whitelist no VirusTotal para o hash do arquivo final
  2. Gere o hash MD5 do Main.exe e publique junto ao link de download:

``batch certutil -hashfile Main.exe MD5 ``

  1. Compacte o cliente com 7-Zip (nível Ultra) antes de hospedar — clientes S6 completos ficam entre 800 MB e 1,5 GB
Dica: Para distribuição de clientes grandes, divida em partes com 7-Zip: abra o 7-Zip, selecione a pasta do cliente, Add to archive → marque Split to volumes → digite 500m (partes de 500 MB). Publique todas as partes e o hash do .exe central.

Perguntas frequentes

Qual editor hexadecimal devo usar para editar o Main.exe?

Os mais utilizados são o HxD (gratuito, recomendado para iniciantes), o XVI32 e o Hex Workshop. Para edições mais avançadas com análise de PE (Portable Executable), use o CFF Explorer ou o PE-bear, que permitem visualizar seções, imports e exports do executável.

O que acontece se eu errar o offset ao editar o IP no Main.exe?

O cliente simplesmente não conectará ao servidor, exibindo erro de conexão ou fechando inesperadamente. Nunca edite o arquivo original diretamente — sempre trabalhe em uma cópia de backup. Se o Main.exe corrompido for lançado, basta restaurar o backup e tentar novamente.

É possível editar o IP sem editor hex, usando ferramenta GUI?

Sim. Ferramentas como o MU Client IP Changer e o MainPatcher (populares na comunidade Season 6) automatizam a busca e substituição do IP e porta no binário, eliminando a necessidade de localizar offsets manualmente. Ainda assim, entender o processo hex é fundamental para depurar problemas.

Como remover a checagem de versão do Main.exe para testes locais?

No ConnectServer.cfg, defina VersionCheck=0 para aceitar qualquer versão. No lado do cliente, certifique-se que o valor ClientVersion em Main.ini bate com o AcceptVersion do ConnectServer.cfg. Para remover o check diretamente no binário, localize o salto condicional (JE/JNE) na rotina de comparação com x64dbg e substitua por JMP (EB) — apenas para ambientes de desenvolvimento.

EQ

Equipe ViciadosMU

Equipe editorial do ViciadosMU — portal de MU Online no ar desde 2003.

Continue lendo

Artigos relacionados