在执行特定功能之前和之后跟踪所有更改的最简单方法是什么。我知道我可以跟踪指令,但这可能会产生一长串所有执行的命令。我想在执行函数之前停止调试器并与之后的更改进行比较。
如何实现?
谢谢,
在执行特定功能之前和之后跟踪所有更改的最简单方法是什么。我知道我可以跟踪指令,但这可能会产生一长串所有执行的命令。我想在执行函数之前停止调试器并与之后的更改进行比较。
如何实现?
谢谢,
在所有内存分配函数上设置钩子,将所有可写内存页标记为保护页。在尝试写入时处理由代码引起的所有 STATUS_GUARD_PAGE_VIOLATION 异常。
让我们假设您只需要查看更改,而不需要了解它们是什么以及它们是如何/为什么制作的
你可以这样做:
执行全进程内存转储
2.1 对于windows - 使用windbg 命令 .writemem c:\output\start_address.dmp start_address end_address。或使用 procdump:https ://docs.microsoft.com/en-us/sysinternals/downloads/procdump
2.2 对于 linux - 使用cat /dev/[pid]/maps然后从 GDB make dumps:
dump memory /output/memory_start_address start_address end_address
运行到函数结束,在另一个目录中再次执行[2]
祝你好运
DL