我从C代码库中丢失了devilish-gui.exe
,devilish.dll
和devilish.h
。
仍然使用devilish-gui
来自客户,它使用devilish.dll
devilish.h
在30页的pdf中记录不足:它公开了一些C函数,这些函数根据作为参数提供的结构中的值以非常不同的方式运行。
现在,我必须使用devilish.dll来编写一个新的devilish-webservice。不,我不能改写它。
文档几乎没用,但由于我有devilish-gui.exe,我想编写一个不同的devilish.h实现,以便它将函数的调用和参数记录在一个文件中,而不是调用原来的dll功能。类似于ltrace在linux上所做的事情,但专门用于这个奇怪的库。
如何在Windows上编写这样的“拦截”dll并将其注入devilish.dll和devilish-gui.exe之间?
答案 0 :(得分:3)
有几种可能性:
devilish.dll
的实现放在与devilish-gui.exe
相同的目录中,并将devilish.dll
的实际实现移动到子目录中,Windows将加载您的实现而不是真实的实现。然后,您的实现可以转发到真实的实现。我假设devilish-gui
不是hardened against search path attacks. devilish.dll
的跟踪日志。