【问题标题】:C# file output (.exe) can run code even without the program runningC#文件输出(.exe)即使没有程序运行也可以运行代码
【发布时间】:2013-03-17 17:42:54
【问题描述】:

好的,我承认标题有点模糊,我不知道如何在标题中描述它。即使是标签,我也不知道该为这个问题添加什么。

所以,我有一个加密和解密程序(在 c# 中),我可以将它加密为 .exe 文件。现在,我想在不运行程序的情况下将其解密。我只是想运行 .exe 文件,它会自行解密(使用我自己的算法)。

我现在的概念是,我需要在加密时嵌入我的解密代码。有什么办法吗? Google() 不能真正帮助我,因为我不知道这方面的条款。也许这里的任何人都可以帮助我?

总体思路:

我的加密函数:

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)

如果我让自己感到困惑,请提醒我。我会尽量让它更容易理解。非常感谢。

【问题讨论】:

  • I can encrypt it to become .exe file - 这个吓死我了...
  • 您的意思是说您使用引导程序来解密您在内部存储以供运行的 exe,而现在您想在运行完毕后将其销毁?
  • 您是在加密字符串并将其放入扩展名为 .exe 的文件中吗?
  • 我认为他有一个引导程序来运行 exe,但现在他想运行解密部分并将 exe(未加密)存储到文件中,而不运行它。
  • @Catha: 不,我没有加密字符串,我正在加密文件,我使用文件名作为字符串来查找文件所在的路径。

标签: c# embed exe


【解决方案1】:

我有两个建议:

复杂的解决方案:

  1. 使用 make en.exe 加密您的文件
  2. 打开 en.exe 并将其逐字节嵌入到项目中的字符串中,该项目将 Decryptor 作为主函数运行。
  3. 编译步骤 2 的项目。结果是自我贬低者

注意:您可以即时执行第 2 步。我的意思是你的加密器在运行时制作这个 C# 项目,然后编译它。此方法使用 RunTime Compile 概念。

简单的解决方案:

使用WinRar。它可以加密/解密,密码保护和制作EXE文件。一切都非常简单,可以通过命令行完成。

【讨论】:

  • 如果使用winrar,我没有学过,但我真的很喜欢复杂的解决方案,我要试一试,非常感谢:)
  • 我想我明白你想要做什么......你想把一个文件变成一个程序,当你像可执行文件一样运行它时它会变回自身......有点像自我提取许多 Zip 程序可以创建的档案......是的,复杂的解决方案是要走的路,但如果我是你,我会研究简单的解决方案,为什么要重新发明轮子......那里已经有代码可以满足您的需求......
  • @user2002495 您可以使用具有更好性能和可扩展性的复杂解决方案。但是您需要知道 PE 文件格式(PE=Portable Executable= Windows .exe , .dll , ... 文件格式)并自己制作 EXE 文件(编译器这样做,让生活变得简单:D)
  • @Nevyn :Zip 程序不会让您确定加密算法。他们使用有限的方法。有时你也必须重新发明轮子,因为你有兴趣了解它!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-10
  • 2021-11-03
  • 2020-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多