2010-04-14 169 views
1

我想为某些人提供某些应用程序而不教他们如何添加加密或身份验证,因此我想模拟一个启动另一个应用程序的简单应用程序,如果某些密码或身份验证函数返回真正。我将如何封装应用程序,以便只有启动程序才能访问该文件?C#在另一个应用程序中包装应用程序

+0

是否管理包装的应用程序? – SLaks 2010-04-14 02:40:30

回答

2

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

注意,你仍然是脆弱的反射器,除非你从一个Web服务的解密密钥。 (在这种情况下,您将容易受到Reflector,Fiddler和有效密码的组合影响)

+0

这些应用程序通常用AutoIt或VB.NET编写。我正在使用C#。我只是不知道AutoIt是否被管理。 – 2010-04-14 03:09:42

+0

得到它的工作,谢谢兄弟。 – 2010-04-14 04:58:19

+0

我忘了提及你应该混淆它。 – SLaks 2010-04-14 11:16:06

0

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

这和你可能做的任何事情一样安全(没有大量的工作)。精明的用户可以在运行EXE文件的同时找到其副本,但精明的用户可以轻松地从程序中轻松提取它。

+0

请注意,一旦EXE文件被提取,可以由最终用户复制。这可能或可能不是一个问题。 – SLaks 2010-04-14 03:16:53

+0

我刚刚加入了同样的观点。 :) – MusiGenesis 2010-04-14 03:18:31

+0

这是我希望避免的。 – 2010-04-14 03:20:17

相关问题