Pregunta

¿Alguien puede recomendar lo que es una buena manera de cifrar un archivo ejecutable? Yo estaba tratando de usar AxCrypt, pero no me gusta el uso, es decir, se especifica un código de acceso y la persona que lanza el exe tiene que especificar el código de acceso. ¿Hay alguna manera de cifrar una vez y usuarios basta con ejecutar el exe sin especificar ninguna contraseña?

¿Fue útil?

Solución

Es básicamente inútil. Si se trata de un programa Java o .NET, ofuscadores pueden mejorar el rendimiento y reducir el tamaño del ejecutable y hacer que sea difícil realizar ingeniería inversa. Packers pueden disminuir el tamaño del ejecutable. Firma puede ofrecer garantías a sus usuarios que se construyó el programa. Pero el cifrado del archivo ejecutable con el fin de ocultar su código ejecutable es bastante inútil.

Otros consejos

Un programa que sabe cómo descifrar en sí contendrá toda la información que un hacker tiene que comprometer el programa. Usted está repartiendo la cerradura con la llave. Sin embargo, supongamos que usted quiere poner una pequeña barrera de entrada a su programa. Tal vez usted tiene los códigos de trucos en su juego y no quieres que alguien sea capaz de 'cuerdas' sobre su programa y los ven.

Lo que sugiero es empacar su programa con un programa como un UPX . Esto puede confundir aún más su programa en el disco. Sus técnicas básicas de interrogatorio sólo verán la pequeña descompresor. Sin embargo, un hacker determinado reconocerá rápidamente el programa compresor y descomprimirlo. En cualquiera de los casos, una vez que un programa se está ejecutando en la memoria, se puede tomar un volcado de memoria del proceso, o adjuntar un depurador a ella. No hay mucho que puede hacer para prevenir esto en la mayoría del hardware.

Si sólo desea que los usuarios específicos para ejecutar el exe a continuación, se pueden definir políticas bajo las ventanas que permitirían que usted lo funcione sólo para los usuarios específicos.

pero si desea ocultar el código a continuación: ya que no se ha mencionado que el lenguaje que utilizó para hacer el exe. Si la C / C ++ es lo suficientemente ya encriptada, se requiere algo de trabajo para obtener el código de la misma. Si su Java o CSharp hay ofuscadores que se pueden utilizar. sería algo que sea difícil conseguir el código de EXE.

Creo que deberías usar de software que utiliza las claves públicas y privadas. Aquí es más información sobre cómo funciona.

chico de no entiende la pregunta, es normal que un programador a pensar de esa manera. pero Hacker Ético Como está claro que él quiere PayPass el antivirus no oculta el código, de todos modos u puede utilizar Visual Basic.

para el cifrado de 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 el descifrado

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top