Estava mexendo em alguns arquivos perdidos do KR que encontrei na internet achei algumas coisas muito interessantes, não sei se alguém sabe dessas informações mas eu gosto de fuçar em velharia e acabo encontrando algumas coisas interessanes
Primeiro um "Editor" mapa feito em 2001 pela empresa EYA
Brushes identificados (UI da árvore)
Circle Drag Brushaltura
Circle Scratch Brushaltura
Rect Drag Brushaltura
Rect Scratch Brushaltura
Smooth Brushsuavização
Color Brushcor vértice
Primary Tiletextura chão
Secondary Tiletextura chão 2
Estou nesse momento descompilando para pegar codigo fonte e ver o que da para reaproveitar
encontrei tambem .pdb e .c do TMProject que eles usavam
Achei algumas informações interessante que diferencia do TMProject atual usado por muitos
Camada de Criptografia, Codificação e Integridade do Cliente TM
Este documento organiza os quatro conjuntos de arquivos responsáveis pela camada de criptografia, codificação e verificação de integridade usada pelo cliente.
Arquivos
Responsabilidade
AES.cpp / AES.h
Implementam Rijndael/AES para criptografar e descriptografar dados.
Base64.cpp / Base64.h
Codificam dados binários em texto ASCII e decodificam Base64 para bytes.
md5.cpp / md5.h
Implementam MD5 de forma procedural usando MD5_CTX.
MD5Checksum.cpp / MD5Checksum.h
Implementam interfaces MD5 baseadas em classes, como SFMD5 e CMD5Checksum.
Fluxo geral
Texto
↓
Padding
↓
AES-CBC
↓
Dados binários criptografados
↓
Base64
↓
Texto salvo no arquivo
Texto Base64
↓
base64_decode()
↓
Dados binários
↓
AES-CBC decrypt
↓
Remoção do padding
↓
Texto original
Uso no cliente
No Basedef.cpp, o cliente usa AES com chave de 128 bits, bloco de 128 bits e modo CBC:
AES aes;
aes.MakeKey(
"asdfwetyhjuytrfd",
"gfdertfghjkuyrtg",
16,
16
);
aes.Encrypt(input, output, length, AES::CBC);
Bancos de filtro
WYDFilterCodeName.dat
ou
WYDFilterChatting.dat
↓
ler linha Base64
↓
base64_decode()
↓
AES::Decrypt() em CBC
↓
texto descriptografado
↓
arquivo temporário
↓
SFMD5::Encode()
↓
comparação com o MD5 armazenado
↓
carregamento da lista de palavras
Resumo final
AES.cpp / AES.h fazem a criptografia e descriptografia.
Base64.cpp / Base64.h transformam bytes criptografados em texto.
md5.cpp / md5.h fornecem a API procedural de MD5.
MD5Checksum.cpp / MD5Checksum.h fornecem as interfaces orientadas a objeto.
SFMD5 é usado para validar arquivos descriptografados.
Os static_assert preservam o layout esperado das estruturas/classes no executável x86.
As duas interfaces MD5 devem ser mantidas para preservar compatibilidade com o TM.exe.
:::