代码之家  ›  专栏  ›  技术社区  ›  eSPiYa

在存档文件中执行应用程序而不进行提取

  •  5
  • eSPiYa  · 技术社区  · 14 年前

    我想压缩和加密我的整个应用程序,可能与Zip,7z,Bz2,Tar,或任何压缩方法,并使用AES-128/256作为加密算法的安全目的。

    我已经对如何实现它有了一个想法,但仅限于参考/库:

    • 应用程序将使用#ZipLib处理文件的解密, 密码可能存储在 安全字符串

    • 创建一个新的AppDomain并从归档文件中执行可执行文件 字节码)

    • 辅助AppDomain必须实现事件AssemblyResolve 每当它需要加载 档案中的文件。

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

    1 回复  |  直到 14 年前
        1
  •  3
  •   Jimmie Clark    14 年前

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

    只要记住,一切都有可能被打破。