1.0.0 • Published 2 years ago

hexlook v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

hexlook

Dumps data in hexadecimal format.
Provides a single function to take an array of bytes and display it in hexadecimal form.

Install

npm i hexlook

Usage

For ESM

import hexlook from 'hexlook';

For CJS

const hexlook = require('hexlook');

string

// Output: 00000000  59 65 61 68 2c 20 69 74 27 73 20 6d 79 20 6c 69  |Yeah, it's my li|
//         00000010  66 65 2e 20 4d 79 20 6f 77 6e 20 77 6f 72 64 73  |fe. My own words|
//         00000020  2c 20 49 67 75 65 73 73 2e                       |, Iguess.|
const payload = 'Yeah, it\'s my life. My own words, Iguess.';
const dump = hexlook(payload);
console.log(dump);

Get only hex columns in one row

// 596561682c2069742773206d79206c6966652e204d79206f776e20776f7264732c204967756573732e
const payload = 'Yeah, it\'s my life. My own words, Iguess.';
const dump = hexlook(payload, {
  hexBlock: payload.length,
  hexGroup: 1,
  hexSep: '',
  offsetShow: false,
  asciiShow: false
});
console.log(dump);

0 byte

// Output: ''
const payload = [];
const dump = hexlook(Buffer.from(payload));
console.log(dump);

8 bytes

// Output: 00000000  01 02 03 04 05 06 07 08                          |........|
const payload = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08];
const dump = hexlook(Buffer.from(payload));
console.log(dump);

16 bytes w/ whale

// Output: 00000000  00 00 00 00 00 00 77 68 61 6c 65 00 00 00 00 00  |......whale.....|
const payload = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x68, 0x61, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00];
const dump = hexlook(Buffer.from(payload));
console.log(dump);

24 bytes w/ whale & octopus

// Output: 00000000  00 00 00 00 00 00 77 68 61 6c 65 00 00 00 00 00  |......whale.....|
//         00000010  00 6f 63 74 6f 70 75 73                          |.octopus|
const payload = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x68, 0x61, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73];
const dump = hexlook(Buffer.from(payload));
console.log(dump);

asciiNull works

// Output: 00000000                                                   |empty|
const payload = [];
const dump = hexlook(Buffer.from(payload), {asciiNull: 'empty'});
console.log(dump);

hex(24 bytes w/ whale & octopus + asciiRender option)

// Output: 00000000  00 00 00 00 00 00 77 68 61 6c 65 00 00 00 00 00  |whale|
//         00000010  00 6f 63 74 6f 70 75 73                          |octopus|
const payload = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x68, 0x61, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73];
const dump = hexlook(Buffer.from(payload), {
  // Convert unicode to characters.
  asciiRender: byte => {
    if (byte > 0x1f && byte < 0x7f)
      return String.fromCharCode(byte);
    else
      return '';
  }
});
console.log(dump);

24 bytes w/ whale & octopus + offsetWidth option

// Output: 00  00 00 00 00 00 00 77 68 61 6c 65 00 00 00 00 00  |......whale.....|
//         10  00 6f 63 74 6f 70 75 73                          |.octopus|
const payload = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x68, 0x61, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73];
const dump = hexlook(Buffer.from(payload), {offsetWidth: 2});
console.log(dump);

Passing undefined parameter will result in an error

// Output: payload is unknown
try {
  const payload = undefined;
  hexlook(payload);
} catch(err) {
  console.error(err.message);
}

Passing null parameter will result in an error

// Output: payload is unknown
try {
  const payload = null;
  hexlook(payload);
} catch(err) {
  console.error(err.message);
}

Passing numeric parameter will result in an error

// Output: payload is unknown
try {
  const payload = 123;
  hexlook(payload);
} catch(err) {
  console.error(err.message);
}

Passing array parameter will result in an error

// Output: payload is unknown
try {
  const payload = [];
  hexlook(payload);
} catch(err) {
  console.error(err.message);
}

Passing object parameter will result in an error

// Output: payload is unknown
try {
  const payload = {};
  hexlook(payload);
} catch(err) {
  console.error(err.message);
}

Options

Author

Takuya Motoshima

License

MIT