可视化ELF二进制文件


51

我最近看到一个由Sergey Bratus和Greg Conti通过名称Voyage of the Reverser: A Visual Study of Binary Species进行的较旧的演讲。

是否有一个可以使用地看到,在喂食的二进制文件的可视化表示(类似于在谈话中所示)任何开源/免费工具?从谈话


样品:

Windows PE visualization

Documents Format Files

12

的数据可视化工具,我看到了在谈话中使用似乎是,如果几乎相同不相同的BinVis工具可在​​。的一些功能截图:

enter image description here

注:以上是我不能安装在我的电脑上最新的一个旧版本;详情请参阅Google代码网站。

+1

是啊,这是他的工作,我认为所有的可用除非cantor.dust显示出来作为开源。 02 8月. 142014-08-02 09:42:50


13

这些是从源数据图形转储。我用这个广泛,用十六进制阅读我写我自己 - 这是快速定位“数据”(见.text.data之间的差异)和更大的结构(通常包含在相同的偏移重复或类似的数据的好方法)。

顶部图像示出倾倒为灰度信息的原始数据:每个字节被视为一个像素。据推测,作者为了方便起见选择了灰度。我更喜欢全方位的对比色,因此可以更容易地辨别出“相同”和“相似”数据的长片段。

纯色靠近底部(.rsrc)的块是图标和其它图形。它们显示为水平延伸,因为它们显示为每像素一个像素,实际上是16,24或32位bpp图像。我不相信整个顶部是.text!可执行代码显示为随机像素,但该图像中的前三分之一不太密集,可能是MZ和PE可执行文件头;它们包含大量的零。底部1/3中的密度更大的部分是.text的一部分,并且很可能是虚拟呼叫表,其中恰好包含字节0xFF很多。)

在底部图像中,每个字节以单色显示二进制格式:每个字节显示为8个连续像素。按照惯例,这些显示在最重要的位上。没有必要检查'endianness',因为只有在处理大于单个字节的单个值时才会发挥作用。

写这样的事情自己不硬;可能最重要的是尽可能快地制作图形例程,特别是单色位图。这也由孔蒂等人解决,二进制文件和数据文件的视觉逆向工程(http://www.rumint.org/gregconti/publications/2008_VizSEC_FileVisualization_v53_final.pdf):

测试时的表现,我们发现,该显示器可以在0更新。03秒,从而以更高的分辨率创建字节视图可视化的可能性,同时仍提供响应式界面。 [...]我们能够避免的C#GetPixel和SetPixel方法和直接访问图像存储器来实现这样的性能水平[...]


截图我自己的工具,非常相似,如上所示:

CALC.EXE的.text部分。底部的重复结构是虚拟呼叫表。

calc.exe in binary view

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

rle-compressed images

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

gz compressed data in monochrome

在另一个可执行发现一个微小的嵌入的位图字体。字符之间的随机位是以像素为单位的宽度 - 请参见同步滚动的十六进制转储。

a tiny embedded bitmap font

一些数据在其他方面更好地可视化。这是一种旧式VGA调色板(6x6x6 RGB)。

a palette visualized


39

我们用于通话,binviz的工具,可以在这里找到:binviz_0.zip

一些论文在这里:

而且,还有更早的黑帽的谈话,除了一个我 与谢尔盖做:

我的天堂” t在一段时间内使用它,但binviz是用Visual C#编写的(VS2005 或者VS2008)。 .zip是项目(源)文件,所以它应该将 加载到Visual Studio并运行。在... /binviz_0.44bw/binviz_0.01/bin/Debug/中也有编译.exe。你应该能够双击 点击它并在Windows机器上运行。我在XP下开发它,但 已经在Windows 7下使用它,它的工作或多或少相同。 (鼠标悬停事件行为有点不同,但仍然可用)。

请注意,binviz是一个研究原型,并有一个bug ...它不像 像小文件。会尝试10M的大小,然后从那里减少 。我认为它在500K左右开始变得胡思乱想。

+1

感谢您的反应!在2008年的论文中,您提到平台独立版本是“未来工作”(第8页)。您是否能够进一步追求这一点,或者下载仍然是经典的“当前”版本? 02 8月. 142014-08-02 13:12:26

+1

我走下了试图包含任意二进制文件的自动映射的变体路径。 [见二元映射论文](http://www.rumint.org/gregconti/publications/dfrws_2010-301.pdf),并且无法进一步探索独立于平台的版本。所以是的,这是“当前”版本。 02 8月. 142014-08-02 14:43:14

  0

@GregConti这个软件能识别文章或书籍等文字的书写模式吗? 16 4月. 152015-04-16 04:33:00


29

cantor.dust

这个项目是一个互动的二元可视化工具,自由基 进化了传统十六进制编辑器的。通过将二进制 信息转换为可视化抽象,分析师可以在几秒钟内筛选出任意数据。 即使以前看不见的指令集和数据格式也可以很容易地通过其视觉指纹定位和理解。

cantor.dust example 1

萨我认为发展停滞了,至少我最近还没有听说过这个项目的消息。

Binwalk

enter image description here devttys0binwalk.

Vix/Biteye

图形(基于SDL-)十六进制转储工具设计用于GNU/Linux的实现类似的可视化。它 让你看到由它的位形成的模式。

Github

GUI

binglide

Binglide是视觉逆向工程工具。它旨在提供 简要概述 文件中存在的不同数据类型。此工具不知道任何特定的文件格式,使用对数据进行相同分析的所有文件格式均为 。这意味着即使 标题丢失或损坏,或者文件格式未知,它也能正常工作。

enter image description here

senseye

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

Senseye

binvis.io

用于可视化的二进制数据基于浏览器的工具。

随着binvis.io,您可以:

视觉探索的二进制数据。 使用空间填充曲线来选择精细结构特征的簇字节。 使用简单的扫描布局直观地导航和选择数据。 在多个有用的字节颜色映射之间翻转,包括一个熵。 Visualiser可以让你挑选出压缩或加密的部分。 导出数据段进行分析。

http://corte.si/posts/binvis/announce/index.html

===

BinVis

一个Qt用于可视化任意数据基础的工具。 BinVis能够:

可视化大量的二进制数据(几个TiB)。 可视化的时间(正常情节)和空间(字节情节)域 可视化的文件的部分,并在文件的相关部分的范围内缩小 通过该文件的“步骤”,以查看该文件的每个部分包含哪些类型的数据 “反向绘制“以突出显示可视化数据中的强模式 使用过滤器,透明度,配色方案和各种着色器来突出显示相关数据。 大量使用线程性能方面的原因 相当静态的内存使用情况,使用相同的内存量可视化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

二元可视化框架。 Veles visualization


7

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


8

BinView是用于二进制数据的可视化

GitHub repository

Screen 1

Screen 2

Screen 3

Screen 4

工具的原型

1

我是构建的动态可视化工具(动态的,因为它运行在二进制文件的执行,而不是静态的二进制文件)称为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=PL6wMum5UsYvZx2x9QGhDY8j3FcQUH7uY0&index=31(在CGC事件本身的长期概述在整个Haxxis的片段)