我想知道kernel32.dll(或其他)中的API是否具有subrutines。 例如CopyFile函数,应该采取不同的操作将文件从C:复制到D:并从netshare路径(\ HOSTNAME \ SHAREDFOLDER \ FILENAME)复制到某处,或者触发windows server 2012(hyper-v)新功能{ {3}}。 所以在CopyFile函数的定义中,应该有一些if / else分支,并调用一些子函数,不是吗? 如果存在subdeutines。是否可以直接调用这些子函数,是否可以挂钩它们? 感谢。
答案 0 :(得分:0)
据我所知,kernel32.dll
的当前实施调用ntdll.dll
中的函数。然后ntdll.dll
中的函数以某种方式对内核进行系统调用。
要回答你的问题,是的,它会调用子程序,它们可能会被挂钩,但大多数关于如何以不同方式专门读取和写入文件系统的逻辑可能都隐藏在内核中。
请记住,您可能不应该深入研究这些DLL的内部 - 最好使用公共接口。依赖于实现细节会使您的代码更加脆弱,并且可能会破坏操作系统升级。