由于微信内存注入,注入器与dll是分开的。现想把其打包在一起,以免dll文件被人直接拿去用。

思考

刚开始是想把dll引用到注入器代码里,但是dll引用不进去 ,可能是有所混淆。
后面百度了一番,把dll当作资源加进去,并要把生成操作改成嵌入式资源(未验证此处是否可忽略)。
当程序一加载释放dll资源到指定的位置。

步骤

  1. 创建Resources文件夹,并把dll拷贝进去
  2. 右击项目,资源,添加其他文件,并dll添加进去
  3. 点击dll修改生成操作为嵌入式资源
  4. 修改代码,释放dll到相应位置
    释放到 c:\\windows\system32会dll被另一进程使用,后面只能释放到用户的公共数据存放那边
             //释放dll
             string path = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
    
             if (!File.Exists(path + @"\wxidAndGroupName.dll"))
             {
                 byte[] Save = global::L000WeChatDllInjector.Properties.Resources.wxidAndGroupName;
                 FileStream fsObj = new FileStream(path + @"\wxidAndGroupName.dll", FileMode.CreateNew);
                 fsObj.Write(Save, 0, Save.Length);
                 fsObj.Close();
                 //现在到系统目录中找一下释放的资源.dll吧
             }
    

总结

此方法释放dll还是隐患,如果用户知道此dll释放位置,就前功尽弃。。。