Encriptação para o executável

Alguém pode recomendar qual é a boa maneira de encriptar um executável? Eu estava tentando usar AxCrypt, mas eu não gosto do uso, ou seja, você especifica um código e a pessoa que lança o exe precisa especificar o código. Existe alguma forma de encriptá-lo uma vez e os utilizadores apenas executam o exe sem especificar quaisquer senhas?

Author: John Rudy, 2009-07-16

5 answers

É basicamente inútil. Se for um programa. NET ou Java, OS ofuscadores podem melhorar o desempenho e diminuir o tamanho do executável e tornar difícil a engenharia reversa. Os Packers podem diminuir o tamanho do executável. A assinatura pode garantir aos seus utilizadores que construiu o programa. Mas a encriptação do executável com o propósito de esconder o seu código executável é bastante inútil.
 9
Author: Sam Harwell, 2009-07-16 06:48:08

Um programa que saiba decifrar a si próprio conterá toda a informação que um hacker precisa para comprometer o programa. Estás a distribuir a fechadura com a chave. No entanto, vamos assumir que você quer colocar uma pequena barreira para entrar no seu programa. Talvez você tenha códigos de batota em seu jogo e você não quer que alguém seja capaz de apenas {[[2]}Executar 'strings' sobre o seu programa e vê-los.

O que eu sugiro é empacotar o seu programa com um programa como UPX . Presente pode ofuscar ainda mais o seu programa em disco. As tuas técnicas básicas de interrogatório só verão o pequeno descompressor. No entanto, um hacker determinado vai reconhecer rapidamente o programa compressor e descomprimi-lo. Em qualquer dos casos, uma vez que um programa está em execução na memória, pode-se fazer um dump do núcleo do processo, ou anexar um depurador a ele. Não há muito que você possa fazer para evitar isso na maioria dos hardware.

 6
Author: brianegge, 2009-07-16 08:27:26

Acho que devias usar software que usa chaves públicas e privadas. Aqui está mais informação sobre como funciona.

 0
Author: Kirill V. Lyadvinsky, 2009-07-16 06:49:07

Se só quiser que utilizadores específicos executem o exe, então poderá definir políticas sob o windows que lhe permitirão executá-lo apenas para utilizadores específicos.

Mas se quiser esconder o código, então ... : desde que você não mencionou que língua você usou para fazer o exe. Se seu c / c++ já está criptografado o suficiente, ele requer algum trabalho para obter o código a partir dele. Se é java ou csharp existem ofuscadores que você pode usar. seria um pouco difícil obter o código do exe.
 0
Author: Umair Ahmed, 2009-07-16 06:57:20
Vocês não entendem a pergunta ,é normal um programador pensar assim . mas como Hacker ético é claro que ele quer paypass o Antivírus não esconder o código, de qualquer forma, você pode usar Visual Basic .

Para encriptação, utilizar este código

Public Function TripleDES_Encrypt(ByVal input As String, ByVal pass As String) As String
  Dim TripleDES As New System.Security.Cryptography.TripleDESCryptoServiceProvider
  Dim Hash_TripleDES As New System.Security.Cryptography.MD5CryptoServiceProvider
  Dim encrypted As String = ""
  Try
      Dim hash(23) As Byte
      Dim temp As Byte() = Hash_TripleDES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(pass))
      Array.Copy(temp, 0, hash, 0, 16)
      Array.Copy(temp, 0, hash, 15, 8)
      TripleDES.Key = hash
      TripleDES.Mode = Security.Cryptography.CipherMode.ECB
      Dim DESEncrypter As System.Security.Cryptography.ICryptoTransform = TripleDES.CreateEncryptor
      Dim Buffer As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(input)
      encrypted = Convert.ToBase64String(DESEncrypter.TransformFinalBlock(Buffer, 0, Buffer.Length))
      Return encrypted
  Catch ex As Exception
  End Try
End Function

Para descodificação

Public Function TripleDES_Decrypt(ByVal input As String, ByVal pass As String) As String
    Dim TripleDES As New System.Security.Cryptography.TripleDESCryptoServiceProvider
    Dim Hash_TripleDES As New System.Security.Cryptography.MD5CryptoServiceProvider
    Dim decrypted As String = ""
    Try
        Dim hash(23) As Byte
        Dim temp As Byte() = Hash_TripleDES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(pass))
        Array.Copy(temp, 0, hash, 0, 16)
        Array.Copy(temp, 0, hash, 15, 8)
        TripleDES.Key = hash
        TripleDES.Mode = Security.Cryptography.CipherMode.ECB
        Dim DESDecrypter As System.Security.Cryptography.ICryptoTransform = TripleDES.CreateDecryptor
        Dim Buffer As Byte() = Convert.FromBase64String(input)
        decrypted = System.Text.ASCIIEncoding.ASCII.GetString(DESDecrypter.TransformFinalBlock(Buffer, 0, Buffer.Length))
        Return decrypted
    Catch ex As Exception
    End Try
End Function
 0
Author: user3678019, 2017-09-14 10:47:17