문제
누구든지 실행 파일을 암호화하는 좋은 방법을 추천 할 수 있습니까? 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