我试图创建一个软件,允许用户登录和流式传输一个dll的字节[]用于注入。例如我是否应该担心我的软件被反编译?
public static byte[] getDLL()
{
using (WebClient wc = new WebClient())
{
Uri url = new Uri("http://mysite/dll.dll");
return wc.DownloadData(url);
}
}
我成功设法使用visual studio在C#中做到这一点。但是,您可以轻松地反编译该程序,并使其在您的计算机上的特定位置创建DLL,从而泄漏它。而且我几乎没有办法阻止这种情况发生。
我会更好地使用一种难以反编译的语言,比如说C++或C,或者我只是想碰到同样的问题,我使用的是什么语言?这真的值得付出吗?
任何运行在用户机器上的软件都可以被反编译/被黑客入侵如果他们有足够的知识和动机,则由用户/ /等等。你可以让它变得更难,但并非不可能。 – TheUndeadFish
你是什么意思通过蒸汽一个DLL的字节[]?加载DLL并从中获取一个字节数组?你担心的是有人用另一个返回不同的字节替换DLL?也许你正在寻找的解决方案是代码签名,你知道你加载的DLL是你的。我想象的另一个潜在的含义是,您关心的是其他人打开您的DLL并获取数据而无需通过您的前端应用程序。解决这个问题的方法是模糊处理,再加上应用程序和DLL之间的非握手协商。 DRM概率。 – harningt
嗨,哈宁特感谢您的回复。我用代码片段更新了这篇文章,希望能够展示我的意思。我正在使用下载的dll中的byte []注入进程。 –