C#在另一个应用程序中包装应用程序

时间:2010-04-14 02:33:59

标签: c# .net authentication encryption

我想为某些人保护一些应用程序,而不教他们如何添加加密或身份验证,所以我想要模拟一个简单的应用程序,如果某些密码或身份验证函数返回true,则启动另一个应用程序。我如何包装应用程序,以便只有启动器才能访问该文件?

2 个答案:

答案 0 :(得分:2)

如果管理包装(受保护)应用程序,您可以将其嵌入为加密字节数组,然后调用Assembly.Load(rawBytes)并使用反射启动应用程序。
(应用程序应同意公开一些启动自身的静态方法或属性,您可以使用反射调用它)

请注意,除非您从Web服务获取解密密钥,否则您仍然容易受到Reflector的攻击。 (在这种情况下,您将容易受到Reflector,Fiddler和有效密码的组合的攻击)

答案 1 :(得分:0)

你可以做一些SLaks建议适用于任何EXE(.Net或本机)的变体,并将EXE作为应用程序中的嵌入式资源。在您的应用程序中,他们可以单击一个按钮,然后您的代码将从自身中提取EXE,将其保存到临时位置,然后使用Process类启动它。然后,您的应用将等待Process完成并删除临时文件。

这将与您可能做的任何事情一样安全(没有大量的努力)。精明的用户可以在EXE文件运行时找到它并复制它,但精明的用户无论如何都可以轻松地从程序中提取它。