簡體   English   中英

編輯字節並將其添加到二進制文件(uint8array)

[英]Edit and add bytes to binary(uint8array)

我想在我通過ajax加載的二進制文件中添加一個字符串和一些二進制文件,例如0x00(以二進制形式獲取)

到目前為止,這是我的代碼:

var ajax = new XMLHttpRequest();
ajax.open("GET", "test.bin", true);
ajax.responseType = "arraybuffer";

ajax.onload = function () {
    var byteArray = new Uint8Array(ajax.response);
    // What can i do?
};

ajax.send();

好吧,最后我可以解決它:

var str = 'Injected!!!';

var injAr = [0x21,0xFE,str.length]; 
for (var i = 0; i < str.length; i++) { injAr.push(str.charCodeAt(i));}
injAr.push(0x00,0x3B);

var ajax = new XMLHttpRequest();
ajax.open("GET", "test.gif", true);
ajax.responseType = "arraybuffer";

ajax.onload = function () {
    var bAr = new Uint8Array(ajax.response), len = bAr.length - 1;
    window.newBAr = new Uint8Array(len + injAr.length);
    for (var i = 0; i < len; i++) { newBAr[i] = bAr[i];}
    for (var i = 0; i < injAr.length; i++) { newBAr[len + i] = injAr[i];}
}
ajax.send();

那么,這是為了正確塊添加注釋為GIF,但它可以使用也與JPG不同,PNG,例如修改或添加EXIF元

您將需要格式為javascript的請求,該javascript將能夠提取作為字符串的字節並分隔作為二進制文件一部分的字節。 您可以通過在字符串的開頭或結尾放置一個獨特的字節標志來表示邊界來實現此目的。 由於不確定二進制文件,因此我會將字符串放在開頭,並在標志的末尾表示二進制文件的開頭。

分開后,需要將字節轉換為數字,然后將數字轉換為字符。 這是一個有關如何將二進制轉換為字符的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM