- 分配内存指令:.dvalloc
.dvalloc指令类似与VirtualAlloc函数。可以指定分配的大小、类型(MEM_RESERVE | MEM_COMMIT)(加上参数 / r,申请的内存类型为MEM_RESERVE。默认为MEM_COMMIT)、起始地址(加上参数 / b)
使用.dvalloc分配的内存都是PAGE_EXECUTE_READWRITE属性
- 释放内存指令 : .dvfree
有分配就有释放.dvfree指令类似VirtualFree 函数。
- 内存属性查看指令:!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 ...)等组合查询某一组内存列表。
- 从文件中读入数据到内存指令 : .readmem
- Dump内存指令:.writemem
我们经常会存在如下需求:有一个程序是压缩壳,需要把解压后的代码Dump出来;为了分析某些数据,需要把某个内存块Dump出来。那使用.writemem把。
.writemem与.readmem类似,是他的逆操作。
- 读内存指令:d
读指令是最常用的指令之一。它负责按照指定的格式,格式化输出内存数据。指令列表:da 按照ASCII字符串读取 db 按照单字节和ASCII字符串读取 dc 按照4字节和ASCII字符串读取 dd 按照4字节读取 dD 按照双浮点(8字节)格式读取 df 按照单浮点(4字节)格式读取 dp 按照指针(32位系统读取4字节,64位系统读取8字节)格式读取 dq 按照8字节读取 du 按照Unicode字符串读取 dw 按照2字节读取 dW 按照2字节和ASCII字符串读取 dyb 按照单字节和二进制读取 dyd 按照4字节和二进制读取
- 显示符号表指令: dds、dps、dqs
这个常用在查看虚函数表、导入地址等操作时使用。
- 查看ascii字符串数组命令: dda、dpa、dqa
- unicode字符串数组查看: ddu、 dqu、 dpu
- 内存写入操作命令: e
写指令是负责按照指定的格式,格式化输出内存数据,对命令中已经看到部分写命令的用法。指令列表:
ea 写入ASCII字符串
eb 写入单字节
ed 写入4字节
eD 写入双浮点(8字节)格式
ef 写入单浮点(4字节)格式
ep 写入指针(32位系统读取4字节,64位系统读取8字节)格式
eq 写入8字节
eu 写入Unicode字符串
ew 写入2字节读取
eza 写入无结束符的ASCII字符串
ezu 写入无结束符的Unicode字符串- 内存搜索指令: s
内存搜索指令,在查找某种类型的数据的时候非常有用
- 物理内存读写操作指令
!d 读物理内存
!e 写物理内存
来源:CSDN
作者:arbboter
链接:https://blog.csdn.net/u014161864/article/details/21372745