2013-03-27 60 views
0

好吧,我承認標題有些模糊,我不知道如何在標題中描述它。即使是標籤,我也不確定這個問題。即使沒有運行程序,C#文件輸出(.exe)也可以運行代碼

所以,我有一個加密&解密程序(在C#中),我可以加密它成爲.exe文件。現在,我想解密它而不運行該程序。我只是想運行.exe文件,它會解密自己(使用我自己的算法)。

我現在的概念是,我需要在加密時嵌入我的解密代碼。有沒有辦法解決它?谷歌()不能真正幫助我,因爲我不知道這些條款。也許這裏的任何人可以幫助我?

一般的思想:

我的加密功能:

Encrypt(string input, string output, string key) 
{ 
    .....after all encryption happens.... 
    <produce output which is .exe> 
    <embed the decryption function, which will run when .exe is launched> 
} 

我的解密功能(一個需要,同時加密文件被包埋):

Decrypt(string input, string output, string key) 

如果我讓自己混亂,請只提醒我一下。我會盡量讓它更容易理解。非常感謝你。

+2

'我可以將它加密成爲.exe文件' - 這個讓我驚慌失措... – 2013-03-27 15:11:41

+0

你的意思是你使用引導程序來解密一個你內部存儲的用於運行的exe文件,現在你想銷燬它它當你完成運行? – 2013-03-27 15:17:57

+0

你正在加密一個字符串並將其放入一個擴展名爲.exe的文件中嗎? – CathalMF 2013-03-27 15:26:38

回答

0

我有兩個建議:

複雜的解決方案:

  1. 加密你的文件ANE使en.exe程序
  2. 打開en.exe程序並將其嵌入逐字節到一個字符串運行Decryptor作爲主要功能的項目。
  3. 第2步的編譯項目。結果是自己的解碼器

注意:您可以執行第2步。我的意思是你的加密器在運行時創建這個C#項目然後編譯它。此方法使用RunTime Compile概念。

簡單的解決方案:

使用WinRar。它可以加密/解密,密碼保護並製作EXE文件。所有這些都非常簡單,可以通過命令行完成。

+0

如果使用winrar,我沒有什麼意義,但我真的很喜歡這個複雜的解決方案,我會試試看,謝謝:) – user2002495 2013-03-27 16:31:15

+0

我想我明白你想做什麼...你想轉身一個文件放到一個程序中,當你像運行一樣運行它時,它會變回自己......有點像許多Zip程序可以創建的自解壓檔案.....是的,複雜的解決方案是但我會考慮簡單的解決方案,如果我是你,爲什麼重新發明輪子......已經有代碼在那裏,你想要什麼...... – Nevyn 2013-03-27 17:09:34

+0

@ user2002495你可以提供更好的性能和可擴展性。但你需要知道PE文件格式(PE = Portable Executable = Windows .exe,.dll,...文件格式),並自己製作EXE文件(編譯器做到這一點,使生活變得簡單:D) – SuB 2013-03-28 10:45:49

相關問題