Hexing an * .exe - um timestamp também é modificado?

1

Estou tentando hexarregar um arquivo *.exe para alterar a fonte de Arial para Tahoma . Eu já fiz isso, a questão é que o programa percebe que algo mudou.

Sou relativamente novato em hexagear, por isso não tenho certeza se sempre que você hexarex um exe, alguma data também muda (e provavelmente é assim que o programa percebe). Alguém pode confirmar isso e, se possível, propor uma solução?

    
por Christopher Francisco 15.09.2014 / 01:04

2 respostas

1

Normalmente, o registro de data e hora de data em um executável não tem sentido, porque o registro de data e hora não será o tempo de compilação original, mas o horário de instalação. Não há como o executável depender de um timestamp externo para verificar se está intacto.

Alguns arquivos executáveis são assinados digitalmente. Isso significa que uma função criptográfica é aplicada ao arquivo usando a chave do editor e anexada ao executável. Essa assinatura pode ser verificada pelo sistema operacional (como o Windows) ou pelo próprio executável.

Quaisquer alterações na estrutura binária do executável serão notadas porque a assinatura não corresponderá ao valor computado. Geralmente não há maneira de gerar a assinatura correta sem a chave original, que é um recurso de segurança que impede a violação (por exemplo, para crackear software ou uma infecção por vírus).

Além disso, também pode haver CRC (por exemplo, CRC-32) que também pode detectar alterações no executável. Nesse caso, o executável pode estar verificando a verificação internamente, que você pode ignorar rastreando o código executável até encontrar a rotina de verificação e a opção não-op (0x90) da chamada de função para a função de verificação.

    
por 15.09.2014 / 01:52
1

Parece que o exe tem uma lógica de autoproteção, o que é bastante normal hoje em dia. No entanto, as formas de obter essa proteção não são as mesmas. Alguns usam assinaturas digitais, alguns usam verificações de CRC, alguns usam ferramentas de proteção de módulo de terceiros e assim por diante. Mas acredito que o terceiro não é seu caso, pois normalmente os módulos gerados por essas ferramentas são compactados e / ou criptografados para que você não possa encontrar as informações diretamente.

No entanto, embora seja possível usar essas informações de timestamp para detectar a modificação, deve ser muito raro usar o timestamp apenas para a proteção, pois qualquer pessoa pode alterá-lo usando este tipo de ferramentas . Você pode reverter os atributos se tiver o original, pois isso não causa danos, mas provavelmente não funcionará.

Então, qual é o próximo passo? Para superar o problema, precisamos saber que tipo de verificação é feita para a detecção da modificação, que deve ser muito mais complicada do que a criação de um módulo. Depois de fazer isso, podemos adotar algumas abordagens avançadas, como modificação de memória em processo, quebrar a rotina de detecção ou interceptar chamadas da API do Windows para atingir a meta de substituição de fonte, mas nenhuma delas pode ser obtida apenas por hexadecimal. Você precisa aprender como usar depuradores pelo menos. Talvez alguém tenha quebrado o arquivo para propósitos diferentes, como o patch NO-CD, e então você pode pegá-lo para hexing e provavelmente funcionará como a lógica já estará desativada. Mas, por favor, considere a legalidade o tempo todo antes de tomar qualquer ação.

No entanto, você está tentando apenas alterar a fonte em uso. Isso parece um pouco legítimo para mim - por que você não pede ao fornecedor do aplicativo para fazer uma opção para alterar as fontes?

    
por 15.09.2014 / 03:35

Tags