繁体   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