【问题标题】:C# Image.Clone to byte[] causes EDIT.COM to open on Windows XPC# Image.Clone to byte[] 导致 EDIT.COM 在 Windows XP 上打开
【发布时间】:2010-03-15 15:30:25
【问题描述】:

似乎克隆图像并将其转换为字节数组会导致 EDIT.COM 在 Windows XP 计算机上打开。这不会发生在 Windows 7 机器上。该应用程序是 C# .NET 2.0 应用程序。有谁知道为什么会发生这种情况?

这是我的图像转换代码:

        public static byte[] CovertImageToByteArray(Image imageToConvert)
    {
        imageToConvert.Clone() as Image;

        if(clone == null)
            return null;

        imageToConvert.Dispose();

        byte[] imageByteArray;
        using (MemoryStream ms = new MemoryStream())
        {
            clone.Save(ms, clone.RawFormat);
            imageByteArray = ms.ToArray();
        }

        return imageByteArray;
    }


    public static Image ConvertByteArrayToImage(byte[] imageByteArray,
                                                ImageFormat formatOfImage)
    {
        Image image;

        using (
            MemoryStream ms = new MemoryStream(imageByteArray, 0,
                                               imageByteArray.Length))
        {
            ms.Write(imageByteArray, 0, imageByteArray.Length);
            image = Image.FromStream(ms, true);
        }

        return image;
    }

谢谢

贾斯汀

【问题讨论】:

  • 它是一个特定的图像吗?图像可能格式错误并包含漏洞利用/shellcode。
  • 不,它似乎是任何图像。我将在几台不同的机器上测试其他几个。
  • 图像是 System.Drawing.Image 类型
  • 不管是什么图像或格式。发生在 Windows XP 和 Windows 2000 机器上。我没有尝试过 Vista,但它不会发生在 Windows 7 上。
  • 可能是因为 Win7 不再有 edit.com。你如何保存这些图像?文件扩展名是什么?

标签: c# .net-2.0 windows-xp


【解决方案1】:

如果不在这里猜测就很难提供帮助,所以我们开始吧:

您或外部库在代码中的某个位置依赖/调用外部工具,称为“edit.exe”。也许,上帝保佑,甚至在数据库中触发了某些东西。程序员不关心扩展,在 Process.StartInfo 中写了“edit foo.bar”。 由于您的 PATH 和解析顺序(com 在 exe 之前),这最终会在附带的机器上调用 edit.com。

嗯 - 这实际上只是一个虚构的故事,但我无法想象使用您提供的代码启动任何应用程序的方法。尝试确定发生这种情况的确切位置。我怀疑这是您显示的转换/代码。

【讨论】:

  • 这正是我正在寻找的答案类型。谢谢。
【解决方案2】:

经过大量挖掘后,发现 DevExpress 的 HyperLinkEdit 发生了一些奇怪的事情。文本值设置为“编辑”。我将其重命名为“Edet”,问题就消失了。我会将此报告给 DevExpress 以进行进一步评估。

谢谢大家,

贾斯汀

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    相关资源
    最近更新 更多