2
讀取字節所以我玩隱寫有點,並在文本/圖像/聲音/視頻後,我試圖做可執行文件。已知有在EOF之後在這些文件中放置隱藏消息的方法。它對我來說有一定的作用,但是我不知道我是否可以在EOF之後纔開始閱讀隱藏的消息,而不是所有的字節。只讀後EOF標記在C#
我有讀的.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角色」這樣的東西,但仍然有任何想法?
我唯一的想法是在原始文件中隱藏消息的開始,如「## $$ ## [message]」,然後讀取所有字節剛開始轉換後,將某種標題thingy代碼此代碼後的字符。但我想避免它!
不要回避它。做到這一點。 或者,在消息的最後,添加一個32位的數字,確切的消息長度。然後從最後只讀取數量的字節。 –
我最好的建議是在文件末尾添加消息長度作爲示例45,然後從最後一個位置讀取45個字符,這樣您就不需要閱讀所有字符來查找消息,你知道你的信息的位置和時間。 – Marko
哦,這實際上是個好主意,放置指示隱藏消息長度的數字。我將把它應用到代碼中。這樣我就不需要以低成本(如消息結尾的4位附加字節爲32位數字)遍歷所有字節(對於EXE文件而言,它經常是它們的一部分)。 –