O problema mais provável é que o editor de texto que você usou estragou os caracteres não imprimíveis, estragou os finais da linha ou ambos.
Caracteres não imprimíveis: Os conjuntos de caracteres ASCII (e Unicode) definem mapeamentos de números (agrupamentos de dados binários) para caracteres. (Na verdade, existem muitos conjuntos de caracteres, mas UTF-8 e UTF-16 são provavelmente os mais comuns, e ambos são, em certa medida, baseados em ASCII; assim como a maioria dos outros.) personagens "reais". Alguns desses são caracteres de "controle" destinados a serem usados em coisas como máquinas teletipo remotas realmente antigas. Alguns são coisas estranhas, como o caractere "bell" (que faz um sinal sonoro se você imprimi-lo no console). Há também o caractere NULL (armazenado como 0, todos os bits não definidos) que é usado para indicar o fim de uma string (blob de texto) em muitas linguagens de programação; editores de texto tendem a não lidar com isso normalmente, mas eles aparecerão em um arquivo executável.
De qualquer forma, um editor de texto não saberá como representá-los. Ele pode apenas mostrá-los como quadrados ou algo assim, mas quando você copiá-los, ele pode copiar os caracteres como quadrados, e não como seus códigos de caracteres subjacentes. Ou quando você colá-lo, pode fazer algo semelhante. Como os arquivos EXE são compostos de código de máquina (dados binários, que não devem ser representados como texto), ele conterá vários desses caracteres não imprimíveis.
Endings de linha: Existem dois caracteres que são (às vezes) usados para fins de linha na maioria dos conjuntos de caracteres. Estes são o retorno de carro (em um antigo teletipo, isso significava "mover a cabeça de impressão de volta para a borda esquerda") e o avanço de linha (avançar para a próxima linha abaixo) na página). Veja Wikipedia . O Windows usa os dois, geralmente emparelhados; Se uma linha não terminar em um CRLF, alguns editores pensarão que a linha não terminou e apenas colocarão um caractere invisível (você irá "percorrê-la" se estiver usando as teclas de seta para mover para a esquerda / direito, o cursor aparecerá para não se mover). Outros editores tratarão o CRLF, LF sozinho ou até mesmo o CR sozinho (embora nada desde o MacOS clássico tenha usado essa terminação de linha) todos como finais de linha válidos.
O problema surge quando você copia e cola algo com finais de linha inconsistentes. Muitos editores de texto são "inteligentes" o suficiente para "consertar" seus finais de linha. Em um sistema Windows, isso provavelmente significa converter todos os LFs solo, e provavelmente também solo CR, em combos CRLF. Isso está adicionando novos dados no EXE, o que obviamente altera o significado do código da máquina.
Como diz o comentário do Ramhound, se você quiser copiar e colar o conteúdo de um EXE (ou qualquer outro arquivo binário que não seja texto), você precisa usar um editor binário (a maioria deles é geralmente chamada hex editores , porque representam cada byte no arquivo como um valor hexadecimal, de 00 a FF, embora também decodifiquem os que podem ser impressos em texto para você). Editores binários não vão perder personagens não imprimíveis, ou tentar "consertar" seus finais de linha, ou qualquer outra coisa assim.