我最近看到了谢尔盖·布拉图斯(Sergey Bratus)和格雷格·孔蒂(Greg Conti)的较老的演讲,名为《逆向航行:二元物种的视觉研究》。

是否有任何开源/免费工具可用于查看视觉馈送的二进制表示形式(类似于演讲中显示的内容)?


演讲中的样本:





#1 楼

我们可以在此使用用于讨论的工具binviz:binviz_0.zip。

一些文件在这里:



taxonomy-bh .pdf;
2008_VizSEC_FileVisualization_v53_final.pdf

此外,除了我与Sergey进行的交谈之外,还有较早的Black Hat谈话:


(200808_binviz38_dc_final.ppt)

我已经有一段时间没有使用它了,但是binviz是用Visual C#(VS2005
或VS2008)编写的。 .zip是项目(源)文件,因此应
加载到Visual Studio中并运行。在...
.exe中也有一个已编译的/binviz_0.44bw/binviz_0.01/bin/Debug/。您只需双击
并在Windows计算机上运行即可。我是在XP下开发的,但
自从在Windows 7下使用它以来,它的工作原理几乎相同。
(鼠标悬停事件的行为有所不同,但仍然可以使用)。

请注意,binviz是一个研究原型,并且有一个错误……它不像小文件那样。会尝试10M大小的东西,然后从那里开始工作
。我认为它开始变得怪异了,大约是500K。

评论


感谢您的反应!在您的2008年论文中,您将平台独立版本称为“未来工作”(第8页)。您是否可以继续进行此操作,或者下载仍是规范的“当前”版本?

–杂件
2014年8月2日在13:12

我走了一条变通的道路,尝试包括自动映射任意二进制文件。请参阅二进制映射文件,并且无法进一步探索独立于平台的版本。是的,这是“当前”版本。

– Greg Conti
2014年8月2日14:43



@GregConti此软件是否可以识别文章或书籍等文本中的书写模式?

–丹尼斯
15年4月16日在4:33



#2 楼

cantor.dust

该项目是一个交互式的二进制可视化工具,是传统十六进制编辑器的根本改进。通过将二进制信息转换为可视化抽象,逆向工程师和法医分析师可以在几秒钟内筛选出大量数据。 >通过他们的视觉指纹对其进行定位和理解。




Derbycon的演示视频


Recon的演示幻灯片2013


更多漂亮的图片


不幸的是,我认为开发已停止,至少我最近没有听到有关该项目的任何消息。
Binwalk
devttys0在binwalk中实现了类似的可视化。
Vix / Biteye

为GNU / Linux设计的图形化(基于SDL的)十六进制转储工具。它
让您看到由其位组成的图案。它旨在提供
文件中不同数据类型的快速概述。此工具不知道任何特定的文件格式,所有内容
使用相同的分析完成处理数据。这意味着即使
标题丢失或损坏,或者文件格式未知,它也可以使用。


senseye

Senseye是用于用于监视,分析和可视化一切,从静态文件和崩溃转储到实时数据流和应用程序动态
。每个数据窗口为您提供不同的视图(例如3D点对接)
和统计信息工具(例如直方图)和一些用于提示传感器应该如何采样,打包和传输数据的控件。


binvis.io

a基于浏览器的用于可视化二进制数据的工具。
使用binvis.io,您可以:
可视化浏览二进制数据。
簇字节通过空间填充曲线挑选出精细的结构特征。
使用简单的扫描布局直观地导航和选择数据。
在许多有用的字节颜色映射之间切换,包括熵。 />可视化工具,使您可以选择压缩或加密的部分。
导出数据段进行分析。 />基于Qt的工具,用于可视化任意数据。
BinVis具有以下功能:
可视化大量二进制数据(几个TiB)。
可视化时间(标准图)和空间(字节)图)域
可视化文件的各个部分,并缩小文件的相关部分
通过文件逐步浏览,以查看文件的每个部分包含什么类型的数据
“反向绘制”突出显示可视化数据中的强模式
使用滤镜,透明度,颜色方案和各种着色器突出显示相关数据。
出于性能原因大量使用线程
统计ic内存使用情况,使用相同的内存量来可视化1GiB文件和100TiB文件
http://trippler.no/wpcms/?page_id=20 http://trippler.no/wpcms/wp-content/ uploads / 2014/06 / Screenshot_2015-08-09_19-52-30.png

PortEx

Java库可以特别分析便携式可执行文件
恶意软件分析和PE格式错误的鲁棒性

