所以我正在玩隐写术,在文本/图像/声音/视频之后我试图用可执行文件做smth。已知在EOF之后将隐藏消息放入这些文件中的方法。它在某种程度上为我工作,但我想知道我是否可以在EOF之后开始阅读隐藏的消息,而不是所有的字节。
我有将.exe读取到字节数组的代码,并在这些字节中添加其他信息:
public byte[] CreateHiddenMessage(byte[] container, byte[] message)
{
byte[] newArray = new byte[container.Length + message.Length];
//copy original bytes
for (int i = 0; i < container.Length; i++)
{
newArray[i] = container[i];
}
//add hidden info
for (int i = 0; i < message.Length; i++)
{
newArray[i + container.Length] = message[i];
}
return newArray;
}
然后,我保存这些字节没有任何问题,如:
public static void WriteToFile(String name, byte[] bytesToSave)
{
System.IO.File.WriteAllBytes(name, bytesToSave);
}
现在问题是我面临的问题。新的可执行文件工作得很好,它有那些额外的字节,但当我试图检索隐藏的消息时,我必须经历所有这些字节并在我的应用程序中打印它们(首先是很多随机标志,然后是实际的消息)。
有没有办法在EOF标记出现后才开始读取那些隐藏的字节(并转换为字符)?我知道没有像EOF字符这样的东西&#34;,但仍然有任何想法?
我唯一的想法是在原始文件中隐藏消息的开头添加某种标题代码,例如&#34; ## $$ ## [message]&#34;,然后阅读全部字节只是在此代码之后开始转换字符。但我想避免它!