我需要在基于.NET的EXE中注入一个自定义的,唯一的静态字符串。对于所有意图和目的,假设这是我的PKI的私钥。
我对如何保护C#源代码中的私钥有一些想法,我的问题是如何获取我的.CS文件并根据它创建可执行文件?
答案 0 :(得分:4)
看看CSharpCodeProvider,基本上可以使用包含源代码的字符串并将其编译为程序集(EXE或DLL),或者如果需要,可以使用内存程序集。
您还可以将codeDOM用于代码生成方面。以'Generating Source Code and Compiling a Program from a CodeDOM Graph'为出发点。
答案 1 :(得分:3)
最简单的方法是调用{#3}},即C#编译器。
例如:(来自上面链接的msdn页面)
csc /out:My.exe File.cs
将从名为My.exe
的输入文件生成名为File.cs
的可执行文件。
如果您要编译的可执行文件相当复杂,那么保留预编译并且只编译一个在运行时调用方法以获取私钥的DLL可能更简单,因为这将是一个更简单的命令要传递给csc的行。