Windows操作系统中有很多种种方式可以检验应用程序运行记录,例如预读取文件(*.pf)、Shimcache、RecentFileCache.bcf、Amcache.hev、跳转列表等等,这些已经有很多资料介绍了。今天给大家介绍一个我最近才注意到的程序运行痕迹的地方——RADAR。

我们在Windows注册表编辑器中展开“\HKLM\SOFTWARE\Microsoft\ RADAR\HeapLeakDetection\DiagnosedApplications\”,可以看到该键有很多以程序名命名的子键,每个应用程序子键有一个名为“LastDetectionTime”的项。这些就是注册表中的RADAR数据。

下面是我在自己工作电脑上的注册表截图,可以看到Belkasoft Acquisition Tool、取证大师、FTK Imager、UFED PA、X-Ways Forensics等取证软件的记录,当然还有我们自家的手机神探(LY.exe)和取证神探。

请输入图片描述

以上图FTK Imager.exe为例,LastDetectionTime值为“1d61e8076a3cb58”,将其复制到取证神探时间解码工具中,选择FileTime格式,或使用免费的解码工具DCode选择FileTime格式进行解码,得知时间值为2020-04-30 07:46:54。

请输入图片描述

RADAR最后记录时间还可以通过对应注册表键的最后修改时间得知。最简单的方法是右击注册表键,点击“导出”,在对话框保存类型中选择“文本文件”,保存后用记事本打开即可看到对应注册表键最后修改时间。

请输入图片描述

请输入图片描述

关于RADAR,网上可以查到的中文资料不多。通过Google总算找到了少量的相关信息。RADAR是始于Windows 7的一种内存泄漏检测技术,可以自动检测出应用程序的内存泄露情况并进行定位,打包成错误报告后通过某种方式反馈给微软团队或软件开发者。

根据RADAR的原理,并非每次程序运行都会在注册表中产生记录,但如果注册表RADAR键中存在某个应用的记录,则说明该应用在对应时间点肯定运行过。经过实测,在Windows7到windows10最新版(1909)系统中都可以发现RADAR相关记录。

如今计算机配置越来越高,但再高的配置,也敌不过软件对硬件无止境的消耗,特别是内存和CPU,取证分析软件就是一个典型的例子。例如EnCase对于小型案例推荐的硬件配置是Core i5的处理器和16GB内存,对于同时处理多个大型案例的场景,推荐的硬件配置是双处理器(Core i7或Xeon E7系列)和128G内存。

内存不够,添加内存即可立竿见影,另一方面机械硬盘升级为固态硬盘也可以缓解内存有限造成的体验上的不足。但一旦CPU能力不足,软件轻轻松松即可耗尽CPU资源,达到100%的占用,使得计算机异常卡顿,甚至连鼠标键盘操作都无法及时响应。对于程序CPU占用率过高的问题能否解决呢?答案是肯定的!

下图是使用Passware Kit Forensic破解文件密码时的截图,通过任务管理器可以看到 Passware Kit Forensic占用了93.6%以上的CPU资源,所有程序加起来则占用了CPU 100%的资源,系统操作起来比较卡顿。

图1

选中CPU占用最高的Passware Kit Forensic进程,右击,选择“转到详细信息”。
图2
跳转到详细信息视图后,Passware Kit Forensic相关进程已经被选中并高亮显示,右击,选择“设置相关性”。
图3
在弹出的“处理器相关性”窗口,默认所有CPU处理核心都是被选中状态,即此进程可以使用CPU的每个核心。我们取消勾选其中的一个核心,例如CPU3。
图4
现在在任务管理器中可以看到Passware Kit Forensic的CPU占用率已经下降到80%以下了,由于有足够的CPU资源响应鼠标键盘操作及其他任务,系统流畅了不少。
图5
简单总结——任务管理器中限制进程使用的CPU核心数量即可防止单个进程占用太多的CPU资源,从而避免因CPU资源极度紧张造成的系统卡顿。


本文于2019年9月18日发布于本博客及微信公众号“取证杂谈”、“取证神探”。

大部分人画组织结构图,最常见的画法是用Word中的文本框加连接线慢慢画,效率非常低。对于Office办公软件用的溜的人,也可能会使用Microsoft Office中的SmartArt功能生成组织结构图。

