内存分配释放

查看内存属性:!vprot

!vprot指令类似与VirtualQuery 函数。可以获取一个内存块的各种属性。

查询内存信息命令: !address

!address命令可以按照性质(image or stack or heap or filemap…)、类型 (MEM_IMAGE or MEM_MAPPED or MEM_PRIVATE) 、状态 (MEM_COMMIT or MEM_FREE or MEM_RESERVE )、保护属性 (PAGE_NOACCESS or PAGE_READONLY …)等组合查询某一组内存列表。

分配内存指令: .dvalloc

在调试的过程中我们可能需要修改汇编代码,比如做个跳板改变执行流(在介绍a指令的时候有用到.在第三楼),或者把内存dump到文件中,或者把文件中的数据读入内存中。这就牵涉到怎么分配和释放内存,怎么读写内存等操作。下面我们一起来学习一下内存操作相关指令把。

.dvalloc指令类似与VirtualAlloc函数。可以指定分配的大小、类型(MEM_RESERVE | MEM_COMMIT)(加上参数/r,申请的内存类型为MEM_RESERVE。默认为MEM_COMMIT)、起始地址(加上参数/b)
使用.dvalloc分配的内存都是PAGE_EXECUTE_READWRITE属性

释放内存指令: .dvfree

有分配就有释放.dvfree指令类似VirtualFree 函数。

发表评论

电子邮件地址不会被公开。 必填项已用*标注