我想知道是否有人有在数字取证环境中使用java (相对于c/c++)的经验,如果有,他们能告诉我他们可能遇到的问题或优点吗?干杯
发布于 2009-09-29 11:39:18
是的,你可以用Java来完成所有的工作,如果有一些事情必须用C来完成,你可以通过JNI包来调用“危险”的例程。Java赋予你健壮性,安全模型,可伸缩性不是大问题……你不必应付64位操作系统,或者优化你的代码以利用多个CPU-s,你会发现这很奇怪,但这是真的:你的软件在Java中可能比在C中运行得更快。如果你不是一般的开发人员,如果你熟悉CPU的结构,对机器代码和寄存器的处理了如指掌,那么就忘了我的文章吧,你可能会在C中做得更好。
发布于 2010-01-06 11:15:49
出于以下原因,我们一直在将取证代码从C++和Python迁移到Java:
我们的初步结果非常有希望:从C++移植到Java的bulk_extractor运行速度快了3倍!我们都很惊讶。我们认为这是因为jflex比flex产生更快的FSM。
主要问题是没有很好的开源Java取证文件系统,也没有针对SleuthKit的JNI绑定。我们的一个变通方法是使用fiwalk从磁盘映像中提取所有元数据到XML blob中,然后在java中处理XML。
要下载这些工具,请查看http://afflib.org/
发布于 2010-12-03 15:43:57
在Java中,处理二进制解析和任意字符串解析是非常痛苦的,而且完全没有必要。Java缺少无符号整数也很烦人。
我们将python用于内部的一切,因为它的编码很简单(特别是与java的庞大相比),struct.pack/unpack使得二进制数据的解析变得简单,内置的数据结构/对象,以及它们几乎是我们所需的一切的库。
我真的不能推荐使用Java进行取证处理
编辑:
此外,许多取证工具要么已经在python中,要么具有python绑定(易失性、侦探工具包等)。
https://stackoverflow.com/questions/1491398
复制相似问题