本帖最后由 CK12332 于 2014-07-09 21:03:02 编辑

解决方案 »

  1.   

    仅供参考:
    http://www.codeproject.com/Tips/430684/Loading-Win-DLLs-manually-without-LoadLibrary
      

  2.   

    想到一个办法:在DLL中加入资源的同时,加入一个函数,函数读取DLL中资源,并返回资源入口句柄或者内存地址句柄(锁定内存块之后),或者直接返回资源的二进制数据。
    有大神能测试一下吗?
      

  3.   


    不行滴...
    PE文件加载后,在内存中的长度和文件的字节长度是不同的,不然初始化就没意义了
    pe文件,研究的不多, 仅知道一些基础知识, 刚才提到的长度不同,主要集中在" 节 ",lz有兴趣可以去baidu一下...
      

  4.   

    没看楼主所说具体代码。
    如果不考虑性能,仅仅是说把内存中某块属于DLL文件的数据作为DLL文件加载进来,可以使用文件读写操作,把内存中的数据写入磁盘,再按照正常的DLL文件加载方法就行了。这个可以实现对DLL的封装隐藏加载。
      

  5.   


    关键是这样释放dll会招致杀软的报毒,在内存中运用就避免了报毒的麻烦
      

  6.   

    你在内存中运行DLL,一样会被报毒,有的对这块报毒更严重,这就像是一个正常的EXE带了一个病毒的EXE一样