可执行文件可能使用 CreateFileA
我想做的是覆盖kernel32.dll
并给它 stdin/stdout HANDLE
我能做什么:
- 将我的
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 Hook 。查看这些链接-
https://www.apriorit.com/dev-blog/160-apihooks
https://www.codeproject.com/Articles/2082/API-hooking-revealed
关于c++ - 覆盖来自 kernel32 的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47569798/