Image 如何验证医学图像文件

Image 如何验证医学图像文件,image,validation,dicom,malware,Image,Validation,Dicom,Malware,我对验证某些格式的医学图像文件感兴趣。当我说验证时,我的意思是确保它们确实是那种类型的文件,而不是,比如说,一些伪装成文件的恶意软件。例如,如果有人有一个文件virus.exe,他们将其更改为virus.dcm,我想知道这不是一个合法的.dcm文件 我看到了一个答案,它说我应该查看某个标签的偏移量0x80。但我不确定是否有人可以将该标签插入virus.dcm 我要验证的文件类型是DICOM files.dcm、.PAR/.REC、NIFTI files.nii、.nii.gz、ANALYZE f

我对验证某些格式的医学图像文件感兴趣。当我说验证时,我的意思是确保它们确实是那种类型的文件,而不是,比如说,一些伪装成文件的恶意软件。例如,如果有人有一个文件virus.exe,他们将其更改为virus.dcm,我想知道这不是一个合法的.dcm文件

我看到了一个答案,它说我应该查看某个标签的偏移量0x80。但我不确定是否有人可以将该标签插入virus.dcm

我要验证的文件类型是DICOM files.dcm、.PAR/.REC、NIFTI files.nii、.nii.gz、ANALYZE files.img/.hdr和.zip文件


我不是在寻找代码本身,虽然那会很好,但我想知道,区分这些类型的合法文件和已更改为类似这些文件的恶意软件文件的最佳方法是什么。

验证dicom文件相当困难:问题是dicom标准允许文件的前128字节绝对包含任何内容,包括可执行代码。在前128个字节之后是DICM签名偏移量0x80

因此,即使您设法打开DICOM文件并在DICOM查看器中看到有效的图像和标记,该文件仍可能在前128个字节中包含可执行代码,它可能包含指向DICOM数据末尾某些部分的指针


我建议在Linux或Windows上使用chmod将所有DICOM文件标记为不可执行文件

我愿意接受这一点,但这会影响其他人回答我关于其他文件类型的问题吗?另外,如果我通过chmod-x将文件设置为不可执行文件,这是否意味着我不必担心文件内容是恶意的?@WhiteTiger该文件仍然可能包含恶意部分:它可能会利用读取器中的错误并导致代码执行。例如,它可能会将如此多的序列数据相互嵌入,从而导致读卡器中的堆栈溢出,除非读卡器检查序列的有效性,或者不使用递归读取序列,或者检查递归的深度。或者它可以使用特制的jpeg文件,导致读卡器崩溃并执行未经授权的代码。他不会做所有这些事情,比如授予权限和上传等。他总是浏览和上传文件。那么,有没有办法验证没有扩展名.dcm和文件类型application/dicom的dicom文件?