您的位置:首页 > 其它

windbg使用日记(二)

2014-11-29 15:29 176 查看

1. 搜索内存

搜索内存在逆向分析时很重要,用来查找关键数据,定位特征地址等。

常用的搜索内存的命令是:s

s指令的通用形式如下:

s [flag] + 搜索范围 + 要搜索的内容

如:s -a 0x12ff40 L20 "Hello"

表示从 0x12ff40地址开始,在往后20字节的空间中,查找ANSI编码的字符串"Hello",即在 0x12ff40 - 0x12ff5f范围内查找"Hello"。

s指令搜索内存时,默认有一个范围限制,即搜索的范围不能超过256MB大小,这在一定程度上限制了我们对s指令的使用。

在分析时,我更喜欢下面这种无范围限制的方式:

s 0x00000000 L?80000000 + 要搜索的内容

表示搜索从0x00000000 - 0x80000000空间内的目标数据,就是搜索整个用户空间,查找关键数据。

2. 查看堆栈

查看堆栈的命令是:k

一般我使用k、kb指令来查看堆栈信息,太复杂的用法暂未接触。

3. 查看堆

查看堆信息的命令是:!heap

!heap命令可以列出当前进程正在使用的所有堆信息。

一般,我在调用malloc等分配空间的函数前、或是拿不准某个地址是否属于栈上分配的、或是拿不准某个地址是否被释放了的情形下,使用!heap相关指令来查询。

我经常使用的形式:!heap -x [-v] + 目标地址

如:!heap -x 0x80996

表示0x80996地址所处的空间是否在某个堆上,是正在被使用、还是已经被释放了。

其他的什么查找函数符号信息的指令x,反汇编指令u等,都很简单了。

以上就是我在逆向windows应用程序时常用到的指令,其他的,基本就是分析汇编代码了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: