使用 AI 来识别文件格式

2018-04-26 02:06:46 +08:00
 kamen

思路:

就我所知,所有文件格式都有着特定结构的数据,这样就有了某种特征,那是否能够提取其特征,再通过 AI 来识别特征,以此来识别文件格式?

详细过程:

例如有一个未知格式的文件,

我们以二进制来读取这个文件, 每隔 X 位换行,不足一行填 0, 这样就能组成一个 X 为宽的 01 阵列。

将 0 转成白色矩形,1 为黑色矩形,我们就能得到一个充满小的黑色正方形的图像,而这份图像就存在某种特征。

我们以各种文件格式的文件生成的图像训练 AI,并提取识别其图像特征

再与未知格式的文件对比,发现符合纯文本文件的图像特征

于是我们可以用 atom 打开它,atom 识别其为 python 源代码文件

天啦噜,原来是 py 文件啊!!!!

2541 次点击
所在节点    奇思妙想
37 条回复
kamen
2018-04-26 02:08:48 +08:00
思路不收费,但用于商业的时候请记得给我一个激活码
feather12315
2018-04-26 02:12:36 +08:00
不都是直接看 magic number ?
quake0day
2018-04-26 02:27:10 +08:00
当然可以,但是为啥一定要转换成为图像来识别呢?
Pyjamas
2018-04-26 02:27:23 +08:00
kamen
2018-04-26 02:28:17 +08:00
@feather12315 虽然我不懂什么魔法数字,但是你这种方法肯定要自己提取魔法数字吧,不知道你的速度有没有 AI 识别图像的速度快?
tyfulcrum
2018-04-26 02:31:57 +08:00
tyfulcrum
2018-04-26 02:32:44 +08:00
kamen
2018-04-26 02:33:52 +08:00
@quake0day 避免一个可能现有格式识别的局限,不能识别出新现世的文件格式,需要重新写代码,而这个只需增加训练数据罢了
kamen
2018-04-26 02:36:57 +08:00
@tyfulcrum 那如果指纹很难识别呢?
我这个想法肯定不能完全代替同类程序,但肯定解决了某些需求
比如私有文件格式识别
xupefei
2018-04-26 02:37:48 +08:00
照这个思路下来,说不定训练出的 AI 决定只用了这张图的前 32 个点,因为那里是 Magic ……
GooMS
2018-04-26 02:38:03 +08:00
那么有什么场合是需要绝对文件类型正确?
Pyjamas
2018-04-26 02:40:04 +08:00
> 所有文件格式都有着特定结构的数据,这样就有了某种特征

这个所谓的某种特征就藏在那几个字节里,至于文件后面的内容,我觉得都可以看作是随机字符串了,所以对着那几个字节有什么好上 AI 的
kamen
2018-04-26 02:43:06 +08:00
@Pyjamas 听说文件开头有特征? 纯文本了解一下
Pyjamas
2018-04-26 02:45:23 +08:00
@kamen 那就等于丢了一大堆随机字符串给 AI
kamen
2018-04-26 02:45:33 +08:00
@xupefei emmm,我可不敢肯定所有文件特征都在开头,比如我设计的一种莫须有的私有格式文件,它的特征到处都有
kamen
2018-04-26 02:47:20 +08:00
kamen
2018-04-26 02:50:42 +08:00
@GooMS 我要知道了,直接靠这个小赚一笔了
xupefei
2018-04-26 02:52:52 +08:00
@kamen 世界上成千上万种格式特征都在头部,你一种格式大概会被当作噪音忽略。
xupefei
2018-04-26 02:55:20 +08:00
@xupefei #18 你可以给一个函数考虑文件中间的特征,但这个函数很可能会对其他文件判断的正确性造成影响。
说白了就是,大家都把特征放在头部,你不放,那是你设计有问题。
kamen
2018-04-26 02:58:56 +08:00
@xupefei 你可能弄错了一件事,我都被你绕进去了,格式描述能成为特征,但数据就不能成为特征了吗?太绝对了吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/449924

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX