在没有提取的情况下在归档文件中执行Application

eSP*_*iYa 5 .net encryption mono file

我想压缩和加密我的整个应用程序,可能使用Zip,7z,Bz2,Tar或任何压缩方法,并使用AES-128/256作为加密算法用于安全目的.然后创建一个启动器应用程序,它将处理应用程序的执行和存档的解密.

我已经知道如何实现它,但只有引用/库:

  • 应用程序将使用#ZipLib处理文件的解密,密码可能存储在SecureString中

  • 创建一个新的AppDomain并从存档中执行可执行文件而不解压缩它(只需加载字节码)

  • 辅助AppDomain必须实现AssemblyResolve事件以及何时需要加载程序集; 它会尝试从存档中解密该文件.

但是应用程序所需的文件如图像,嵌入式数据库(例如SQLite),XML和其他外部文件如何?还有其他办法吗?

Jim*_*ark 3

文件都可以在运行时加载,不需要在设计时加载。您可以打开资源管理器并从加密区域中提取图片。这是可以实现的。但这需要一些时间。在我看来,你正在做的事情在概念上很好,但还有些不足。运行程序的唯一方法是以某种方式提取它。如果您的目标是保护您的信息,您的启动器将暴露您的数据。通过使用 .NET 本身就暴露了您正在做的事情(.NET Reflector 等)。如果您的目标是让它变得困难,那么启动器就足够了。

请记住,一切都可能被打破。