C# 从内存加载动态链接库

时间:2021-09-28 10:01:00
【文件属性】:

文件名称:C# 从内存加载动态链接库

文件大小:1.97MB

文件格式:ZIP

更新时间:2021-09-28 10:01:00

C# 内存加载DLL 动态链接库

纯C# 实现的 从内存加载动态链接库,支持加壳的DLL,使用方便 class Program { public delegate Int32 CompressHandle(ref Byte dest,ref Int32 len, Byte [] source,Int32 sourcelen); static void Main(string[] args) { Byte[] source = new byte[10000]; Byte[] dest = new byte[10000]; Int32 len = source.Length; Byte[] dllBin = File.ReadAllBytes("zlib1.dll"); using (var dll = new DllLoader()) { if (dll.LoadLibrary(dllBin)) { var Compress = dll.GetProcDelegate("compress"); if (Compress != null) { var result = Compress.Invoke(ref dest[0], ref len, source, len); Console.WriteLine(result); } } } } }


【文件预览】:
InvokeDll
----.vs()
--------InvokeDll()
----InvokeDll.sln(1KB)
----InvokeDll()
--------InvokeDll.csproj(4KB)
--------bin()
--------Program.cs(941B)
--------obj()
--------Win32()
--------DllLoader.cs(14KB)
--------App.config(184B)
--------Properties()

网友评论

  • 不能加载带壳dll啊,标题写支持加壳dll
  • 待加载的DLL里边是不是也要做什么处理?为什么我自己的DLL不能获取方法?
  • 对PeakCAN的C++库无效,提示受保护的内存,后来采用曲线方式,将dll放到内嵌资源,运行时复制到用户文档文件夹,关闭时再删除dll
  • 项目打开后提示有错误, public T GetProcDelegate(String procname) where T : Delegate return (T)Marshal.GetDelegateForFunctionPointer(addr, typeof(T)); 这两行有错误
  • 研究一下,怎样加载加壳dll
  • 不错,解决了大问题,可以隐藏一些不想被别人知道的东西。
  • 么用起来,不知道怎么用
  • 虚假骗分的,不能用