数据量小、结构简单的时候,SmartArt画组织结构图简单便捷。但一旦数据量比较大,例如传销组织,层级结构图便需要使用I2等专业工具生成了。但I2等商业工具授权昂贵,学习门槛高。今天介绍一种使用Markdown编辑器快速生成传销组织层级结构图的方法,对于会员数千个一下的情况,高效、便捷,生成的层级结构图还可方便地搜索。

Markdown是一种轻量级标记语法,用户可以用纯文本写作,最后生成带有各种富文本格式的html。因为其轻量化及易写易读的特性,深受程序员、文字写作者的喜爱。

Markdown语法中,对于代码段的处理非常简单,代码段前后各加三个“\`”(英文输入状态TAB键上面的键)即可。如果需要指明代码语言,直接在首行“\`\`\`”后面添加一个空格,然后写上语言即可,例如“\`\`\` php”即表示接下来是php代码。

绝大多数Markdown编辑器只支持常规的代码语言并在渲染成html页面的时候进行代码高亮的美化。标准的Markdown语法中是不支持例如流程图、数学公式等图书图像的,但也有不少Markdown编辑器额外增加了支持,例如马克飞象、CMD Markdown,甚至印象笔记、有道云笔记。

要画组织结构图,在Markdown代码开始标记“\```”后面添加“graph”即可,如果要指定方向,可在graph后添加“LR”或“TD”。“graphLR”表示父节点在左,子节点在右;“graphTD”表示父节点在上,子节点在下。层级机构格式为“A --> B”,表示B的父节点是A,每行一个关系表达式,各关系表达式之间不分先后顺序。

例如A的子节点为B和C,C的子节点为D,B的子节点为E、F。Markdown语法如下:

\``` graph
A --> B
A --> C
C --> D
B --> E
B --> F
\```

效果图如下:

下面针对传销组织人员数据库进行简单的示例操作。假设人员信息表如下表所示:

idpidnamepname
10习秋华公孙愉
21晋丹习秋华
31代惜玉习秋华
45侍运诚习秋华
53戴同代惜玉
62商弘毅晋丹
74张建国侍运诚
86仵旋商弘毅
96洛白容商弘毅
107运芮静张建国
118蒋雪巧仵旋
128林运凡仵旋
1310邰雪帆运芮静

复制name、panme两列到记事本等文本编辑器中,pname在左,name在右。

公孙愉    习秋华
习秋华    晋丹
习秋华    代惜玉
习秋华    侍运诚
代惜玉    戴同
晋丹    商弘毅
侍运诚    张建国
商弘毅    仵旋
商弘毅    洛白容
张建国    运芮静
仵旋    蒋雪巧
仵旋    林运凡
运芮静    邰雪帆

使用文本编辑器的替换功能,用“ --> ”批量替换制表键,并在第一列添加“\`\`\` graphTD”,最后一列添加“\`\`\`”。

\``` graphTD
公孙愉 --> 习秋华
习秋华 --> 晋丹
习秋华 --> 代惜玉
习秋华 --> 侍运诚
代惜玉 --> 戴同
晋丹 --> 商弘毅
侍运诚 --> 张建国
商弘毅 --> 仵旋
商弘毅 --> 洛白容
张建国 --> 运芮静
仵旋 --> 蒋雪巧
仵旋 --> 林运凡
运芮静 --> 邰雪帆
\```

复制以上代码粘贴到支持流程图的Markdown编辑器中,即可自动生成组织层级结构图。下图是我在马克飞象中生成的。


Markdown是一个非常优美的语言,个人从学生时代就开始用,博客、邮件、工作笔记,基本全部在使用Markdown。Markdown语法支持加粗、斜体、段落、链接、图片、表格、引用等各种格式,不少Markdown编辑器还增加了待办清单等更多功能。

本文也是用Markdwon编辑器完成编写。

MAC地址是网卡的唯一标识符,在取证中非常重要。

开机取证

Windows
对于Windows操作系统,在命令提示符或Powershell中执行以下命令查看计算机的MAC地址:

ipconfig /all

macOS
对于macOS,在终端中输入并执行一下命令即可查看本机MAC地址

ifconfig /a
其中eth0表示以太网卡

Linux
按Ctrl+Alt+T快捷键打开终端,输入并执行以下命令即可查看网卡MAC地址

ifconfig

离线取证

根据SANS Windows Forensics Poster,对于Windows 7/8/8.1/10,注册表以下位置存在网卡信息

SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged
SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Managed
SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Nla\Cache