如何将调试事件读取寄存器的操作描述成一个长尾?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1186个文字,预计阅读时间需要5分钟。
当读者需要获取特定进程内的存储器信息时,需在代码中完善以下步骤,不超过100字:
编写`CREATE_PROCESS_DEBUG_EVENT`事件,程序首次加载进入内存时触发此事件。事件内,首先我进行相关操作。
当读者需要获取到特定进程内的寄存器信息时,则需要在上述代码中进行完善,首先需要编写CREATE_PROCESS_DEBUG_EVENT事件,程序被首次加载进入内存时会被触发此事件,在该事件内首先我们通过lpStartAddress属性获取到当前程序的入口地址,并通过SuspendThread暂停程序的运行,当被暂停后则我没就可以通过ReadProcessMemory读取当前位置的一个字节机器码,目的是保存以便于后期的恢复,接着通过WriteProcessMemory向对端(void*)dwAddr地址写出一个0xCC断点,该断点则是int3停机指令,最后ResumeThread恢复这个线程的运行,此时程序中因存在断点,则会触发一个EXCEPTION_DEBUG_EVENT异常事件。
本文共计1186个文字,预计阅读时间需要5分钟。
当读者需要获取特定进程内的存储器信息时,需在代码中完善以下步骤,不超过100字:
编写`CREATE_PROCESS_DEBUG_EVENT`事件,程序首次加载进入内存时触发此事件。事件内,首先我进行相关操作。
当读者需要获取到特定进程内的寄存器信息时,则需要在上述代码中进行完善,首先需要编写CREATE_PROCESS_DEBUG_EVENT事件,程序被首次加载进入内存时会被触发此事件,在该事件内首先我们通过lpStartAddress属性获取到当前程序的入口地址,并通过SuspendThread暂停程序的运行,当被暂停后则我没就可以通过ReadProcessMemory读取当前位置的一个字节机器码,目的是保存以便于后期的恢复,接着通过WriteProcessMemory向对端(void*)dwAddr地址写出一个0xCC断点,该断点则是int3停机指令,最后ResumeThread恢复这个线程的运行,此时程序中因存在断点,则会触发一个EXCEPTION_DEBUG_EVENT异常事件。

