我正在反转一个用 C 编写的应用程序。我有一个特定的函数,我想记录运行时,而不暂停/停止应用程序。
我想要的那个函数的值是:
[ESP + 4]这是缓冲区的长度[ESP + 8]这是一个指向字符串缓冲区的指针
然后我想读取缓冲区并将其写入文件。
我被告知要使用的第一件事是 Immunity's LogBpHook,它工作得很好,但它会停止应用程序并且因此变得非常慢,因为它是一个经常调用的函数。
然后我尝试设置FastLogHook听起来更像我所追求的。它注入一个日志存根并存储遇到的值,但据我所知,它不能像我上面描述的那样执行进一步的内存读取(如果可以请告诉我)。它也不断地使我的应用程序崩溃,所以这是不可能的。
所以我留下了注入自定义代码存根的想法,该存根将负责进一步读取并将值记录到文件中。有什么工具可以做到这一点,或者我必须手动编写+注入这个程序集?
如何在不停止应用程序的情况下记录函数参数运行时?