Cifrado para Ejecutable
-
16-09-2019 - |
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?
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