盲目地将bytearray转换为结构?

时间:2011-03-21 16:04:07

标签: c# c++ data-structures

是否有可能将旧的C ++应用程序传递的字节数组转换为C#,而不知道结构是什么?

我正在尝试重新制作我们公司使用的旧应用程序,但源代码不再可用。任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:4)

如果要实际使用数组中嵌入的数据,则需要了解字节数组的结构。没有这些信息,数组只不过是字节 - 您可以轻松地将其作为字节输入,但这将没什么用处。

如果此信息不可用,您可以使用hex editor尝试对字节数据进行反向工程。

答案 1 :(得分:1)

您始终可以将第一个字节的地址转换为类型*并希望它可以正常工作。 32位和64位操作系统可能存在一些大小问题,但它实际上取决于c ++代码的编译方式。问题是你必须知道你想要投射的类型。你可以使用字节数组的大小作为指标,或者使用指针算法来读取字段。在这种情况下,你必须知道有关结构的信息,如果不是这一切只是看起来像你的字节。