我有一个devilish-gui.exe ,一个devilish.dll和devilish.h从C代码库中丢失了。
devilish-gui仍然是从客户使用,它使用devilish.dll
devilish.h在一个30页的pdf中没有很好的logging:根据作为参数提供的结构中的值,它暴露了一些C函数,其行为方式非常不同。
现在,我必须使用devilish.dll来编写一个新的恶意web服务。 不,我不能重写它。
这个文档几乎没用,但是因为我有devilish-gui.exe,所以我想写一个不同的devilish.h实现,以便将函数的调用和参数logging在一个文件中,而不是调用原始的dll函数。 类似于linux上的ltrace ,但专门为这个奇怪的库。
我怎样才能在windows上编写这样的“拦截”dll,并在devilish.dll和devilish-gui.exe之间插入?
几种可能性:
devilish.dll的实现放在与devilish-gui.exe相同的目录中,并将devilish-gui.exe的实际实现移动到子目录中,则Windows将加载您的实现而不是实际的实现。 然后你的实现可以转发到真正的实现。 我假设devilish-gui没有针对搜索路径攻击的硬化。 devilish.dll 。