Шифрование для исполняемого файла - PullRequest
4 голосов
/ 16 июля 2009

Кто-нибудь может порекомендовать, какой хороший способ зашифровать исполняемый файл? Я пытался использовать AxCrypt, но мне не нравится его использование, т. Е. Вы указываете пароль, а тот, кто запускает exe, должен указать пароль. Есть ли способ зашифровать его один раз, и пользователи просто запускают exe-файл без указания каких-либо паролей?

Ответы [ 5 ]

10 голосов
/ 16 июля 2009

Это в принципе бессмысленно. Если это программа .NET или Java, обфускаторы могут повысить производительность, уменьшить размер исполняемого файла и затруднить его обратный инжиниринг. Упаковщики могут уменьшить размер исполняемого файла. Подписание может гарантировать вашим пользователям, что вы создали программу. Но шифрование исполняемого файла с целью скрыть его исполняемый код довольно бессмысленно.

6 голосов
/ 16 июля 2009

Программа, которая знает, как расшифровать себя, будет содержать всю информацию, необходимую хакеру для компрометации программы. Вы раздаете замок с ключом. Однако предположим, что вы хотите создать небольшой барьер для входа в вашу программу. Возможно, у вас есть чит-коды в вашей игре, и вы не хотите, чтобы кто-то мог просто запустить «строки» над вашей программой и просмотреть их.

Я предлагаю упаковывать вашу программу такой программой, как UPX . Это может еще больше запутать вашу программу на диске. Ваши основные методы допроса будут видеть только крошечный декомпрессор. Однако определенный хакер быстро распознает программу компрессора и распакует ее. В любом случае, когда программа работает в памяти, можно получить дамп ядра процесса или подключить к нему отладчик. Вы не можете многое сделать, чтобы предотвратить это на большинстве аппаратных средств.

0 голосов
/ 14 сентября 2017

Вы, парень, не понимаете вопроса, для программиста это нормально. но поскольку Ethical Hacker ясно, что он хочет заплатить антивирусу, а не скрывать код, в любом случае вы можете использовать Visual Basic.

для шифрования используйте этот код

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

для расшифровки

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 голосов
/ 16 июля 2009

Если вы хотите, чтобы только определенные пользователи запускали исполняемый файл, вы можете определить политики под окнами, которые позволят вам запускать его только для определенных пользователей.

но если вы хотите скрыть код, тогда: так как вы не упомянули, на каком языке вы использовали exe. Если его c / c ++ уже достаточно зашифрован, ему требуется некоторая работа, чтобы получить код из него. Если это java или csharp, то есть обфускаторы, которые вы можете использовать. это несколько затруднит получение кода из exe.

0 голосов
/ 16 июля 2009

Я думаю, вы должны использовать программное обеспечение , которое использует открытый и закрытый ключи. Здесь - дополнительная информация о том, как это работает.

...