From e89e85e10cfcdd99458a5f14800231ebce082d6c Mon Sep 17 00:00:00 2001 From: Nik Date: Fri, 10 Feb 2023 11:25:56 +0100 Subject: [PATCH] nodes: Added Caecar and XOR cipher nodes --- README.md | 6 ++ nodes/caecar.hexnode | 219 ++++++++++++++++++++++++++++++++++++++++++ nodes/xor.hexnode | 223 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 448 insertions(+) create mode 100644 nodes/caecar.hexnode create mode 100644 nodes/xor.hexnode diff --git a/README.md b/README.md index e9bb731..bfbcbe8 100644 --- a/README.md +++ b/README.md @@ -147,6 +147,12 @@ Hex patterns, include patterns and magic files for the use with the ImHex Hex Ed | UTF-8 | [`encodings/utf8.tbl`](encodings/utf8.tbl) | UTF-8 encoding | | Vietnamese | [`encodings/vietnamese.tbl`](encodings/vietnamese.tbl) | Vietnamese character encoding | +### Data Processor Nodes +| Name | Path | Description | +|------|------|-------------| +| Caesar Cipher | [`nodes/caecar.hexnode`](nodes/caecar.hexnode) | Simple adjustable per-byte Caecar Cipher (ROT) | +| XOR Cipher | [`nodes/xor.hexnode`](nodes/xor.hexnode) | XORs a input with a repeating XOR pad | + ## Contributing If you want to contribute a file to the database, please make a PR which adds it to the right folder and adds a new entry to the table in this readme. diff --git a/nodes/caecar.hexnode b/nodes/caecar.hexnode new file mode 100644 index 0000000..d285724 --- /dev/null +++ b/nodes/caecar.hexnode @@ -0,0 +1,219 @@ +{ + "attrs": [ + 76, + 77, + 78 + ], + "data": { + "nodes": { + "links": { + "31": { + "from": 54, + "id": 31, + "to": 55 + }, + "33": { + "from": 59, + "id": 33, + "to": 56 + }, + "34": { + "from": 60, + "id": 34, + "to": 57 + }, + "40": { + "from": 68, + "id": 40, + "to": 53 + }, + "41": { + "from": 66, + "id": 41, + "to": 69 + }, + "42": { + "from": 66, + "id": 42, + "to": 63 + }, + "43": { + "from": 58, + "id": 43, + "to": 71 + }, + "44": { + "from": 70, + "id": 44, + "to": 72 + }, + "45": { + "from": 73, + "id": 45, + "to": 64 + }, + "46": { + "from": 65, + "id": 46, + "to": 75 + } + }, + "nodes": { + "19": { + "attrs": [ + 66 + ], + "data": { + "name": "Input", + "type": 2 + }, + "id": 19, + "name": "Input", + "pos": { + "x": 48.0, + "y": 151.0 + }, + "type": "hex.builtin.nodes.custom.input" + }, + "20": { + "attrs": [ + 68 + ], + "data": { + "name": "Count", + "type": 0 + }, + "id": 20, + "name": "Count", + "pos": { + "x": 50.0, + "y": 264.0 + }, + "type": "hex.builtin.nodes.custom.input" + }, + "21": { + "attrs": [ + 53, + 54 + ], + "data": null, + "id": 21, + "name": "hex.builtin.nodes.casting.int_to_buffer.header", + "pos": { + "x": 212.0, + "y": 315.0 + }, + "type": "hex.builtin.nodes.casting.int_to_buffer" + }, + "22": { + "attrs": [ + 55, + 56, + 57, + 58 + ], + "data": null, + "id": 22, + "name": "hex.builtin.nodes.buffer.slice.header", + "pos": { + "x": 384.0, + "y": 375.0 + }, + "type": "hex.builtin.nodes.buffer.slice" + }, + "23": { + "attrs": [ + 59 + ], + "data": { + "data": 0 + }, + "id": 23, + "name": "hex.builtin.nodes.constants.int.header", + "pos": { + "x": 122.0, + "y": 423.0 + }, + "type": "hex.builtin.nodes.constants.int" + }, + "24": { + "attrs": [ + 60 + ], + "data": { + "data": 1 + }, + "id": 24, + "name": "hex.builtin.nodes.constants.int.header", + "pos": { + "x": 120.0, + "y": 510.0 + }, + "type": "hex.builtin.nodes.constants.int" + }, + "25": { + "attrs": [ + 63, + 64, + 65 + ], + "data": null, + "id": 25, + "name": "hex.builtin.nodes.bitwise.add.header", + "pos": { + "x": 720.0, + "y": 183.0 + }, + "type": "hex.builtin.nodes.bitwise.add" + }, + "26": { + "attrs": [ + 69, + 70 + ], + "data": null, + "id": 26, + "name": "hex.builtin.nodes.buffer.size.header", + "pos": { + "x": 383.0, + "y": 274.0 + }, + "type": "hex.builtin.nodes.buffer.size" + }, + "27": { + "attrs": [ + 71, + 72, + 73 + ], + "data": null, + "id": 27, + "name": "hex.builtin.nodes.buffer.repeat.header", + "pos": { + "x": 595.0, + "y": 445.0 + }, + "type": "hex.builtin.nodes.buffer.repeat" + }, + "28": { + "attrs": [ + 75 + ], + "data": { + "name": "Output", + "type": 2 + }, + "id": 28, + "name": "Output", + "pos": { + "x": 864.0, + "y": 330.0 + }, + "type": "hex.builtin.nodes.custom.output" + } + } + } + }, + "name": "Caesar Cipher", + "type": "hex.builtin.nodes.custom.custom" +} \ No newline at end of file diff --git a/nodes/xor.hexnode b/nodes/xor.hexnode new file mode 100644 index 0000000..9333422 --- /dev/null +++ b/nodes/xor.hexnode @@ -0,0 +1,223 @@ +{ + "attrs": [ + 36, + 37, + 38 + ], + "data": { + "nodes": { + "links": { + "11": { + "from": 20, + "id": 11, + "to": 22 + }, + "13": { + "from": 23, + "id": 13, + "to": 32 + }, + "14": { + "from": 17, + "id": 14, + "to": 19 + }, + "15": { + "from": 14, + "id": 15, + "to": 15 + }, + "16": { + "from": 12, + "id": 16, + "to": 16 + }, + "17": { + "from": 9, + "id": 17, + "to": 11 + }, + "18": { + "from": 7, + "id": 18, + "to": 10 + }, + "19": { + "from": 31, + "id": 19, + "to": 8 + }, + "20": { + "from": 30, + "id": 20, + "to": 6 + }, + "22": { + "from": 31, + "id": 22, + "to": 18 + }, + "23": { + "from": 30, + "id": 23, + "to": 21 + } + }, + "nodes": { + "10": { + "attrs": [ + 14 + ], + "data": { + "data": 1 + }, + "id": 10, + "name": "hex.builtin.nodes.constants.int.header", + "pos": { + "x": 430.0, + "y": 364.0 + }, + "type": "hex.builtin.nodes.constants.int" + }, + "11": { + "attrs": [ + 15, + 16, + 17 + ], + "data": null, + "id": 11, + "name": "hex.builtin.nodes.arithmetic.add.header", + "pos": { + "x": 579.0, + "y": 421.0 + }, + "type": "hex.builtin.nodes.arithmetic.add" + }, + "12": { + "attrs": [ + 18, + 19, + 20 + ], + "data": null, + "id": 12, + "name": "hex.builtin.nodes.buffer.repeat.header", + "pos": { + "x": 661.0, + "y": 241.0 + }, + "type": "hex.builtin.nodes.buffer.repeat" + }, + "13": { + "attrs": [ + 21, + 22, + 23 + ], + "data": null, + "id": 13, + "name": "hex.builtin.nodes.bitwise.xor.header", + "pos": { + "x": 818.0, + "y": 163.0 + }, + "type": "hex.builtin.nodes.bitwise.xor" + }, + "14": { + "attrs": [ + 32 + ], + "data": { + "name": "Output", + "type": 2 + }, + "id": 14, + "name": "Output", + "pos": { + "x": 1000.0, + "y": 432.0 + }, + "type": "hex.builtin.nodes.custom.output" + }, + "4": { + "attrs": [ + 30 + ], + "data": { + "name": "Input", + "type": 2 + }, + "id": 4, + "name": "Input", + "pos": { + "x": 82.0, + "y": 139.0 + }, + "type": "hex.builtin.nodes.custom.input" + }, + "5": { + "attrs": [ + 31 + ], + "data": { + "name": "XOR Pad", + "type": 2 + }, + "id": 5, + "name": "XOR Pad", + "pos": { + "x": 89.0, + "y": 328.0 + }, + "type": "hex.builtin.nodes.custom.input" + }, + "6": { + "attrs": [ + 6, + 7 + ], + "data": null, + "id": 6, + "name": "hex.builtin.nodes.buffer.size.header", + "pos": { + "x": 269.0, + "y": 403.0 + }, + "type": "hex.builtin.nodes.buffer.size" + }, + "7": { + "attrs": [ + 8, + 9 + ], + "data": null, + "id": 7, + "name": "hex.builtin.nodes.buffer.size.header", + "pos": { + "x": 267.0, + "y": 486.0 + }, + "type": "hex.builtin.nodes.buffer.size" + }, + "8": { + "attrs": [ + 10, + 11, + 12 + ], + "data": null, + "id": 8, + "name": "hex.builtin.nodes.arithmetic.div.header", + "pos": { + "x": 409.0, + "y": 465.0 + }, + "type": "hex.builtin.nodes.arithmetic.div" + } + } + } + }, + "name": "XOR Pad", + "type": "hex.builtin.nodes.custom.custom" +} \ No newline at end of file