问题标签 [computer-forensics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
791 浏览

internet-explorer-9 - 解释 IE9 ltime & htime localStorage 时间戳

以下是来自 IE9 localStorage 文件的一些示例 XML:

我试图弄清楚如何解释这些类型的记录,包括 ltime 和 htime 值。我从研究中发现它与 IE9 localStorage 和来自%userprofile%\AppData\Local\Microsoft\Internet Explorer\DOMStore\.

任何帮助表示赞赏。

0 投票
5 回答
240 浏览

python - 是否可以通过十六进制使用正则表达式来查找电子邮件地址

不确定这是否可能,但我一直在考虑使用正则表达式来获取十六进制的电子邮件地址。基本上这是为了建立我的一些自动取证工具,但我在制作合适的正则表达式算法时遇到了问题。

电子邮件的正则表达式:/^([a-z0-9_.-]+)@([\da-z.-]+).([az.]{2,6})$/

十六进制值:

这就是我目前得到的(它只考虑小写和.com)。但它不起作用!我把一些简单的事情搞砸了吗?

[1] 我知道电子邮件只能小写,但我也需要考虑大写。

0 投票
1 回答
196 浏览

python - 从物理驱动器中提取字符串

我希望在 Python 2.x 中编写一个脚本,该脚本将扫描物理驱动器(物理驱动器而不是逻辑驱动器)以查找大小范围内的特定文本字符串(聊天工件)。我有字符串的页眉和页脚,所以我只是想知道如何最好地扫描驱动器?我担心的是,如果我将其拆分为 250MB 的块并在解析页眉和页脚之前将此数据读入 RAM,则可能是页眉在那里,但页脚位于下一个 250MB 的块中。

所以本质上,我想扫描 PhysicalDevice0 以查找以“ABC”开头并以“XYZ”结尾的字符串,并从其中复制所有内容。我不确定是否也将数据扫描为 ascii 或 Hex。

随着驱动器变得越来越大,我希望以最快的方式做到这一点。

有什么建议么?

0 投票
2 回答
619 浏览

c# - 计算 31 位数字/忽略最高有效位

我正在开发一款分析 E01 比特流图像的软件。基本上,这些是取证数据文件,允许用户将磁盘上的所有数据压缩成一个文件。E01格式嵌入了关于原始数据的数据,包括源数据的MD5哈希和结果数据等。如果你有兴趣轻读,这里有EWF/E01规范。关于我的问题:

e01 文件包含一个“表”部分,它是一系列 32 位数字,它们是 e01 文件中实际数据块所在的其他位置的偏移量。我已经成功地将这些数据解析成一个列表,执行以下操作:

c_CHUNK_DATA_OFFSET_LENGTH 是 4 个字节/“32 位”数字。

根据 ewf/e01 规范,“块数据偏移中的最高有效位指示块是压缩的 (1) 还是未压缩的 (0)”。这似乎可以通过以下事实得到证明:如果我将偏移量转换为整数,结果中会有很大的负数(对于没有压缩的块,毫无疑问),但大多数其他偏移量似乎都正确增加了,但是每个偶尔会有疯狂的数据。ChunkLocations 中的数据如下所示:

在 -2147071848 的情况下,MSB 似乎被翻转以指示压缩/缺乏压缩。

问题:所以,如果 MSB 用于标记压缩的存在,那么我真的在处理 31 位数字,对吗?
1. 在计算偏移值时如何忽略 MSB/计算 31 位数字?
2. 这似乎是一个奇怪的标准,因为它似乎会显着限制您可以拥有的偏移量的大小,所以我在质疑我是否遗漏了什么?当我导航到 e01 文件中的这些位置时,这些偏移看起来是正确的。

谢谢你的帮助!

0 投票
1 回答
3839 浏览

opencv - 计算机视觉:裸露检测解决方案比较(基于 opencv 或自定义代码)和哈希列表和客户端

服务器端:

  • 项目清单:
  • ...:找到 x% 匹配项,y% 误报(opencv +10 行代码)
  • ...:找到 x% 匹配项,y% 误报(自 1995 年以来的大型自定义代码)
  • 其他:
  • 最小的 OpenCV C++ 代码:

    /li>

哈希列表:

  • ..:(由公共资金资助,自...开始限制访问)
  • ...:(开放访问)
  • ...: , y 百万条目, y % new last years (commercial $y / month)
  • ...:,x 百万个条目,x % 去年新增(商业 $x / 月)

(服务器端和)众包/众包验证:

  • 谷歌图片过滤器:... (限制访问,但甚至在自有网站的网站管理员工具中也没有)

客户端:

  • 另一个:... (将在 i5 2540 手机上每 50 毫秒扫描 x 百万像素)
  • 裸体.js(帕特里克·维德):...

我完全重写了这个问题,它总是被关闭,显然似乎是广泛的而不是具体的,并且“促进链接”而不是替代方案?

现在这里的任务是:
“为这个开发特定但广泛未知的任务盘点世界上所有现有的方法。” (=填补上表中的空白,也许是示例代码/实现)

虽然某些 Windows 软件是面向孩子上网的父母销售的 ,但从开发的角度来看,这个假设不会很快出现在维基百科文章“裸露检测软件的比较”中。(也不是在 alternative.to/... )

这也是具体的,但广泛服务不足或实践。因此,没有任何一个答案/链接会成为自我推销/垃圾邮件,相反,这个问题比一般问题更容易出现。然而,根本不需要任何链接,也不会有个人意见的答案,如果有的话,这将比没有帮助更多。

0 投票
1 回答
280 浏览

ram - 从 RAM 转储中提取 flv 视频

我想从 RAM 转储中提取一些 FLV 视频。有没有一种简单的方法可以使用您知道的一些好工具来做到这一点?我已经谷歌了,但我什么也没找到!

我有一个想法,但它似乎很难且耗时,我将搜索 FLV 幻数并开始从那里增量提取数据,但我不知道这种方法是否真的有效。

0 投票
2 回答
102 浏览

c++ - 解析已删除的 pdf

我正在尝试使用 C++ 在磁盘上进行一些文件雕刻。我在网上找不到任何与 pdf 文件的磁盘结构相关的资源。问题是我可以在集群的开头找到 %PDF-1.x 令牌,但我无法在任何地方找到 PDF 文件的大小。

假设这个特定文档的文件系统条目丢失了。我找到了文档的开头并继续阅读,直到遇到“startxref number %%EOF”。问题是我不知道何时停止,因为文档内容中有多个“%%EOF”标记。

我试过在阅读后停下来,比如说 10 个集群,但在任何地方都没有找到任何 pdf 特定的关键字,如“obj”、“stream”、“trailer”、“xref”。但它非常随意,它不是找到文档结尾的确定性方法,因此我可以确定它的大小。

我还在一些“obj”的开头看到了一些“长度数字”标记,但大多数时候这个数字并不适合。

关于下一步我可以尝试什么的任何想法?有没有办法确定整个文档的确切大小?我对以编程方式恢复文档感兴趣。

0 投票
1 回答
411 浏览

bash - Bash 脚本:使用 Sleuthkit 批量恢复文件

在网上找到了一个使用 Sleuthkit 批量恢复文件的 bash 脚本,但由于我认为脚本本身存在错误,我无法使用它。这是脚本:

一切正常,直到cut抛出此错误的语句:

显然,该脚本试图使用一个字符串作为 cut 命令不允许的分隔符。但是,这不是必需的,因为输出实际上是制表符分隔的。但是,删除分隔符会产生以下错误消息:

对于每一行。输入(LIST 文件)如下所示:

的输出awk {'print $1'}是以下两行之一:

的输出awk {'print $2'}是文件 inode,如下所示:

我的怀疑是冒号 (:) 是问题,所以我通过将文件节点传递到sed删除冒号的语句来删除它,但这也没有解决问题。所以修改这一行来修复第一个问题后:

至:

即使从文件 inode 编号中删除冒号后,我仍然遇到此错误:

该脚本是为 ext2 文件系统编写的,但我在 NTFS 文件系统上使用它。我已经修改了必要的行并且可以得到icat命令按所写的方式工作,因此不更改相关部分不是问题(各个行都可以正常工作,我已经对此进行了调试,并且知道如何调试)。

这是我当前的脚本:

这就是我到目前为止所做的所有故障排除和思考。有任何想法吗?

更新

我被要求显示 的输出cat -vte $LIST,如下所示(示例):

0 投票
1 回答
1676 浏览

python - 使用 Python 在 dd 映像中安装分区

我正在编写一个 Python 程序来在 dd 映像中安装一个分区。

我知道其他地方有代码(例如https://raw.github.com/ox-it/python-libmount/master/libmount/mounting.py)来安装设备或包含文件系统的文件。但是这些解决方案期望文件系统位于文件或设备的开头。

我的文件系统不在文件的开头,而是在确定的偏移量处,因此我需要为指向该分区开头的挂载命令指定偏移量。

libc mount 命令对我来说不清楚。losttup.py 模块也不清楚。

是否可以使用 Python(使用 ctypes + libc mount 命令、losetup.py 或其他解决方案)以确定的偏移量在文件或设备内安装分区?

提前致谢。

0 投票
3 回答
3933 浏览

linux - 使用DD递归写入特定文件

我有一个要覆盖的硬盘驱动器,不是用空字节,而是用一条消息。

48 69 64 64 65 6e 20 =“隐藏”

到目前为止,这是我的命令:

注意:我也尝试过各种参数,例如 count 和 conv 无济于事

现在,这很好。当我运行时:

我可以看到前几个字节被覆盖,但是,其余的没有改变。我想递归地将“隐藏”写入驱动器。