覆盖来自 kernel32 的调用
Overriding calls from kernel32
一个可执行文件可能使用 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.1\Include\um\fileapi.h(122): note: see previous definition of 'CreateFileA'
有没有办法让我制作的 DLL 做到这一点?
PS: 我不太了解汇编,但这是程序扫描我作为参数提供的文件时的反汇编
一个可执行文件可能使用 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.1\Include\um\fileapi.h(122): note: see previous definition of 'CreateFileA'
有没有办法让我制作的 DLL 做到这一点?
PS: 我不太了解汇编,但这是程序扫描我作为参数提供的文件时的反汇编