如果采用GetProceAddress方式可以写一个DLL来LoadLibrary原来那个DLL的并写出所有的引出函数,且引出序号一样,并且把原来那个DLL改名,把你写的DLL改为那个DLL的原名如果EXE是用原来的DLL的Lib且不能重新编译,就该是没戏

解决方案 »

  1.   

    你使用勾子函数把这些DLL的功能HOOK住,然后再加入自己的功能,当然,你必须动态装卸这个DLL中的函数
      

  2.   

    adrianx 说的方法我用过! 是可行的! 
    还有另外一种方法!原理和它差不多。//Function forwarders to functions in Another dll
    #pragma comment(linker, "/export:SomeFunc = AnotherDLL.SomeOtherFunc")pragma 告诉连接程序 别编译的DLL 应该输出一个somefunc 的函数  但是这个函数实际是在 AnotherDLL 里面的 SomeOtherFunc