我想替换windows中的一些dll文件中的一些函数,使得系统中的一些程序运行时调用替换过的dll中的函数,实现系统的一些保护。

解决方案 »

  1.   

    找到你要替换的程序,注入你的dll,改模块的输入节,将其中函数地址改成你的
      

  2.   

    ReadProcessMemory
    WriteProcessMemory
      

  3.   

    这个应该可以用是钩子函数.HookApi,在网上查一下很多.
      

  4.   

    还必须保证原dll库中的函数可以使用,即在替换后的dll中要实现原dll功能。
      

  5.   

    有两种可能:
    一、你完全不需要原来的DLL了,即你实现原来dll的全部接口,并把
    根据自己的需要改造了部分接口的实现。把它覆盖掉就可以了。
    二、你只是部分实现了原来dll的接口,这是你应该保留原来的dll
    并把它改名,把你的dll改成它的名字。把你没有实现的接口的调用转向
    到原来的dll。
      

  6.   

    采用HOOK吧,替换文件可能有不良现象,因为WINDOWS很多文件都进行了数字签名。
      

  7.   

    不能使用HOOk,我想实现 dwchen1999 所说的第二种方法
    保留原文件并改名,使用自己的dll替换它,把没有实现的接口调用转向原来的dll
    但对那些未知的函数我不知道怎么转,请教!!
    谢谢!!
      

  8.   

    采用HOOK吧,替换文件可能有不良现象,因为WINDOWS很多Dll 的接口你都不知道,而且多。hook api 请参考 《windows核心编程》,方法多的不得了