是否有可能将旧的C ++应用程序传递的字节数组转换为C#,而不知道结构是什么?
我正在尝试重新制作我们公司使用的旧应用程序,但源代码不再可用。任何帮助将不胜感激。谢谢!
答案 0 :(得分:4)
如果要实际使用数组中嵌入的数据,则需要了解字节数组的结构。没有这些信息,数组只不过是字节 - 您可以轻松地将其作为字节输入,但这将没什么用处。
如果此信息不可用,您可以使用hex editor尝试对字节数据进行反向工程。
答案 1 :(得分:1)
您始终可以将第一个字节的地址转换为类型*并希望它可以正常工作。 32位和64位操作系统可能存在一些大小问题,但它实际上取决于c ++代码的编译方式。问题是你必须知道你想要投射的类型。你可以使用字节数组的大小作为指标,或者使用指针算法来读取字段。在这种情况下,你必须知道有关结构的信息,如果不是这一切只是看起来像你的字节。