Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何保护extarcted嵌入式资源?_C# - Fatal编程技术网

C# 如何保护extarcted嵌入式资源?

C# 如何保护extarcted嵌入式资源?,c#,C#,因此,我正在进行一个项目,需要构建一个登录应用程序,授予对嵌入式可执行资源的访问权。我一直在寻找,但没有找到一种方法。作为一个gatter,我不能不提取它就直接执行。所以我必须有一种方法来锁定可执行文件,就像密码一样,这样,只有我的程序才能访问它。我没有可执行文件的源代码。这可能吗?谢谢,因为另一个应用程序是.net应用程序(您在评论中说,当您执行程序集.LoadFile时,它没有抛出EXEC选项),您可以将exe作为字节数组加载到AppDomain中,然后从内存中运行程序集 static vo

因此,我正在进行一个项目,需要构建一个登录应用程序,授予对嵌入式可执行资源的访问权。我一直在寻找,但没有找到一种方法。作为一个gatter,我不能不提取它就直接执行。所以我必须有一种方法来锁定可执行文件,就像密码一样,这样,只有我的程序才能访问它。我没有可执行文件的源代码。这可能吗?谢谢

,因为另一个应用程序是.net应用程序(您在评论中说,当您执行
程序集.LoadFile
时,它没有抛出EXEC选项),您可以将exe作为字节数组加载到AppDomain中,然后从内存中运行程序集

static void Main(string[] args)
{
    byte[] data = SomeFunctionThatRetrunsTheBytesOfTheExeResource()

    var assembly = Assembly.Load(data);
    assembly.EntryPoint.Invoke(null, null);
}
这将启动您作为嵌入式资源使用的应用程序。请注意,
Invoke(null,null)
函数将阻塞,直到另一个程序从其主方法返回

这将允许您运行exe,而不将其作为驱动器上自己的文件存在

注意:这将使新应用程序与应用程序共享相同的内存空间,因此它可以访问静态变量和类。您可能可以创建一个新的AppDomain并将其加载到那里(但当我试图编写此文件时,无法在第二个AppDomain中运行)


第二个注意事项:如果不通过代码模糊器运行你的应用程序,那么使用任何免费的.net反编译器从你的程序中提取exe将非常容易。

请定义嵌入的可执行资源。请注意,许多反病毒应用程序都会对你的应用程序发出恐怖的尖叫。你想改变其他人的可执行文件,没有源代码?您可以学习组装,分解它,并在密码检查或命令行检查中找到一个位置进行修补。否则,没有。与应用程序的所有者讨论如何使您成为自定义生成。此其他应用程序是.NET应用程序还是本机应用程序?它是普通的.exe文件。应用程序的全部目的就是保护它。