05 2013 档案

强大的二分查找法(Binary Search)
摘要:今天帮助David 调程序。他在做Windows下程序分析,使用一个数组存放目标程序heap中所有的数据结构(地址和Size),然后扫描该程序全局数据段所有内容,如果某个指针指向的值落在heap中某个数据结构地址范围内,就建立从全局数据段到该数据结构的路径。David给我演示时, 说运行Toy program 没问题,但运行一个比较大的真实程序时,就会出现性能问题,果然,我们等了二十多分钟,还是没有算完。于是我检查了他的代码,告诉他问题可能出在检查指针是否指向有效数据结构时,他是用的线性查找方法。我说,考虑到他的数组已经排序, 使用二分查找法,会快很多,因为算法复杂度从O(N)降到了O(log 阅读全文

posted @ 2013-05-24 15:02 假日笛声 阅读(660) 评论(0) 推荐(0)

如何得到OS物理内存?
摘要:为了分析计算机操作系统的运行状态和内容,或者进行内存取证,我们经常需要取得系统的物理内存,并把它保存在一个文件中,用于以后的分析和处理。那么如何取得系统的内存呢?有几种方法,我一一道来。利用虚拟机保存物理内存:如果目标系统在虚拟机中,无论系统类型是什么(Windows, Linux, *BSD, Minix, Solaris),我们都可以借助虚拟机来取得Guest OS的内存。具体来说,如果我们使用的虚拟机是VMware Workstation, 我们可以使用take a snapshot功能,每次Take a snapshot, 我们就会得到一堆文件,其中*.vmem就是Guest OS的物 阅读全文

posted @ 2013-05-23 12:34 假日笛声 阅读(914) 评论(0) 推荐(1)