C++ 重写来自内核32的调用

C++ 重写来自内核32的调用,c++,dll,overloading,dll-injection,overriding,C++,Dll,Overloading,Dll Injection,Overriding,可执行文件可能使用CreateFileA 我要做的是覆盖来自kernel32.dll的调用 并给出itstdin/stdout句柄 我能做的是: 给它我的winmm.dll,因为它从中加载timeGetTime,以获取时间 当我试图重写DLL中的CreateFileA调用时,编译器不允许我编译,因为kernel32.DLL已经有了它的引用 winmm.cpp(56): warning C4273: 'CreateFileA': inconsistent dll linkage C:\Prog

可执行文件可能使用
CreateFileA

我要做的是覆盖来自
kernel32.dll的调用

并给出it
stdin/stdout句柄

我能做的是:

  • 给它我的
    winmm.dll
    ,因为它从中加载
    timeGetTime
    ,以获取时间
当我试图重写DLL中的CreateFileA调用时,编译器不允许我编译,因为kernel32.DLL已经有了它的引用

winmm.cpp(56): warning C4273: 'CreateFileA': inconsistent dll linkage
C:\Program Files (x86)\Windows Kits\8.1\Include\um\fileapi.h(122): note: see previous definition of 'CreateFileA'
有没有办法让我制作的DLL做到这一点

PS:我不知道多少汇编,但这里是程序扫描我作为参数给出的文件时的反汇编


您应该尝试API挂钩。查看这些链接-


使用适当的C++并将代码< STD::Basic IoSoS传递到代码中…现在您可以写入文件、标准输出或字符串…我不知道文件的源代码。我只想将stdin/stdout句柄传递给它以生成一个包装器。拦截另一个进程对操作系统的调用是一个高级主题。这个问题可能超出了堆栈溢出格式的范围。