Ofuscar strings incorporadas em binários executáveis é valioso para proteger informações confidenciais, como chaves de criptografia, contra acesso não autorizado. No entanto, métodos simples, como armazenar a string em uma matriz de caracteres, podem facilmente revelar seu conteúdo durante a análise.
Para ocultar efetivamente strings em binários compilados, uma abordagem mais sofisticada pode ser empregada. Considere o seguinte exemplo:
#include "HideString.h" DEFINE_HIDDEN_STRING(EncryptionKey, 0x7f, ('M')('y')(' ')('s')('t')('r')('o')('n')('g')(' ')('e')('n')('c')('r')('y')('p')('t')('i')('o')('n')(' ')('k')('e')('y')) DEFINE_HIDDEN_STRING(EncryptionKey2, 0x27, ('T')('e')('s')('t')) int main() { std::coutEste código incorpora uma macro personalizada, "DEFINE_HIDDEN_STRING," para criptografar a string fornecida. A macro codifica cada caractere usando uma chave exclusiva derivada do valor inicial fornecido (por exemplo, "Minha chave de criptografia forte" -> 0x7f). Um algoritmo de criptografia baseado na semente é aplicado à sequência de caracteres, fazendo com que os dados resultantes pareçam aleatórios e difíceis de identificar no binário compilado.
#define CRYPT_MACRO(r, d, i, elem) (elem ^ (d - i))#define DEFINE_HIDDEN_STRING(NAME, SEED, SEQ) \ static const char* BOOST_PP_CAT(Get, NAME)() \ { \ static char data[] = { \ BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_FOR_EACH_I(CRYPT_MACRO, SEED, SEQ)), \ '\0' \ }; \ static bool isEncrypted = true; \ if (isEncrypted) \ { \ for (unsigned i = 0; iEssa abordagem ofusca efetivamente as strings incorporadas no código binário, tornando-as difíceis de extrair sem o conhecimento da chave de criptografia e do algoritmo. Ele atinge um equilíbrio entre segurança e facilidade de uso, oferecendo um método conveniente para proteger informações confidenciais.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3