Veles
二进制可视化框架。


#3 楼

我在演讲中看到的数据可视化工具似乎与Google Code上的BinVis工具完全不同。以下功能的屏幕截图:



注意:上面是旧版本,因为我无法在PC上安装最新版本;有关更多信息,请参见Google代码网站。

评论


是的,这是他的工作,除非Cantor.dust显示为开源,否则我认为所有这些都是可用的。

–百老汇
2014年8月2日在9:42

似乎通过将.exe.deploy重命名为.exe即可在binvis.googlecode.com/svn/trunk/binviz_0.01/bin/Release/…中使用当前版本。

– PlasmaHH
2014年8月2日在20:21

#4 楼

这些是来自源数据的图形转储。我使用了自己写的十六进制阅读器,对此进行了广泛的使用-这是快速定位“数据”(请参阅​​.text.data之间的区别)和较大结构(该结构通常在相同的偏移量上包含重复数据或相似数据)的好方法。

上面的图像显示了作为灰度信息转储的原始数据:每个字节都被视为一个像素。大概是为了方便,作者选择了灰度。我更喜欢全范围的对比色,因此可以很容易地识别出“相同”和“相似”数据的长距离。

底部(.rsrc)附近的纯色块是图标和其他图形。它们显示为水平拉伸是因为它们显示为每像素一个像素,并且实际上是16、24或32 bpp图像。

(我不相信整个顶部是.text!可执行代码显示为随机像素,但该图像的顶部1/3密度较小,可能是MZ和PE可执行标头;它们包含很多零,底部1/3密度较高的部分是.text的一个,并且很可能是Virtual Call表,其中恰好包含字节0xFF。)

在底部的图像中,每个字节以单色二进制格式显示:每个字节显示为8连续像素。按照惯例,这些将​​以最高有效位优先显示。不需要检查'endianness',因为只有在处理大于单个字节的单个值时才会起作用。

自己写这样的东西并不难;可能最重要的是使图形例程(尤其是单色位图)尽可能快。 Conti等人的“二进制文件和数据文件的可视反向工程”(http://www.rumint.org/gregconti/publications/2008_VizSEC_FileVisualization_v53_final.pdf)也解决了这一问题:


在测试性能时,我们发现显示可以在0.03秒内更新,这使得以更高的分辨率创建字节视图可视化同时仍提供响应界面的可能性成为可能。 [...]通过避免使用C#的GetPixel和SetPixel方法并直接访问图像内存,我们能够达到这一级别的性能[...]



自己的工具,与上面显示的非常相似:

CALC.EXE的.text部分。底部的重复结构是“虚拟调用”表。



包含RLE编码图像的文件。 RLE压缩可以通过“相干”数据的水平条纹来识别(在交互更改宽度时更好地看到)。

GZ压缩数据,单色。这尽可能接近随机静态变量。



在另一个可执行文件中找到一种很小的嵌入式位图字体。字符之间的随机位是以像素为单位的宽度-请参见同步滚动的十六进制转储。



以其他方式可以更好地可视化某些数据。这是一种老式的VGA调色板(6x6x6 RGB)。



#5 楼

BinView是用于二进制数据可视化的工具的原型

GitHub存储库









#6 楼

我写了https://github.com/REMath/implementations/blob/master/code_examples/plot_hex.py,它实现了Conti提出的ngram方法以及用于隔离视觉特性的聚类组件。

#7 楼

我是一个团队的成员,该团队构建了一个动态可视化工具(之所以动态,是因为它可以执行二进制文件,而不是静态二进制文件),称为Haxxis:

https://github.com/voidALPHA/cgc_viz(由voidALPHA开发的可视化组件)
https://github.com/Vector35/traceapi(使用修改后的qemu生成跟踪,并将其输入到可视化器中)

,但它主要适用于“ Decree”格式(一种32位x86修改的elf格式),很容易适应其他二进制格式。它产生了一些漂亮的可视化效果:

https://www.youtube.com/watch?v=6r1fOrDb80s&list=PLuDRBJDBc4F9HnfV5tQDwqhSs9a5VPegD
https://www.youtube.com/watch?v=LEfejsqEucY&list = PL6wMum5UsYvZx2x9QGhDY8j3FcQUH7uY0&index = 13
https://www.youtube.com/watch?v=SYYZjTx92KU&list=PL6wMum5UsYvZx2x9QGhDY8j3FcQUH7uY整个SN事件与事件集有关