문제

누구든지 실행 파일을 암호화하는 좋은 방법을 추천 할 수 있습니까? AxCrypt를 사용하려고했지만 사용법이 마음에 들지 않습니다. 즉, 암호를 지정하고 EXE를 시작하는 사람은 암호를 지정해야합니다. 한 번 암호를 암호화 할 수있는 사람이 있습니까? 사용자는 암호를 지정하지 않고 EXE를 실행합니까?

도움이 되었습니까?

해결책

기본적으로 무의미합니다. .NET 또는 Java 프로그램 인 경우 Obfuscators는 성능을 향상시키고 실행 가능한 크기를 줄이고 리버스 엔지니어링을 어렵게 만들 수 있습니다. 패커는 실행 가능한 크기를 줄일 수 있습니다. 서명하면 프로그램을 구축 한 것을 사용자에게 보증 할 수 있습니다. 그러나 실행 파일의 암호화를 숨기려는 목적으로 실행 파일의 암호화는 다소 무의미합니다.

다른 팁

자체를 해독하는 방법을 알고있는 프로그램에는 해커가 프로그램을 타협하는 데 필요한 모든 정보가 포함됩니다. 키로 자물쇠를 나눠주고 있습니다. 그러나 프로그램 입력에 대한 작은 장벽을 세우고 싶다고 가정 해 봅시다. 어쩌면 당신은 당신의 게임에 치트 코드가 있고 누군가가 그냥 할 수 있기를 원하지 않습니다. 프로그램을 통해 '문자열'을 실행하십시오 그리고 그들을보십시오.

내가 제안한 것은 프로그램을 포함하여 프로그램을 포장하는 것입니다. upx. 이것은 디스크에서 프로그램을 더 난독화할 수 있습니다. 기본 심문 기술은 작은 감압제 만 볼 수 있습니다. 그러나 결정된 해커는 압축기 프로그램을 신속하게 인식하고 압축 해제합니다. 두 경우 모두 프로그램이 메모리에서 실행되면 프로세스의 핵심 덤프를 취하거나 디버거를 첨부 할 수 있습니다. 대부분의 하드웨어에서이를 방지하기 위해 할 수있는 일은 많지 않습니다.

특정 사용자가 EXE를 실행하려면 Windows에서 정책을 정의하여 특정 사용자 만 실행할 수 있습니다.

그러나 코드를 숨기고 싶다면 다음과 같은 언어를 언급하지 않았기 때문에 Exe를 만들었습니다. C/C ++가 이미 충분히 암호화 된 경우 코드를 가져 오려면 약간의 작업이 필요합니다. Java 또는 Csharp가 사용할 수있는 Oppuscator가 있습니다. Exe에서 코드를 얻는 것이 다소 어렵게 만듭니다.

나는 당신이 사용해야한다고 생각합니다 소프트웨어 공개 및 개인 키를 사용합니다. 여기 작동 방식에 대한 자세한 정보입니다.

당신은 질문을 이해하지 못합니다. 프로그래머가 그렇게 생각하는 것은 정상입니다. 그러나 윤리적 해커가 코드를 숨기지 않고 바이러스 백신을 지불하고 싶다는 것이 분명합니다. 어쨌든 u는 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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top