覆盖来自kernel32的调用

时间:2017-11-30 09:19:40

标签: c++ dll overloading dll-injection function-overriding

可执行文件可能会使用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:我不太了解装配,但是当程序扫描我给出的文件作为参数时,这是反汇编

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)