如何使用Node.js将exe的机器代码转换为1和0的字符串?

时间:2019-04-26 15:00:28

标签: node.js

以下代码尝试解析exe的内容,因此结果是一堆未知字符和字符串位:

var fs = require('fs');
fs.readFile( __dirname + '/test.exe', function (err, data) {
  if (err) {
    throw err;
  }
  console.log(data.toString());
});

但是如何获取输出1和0的字符串呢?我正在尝试生成机器代码。

1 个答案:

答案 0 :(得分:1)

data回调中的readFile参数是一个缓冲区,您可以对其进行迭代以获取每个字节(即一个数字)并将其转换为如下所示的二进制表示形式:

  for (const byte of data.values()) {
    console.log(byte.toString(2).padStart(8, '0'));
  }

最后调用padStart()可使所有数字具有相同的长度

顺便说一句,如果您想解析一个小文件,此代码就可以了,但是,如果您想解析一个更大的文件(例如3Go),我建议您使用流,否则将运行内存不足的速度非常快:)