我有一个改变当前目录的进程,我想知道它发生的时间和地点。我该怎么做呢?我尝试使用Visual Studio在SetCurrentDirectoryA/SetCurrentDirectoryW中设置断点,但它不起作用。
SetCurrentDirectoryA
SetCurrentDirectoryW
h9vpoimq1#
您是在调试自己的程序,还是没有源代码的程序?Visual Studio调试器在调试无源代码的应用程序方面不是很友好;在这种情况下,我建议使用WinDbg或OllyDbg,甚至跳过调试器,使用EasyHook编写一个插装日志程序。
尝试在{,,kernel32.dll}_SetCurrentDirectoryA@4处设置断点-特殊的语法和需要修饰的名称。我自己没有尝试过,但发现它是here。Google关键词:“Visual Studio断点API”:)
{,,kernel32.dll}_SetCurrentDirectoryA@4
pobjuy322#
您需要使用机器码附加/两柴行程序。如果您错误地使用Managed程式码两柴,您将不会叫用这些中断点。
xiozqbni3#
您的程式可能正在使用msvcrt函式变更目录。您也应该尝试在这些函式上放置中断点:
_chdir _chdrive
3条答案
按热度按时间h9vpoimq1#
您是在调试自己的程序,还是没有源代码的程序?Visual Studio调试器在调试无源代码的应用程序方面不是很友好;在这种情况下,我建议使用WinDbg或OllyDbg,甚至跳过调试器,使用EasyHook编写一个插装日志程序。
编辑:
尝试在
{,,kernel32.dll}_SetCurrentDirectoryA@4
处设置断点-特殊的语法和需要修饰的名称。我自己没有尝试过,但发现它是here。Google关键词:“Visual Studio断点API”:)pobjuy322#
您需要使用机器码附加/两柴行程序。如果您错误地使用Managed程式码两柴,您将不会叫用这些中断点。
xiozqbni3#
您的程式可能正在使用msvcrt函式变更目录。您也应该尝试在这些函式上放置中断点: