cyberchef 9.54.0 → 9.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/package.json +3 -1
- package/src/core/config/Categories.json +2 -0
- package/src/core/config/OperationConfig.json +40 -0
- package/src/core/config/modules/Encodings.mjs +4 -0
- package/src/core/config/modules/OpModules.mjs +2 -2
- package/src/core/operations/AMFDecode.mjs +52 -0
- package/src/core/operations/AMFEncode.mjs +52 -0
- package/src/core/operations/index.mjs +4 -0
- package/src/node/index.mjs +10 -0
package/CHANGELOG.md
CHANGED
|
@@ -13,6 +13,9 @@ All major and minor version changes will be documented in this file. Details of
|
|
|
13
13
|
|
|
14
14
|
## Details
|
|
15
15
|
|
|
16
|
+
### [9.55.0] - 2022-12-09
|
|
17
|
+
- Added 'AMF Encode' and 'AMF Decode' operations [@n1474335] | [760eff4]
|
|
18
|
+
|
|
16
19
|
### [9.54.0] - 2022-11-25
|
|
17
20
|
- Added 'Rabbit' operation [@mikecat] | [#1450]
|
|
18
21
|
|
|
@@ -339,6 +342,7 @@ All major and minor version changes will be documented in this file. Details of
|
|
|
339
342
|
|
|
340
343
|
|
|
341
344
|
|
|
345
|
+
[9.55.0]: https://github.com/gchq/CyberChef/releases/tag/v9.55.0
|
|
342
346
|
[9.54.0]: https://github.com/gchq/CyberChef/releases/tag/v9.54.0
|
|
343
347
|
[9.53.0]: https://github.com/gchq/CyberChef/releases/tag/v9.53.0
|
|
344
348
|
[9.52.0]: https://github.com/gchq/CyberChef/releases/tag/v9.52.0
|
|
@@ -492,6 +496,7 @@ All major and minor version changes will be documented in this file. Details of
|
|
|
492
496
|
[dd18e52]: https://github.com/gchq/CyberChef/commit/dd18e529939078b89867297b181a584e8b2cc7da
|
|
493
497
|
[a895d1d]: https://github.com/gchq/CyberChef/commit/a895d1d82a2f92d440a0c5eca2bc7c898107b737
|
|
494
498
|
[31a7f83]: https://github.com/gchq/CyberChef/commit/31a7f83b82e78927f89689f323fcb9185144d6ff
|
|
499
|
+
[760eff4]: https://github.com/gchq/CyberChef/commit/760eff49b5307aaa3104c5e5b437ffe62299acd1
|
|
495
500
|
|
|
496
501
|
[#95]: https://github.com/gchq/CyberChef/pull/299
|
|
497
502
|
[#173]: https://github.com/gchq/CyberChef/pull/173
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cyberchef",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.55.0",
|
|
4
4
|
"description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.",
|
|
5
5
|
"author": "n1474335 <n1474335@gmail.com>",
|
|
6
6
|
"homepage": "https://gchq.github.io/CyberChef",
|
|
@@ -86,6 +86,7 @@
|
|
|
86
86
|
"worker-loader": "^3.0.8"
|
|
87
87
|
},
|
|
88
88
|
"dependencies": {
|
|
89
|
+
"@astronautlabs/amf": "^0.0.6",
|
|
89
90
|
"@babel/polyfill": "^7.12.1",
|
|
90
91
|
"@blu3r4y/lzma": "^2.3.3",
|
|
91
92
|
"arrive": "^2.4.1",
|
|
@@ -151,6 +152,7 @@
|
|
|
151
152
|
"process": "^0.11.10",
|
|
152
153
|
"protobufjs": "^6.11.3",
|
|
153
154
|
"qr-image": "^3.2.0",
|
|
155
|
+
"reflect-metadata": "^0.1.13",
|
|
154
156
|
"scryptsy": "^2.1.0",
|
|
155
157
|
"snackbarjs": "^1.1.0",
|
|
156
158
|
"sortablejs": "^1.15.0",
|
|
@@ -446,6 +446,46 @@
|
|
|
446
446
|
}
|
|
447
447
|
]
|
|
448
448
|
},
|
|
449
|
+
"AMF Decode": {
|
|
450
|
+
"module": "Encodings",
|
|
451
|
+
"description": "Action Message Format (AMF) is a binary format used to serialize object graphs such as ActionScript objects and XML, or send messages between an Adobe Flash client and a remote service, usually a Flash Media Server or third party alternatives.",
|
|
452
|
+
"infoURL": "https://wikipedia.org/wiki/Action_Message_Format",
|
|
453
|
+
"inputType": "ArrayBuffer",
|
|
454
|
+
"outputType": "JSON",
|
|
455
|
+
"flowControl": false,
|
|
456
|
+
"manualBake": false,
|
|
457
|
+
"args": [
|
|
458
|
+
{
|
|
459
|
+
"name": "Format",
|
|
460
|
+
"type": "option",
|
|
461
|
+
"value": [
|
|
462
|
+
"AMF0",
|
|
463
|
+
"AMF3"
|
|
464
|
+
],
|
|
465
|
+
"defaultIndex": 1
|
|
466
|
+
}
|
|
467
|
+
]
|
|
468
|
+
},
|
|
469
|
+
"AMF Encode": {
|
|
470
|
+
"module": "Encodings",
|
|
471
|
+
"description": "Action Message Format (AMF) is a binary format used to serialize object graphs such as ActionScript objects and XML, or send messages between an Adobe Flash client and a remote service, usually a Flash Media Server or third party alternatives.",
|
|
472
|
+
"infoURL": "https://wikipedia.org/wiki/Action_Message_Format",
|
|
473
|
+
"inputType": "JSON",
|
|
474
|
+
"outputType": "ArrayBuffer",
|
|
475
|
+
"flowControl": false,
|
|
476
|
+
"manualBake": false,
|
|
477
|
+
"args": [
|
|
478
|
+
{
|
|
479
|
+
"name": "Format",
|
|
480
|
+
"type": "option",
|
|
481
|
+
"value": [
|
|
482
|
+
"AMF0",
|
|
483
|
+
"AMF3"
|
|
484
|
+
],
|
|
485
|
+
"defaultIndex": 1
|
|
486
|
+
}
|
|
487
|
+
]
|
|
488
|
+
},
|
|
449
489
|
"AND": {
|
|
450
490
|
"module": "Default",
|
|
451
491
|
"description": "AND the input with the given key.<br>e.g. <code>fe023da5</code>",
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
* @copyright Crown Copyright 2022
|
|
6
6
|
* @license Apache-2.0
|
|
7
7
|
*/
|
|
8
|
+
import AMFDecode from "../../operations/AMFDecode.mjs";
|
|
9
|
+
import AMFEncode from "../../operations/AMFEncode.mjs";
|
|
8
10
|
import CitrixCTX1Decode from "../../operations/CitrixCTX1Decode.mjs";
|
|
9
11
|
import CitrixCTX1Encode from "../../operations/CitrixCTX1Encode.mjs";
|
|
10
12
|
import DecodeText from "../../operations/DecodeText.mjs";
|
|
@@ -19,6 +21,8 @@ import ToPunycode from "../../operations/ToPunycode.mjs";
|
|
|
19
21
|
const OpModules = typeof self === "undefined" ? {} : self.OpModules || {};
|
|
20
22
|
|
|
21
23
|
OpModules.Encodings = {
|
|
24
|
+
"AMF Decode": AMFDecode,
|
|
25
|
+
"AMF Encode": AMFEncode,
|
|
22
26
|
"Citrix CTX1 Decode": CitrixCTX1Decode,
|
|
23
27
|
"Citrix CTX1 Encode": CitrixCTX1Encode,
|
|
24
28
|
"Decode text": DecodeText,
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import CiphersModule from "./Ciphers.mjs";
|
|
11
11
|
import DefaultModule from "./Default.mjs";
|
|
12
|
+
import EncodingsModule from "./Encodings.mjs";
|
|
12
13
|
import ImageModule from "./Image.mjs";
|
|
13
14
|
import CryptoModule from "./Crypto.mjs";
|
|
14
15
|
import SerialiseModule from "./Serialise.mjs";
|
|
@@ -16,7 +17,6 @@ import HashingModule from "./Hashing.mjs";
|
|
|
16
17
|
import BletchleyModule from "./Bletchley.mjs";
|
|
17
18
|
import CompressionModule from "./Compression.mjs";
|
|
18
19
|
import CodeModule from "./Code.mjs";
|
|
19
|
-
import EncodingsModule from "./Encodings.mjs";
|
|
20
20
|
import DiffModule from "./Diff.mjs";
|
|
21
21
|
import ShellcodeModule from "./Shellcode.mjs";
|
|
22
22
|
import ChartsModule from "./Charts.mjs";
|
|
@@ -35,6 +35,7 @@ Object.assign(
|
|
|
35
35
|
OpModules,
|
|
36
36
|
CiphersModule,
|
|
37
37
|
DefaultModule,
|
|
38
|
+
EncodingsModule,
|
|
38
39
|
ImageModule,
|
|
39
40
|
CryptoModule,
|
|
40
41
|
SerialiseModule,
|
|
@@ -42,7 +43,6 @@ Object.assign(
|
|
|
42
43
|
BletchleyModule,
|
|
43
44
|
CompressionModule,
|
|
44
45
|
CodeModule,
|
|
45
|
-
EncodingsModule,
|
|
46
46
|
DiffModule,
|
|
47
47
|
ShellcodeModule,
|
|
48
48
|
ChartsModule,
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author n1474335 [n1474335@gmail.com]
|
|
3
|
+
* @copyright Crown Copyright 2022
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import Operation from "../Operation.mjs";
|
|
8
|
+
import "reflect-metadata"; // Required as a shim for the amf library
|
|
9
|
+
import { AMF0, AMF3 } from "@astronautlabs/amf";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* AMF Decode operation
|
|
13
|
+
*/
|
|
14
|
+
class AMFDecode extends Operation {
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* AMFDecode constructor
|
|
18
|
+
*/
|
|
19
|
+
constructor() {
|
|
20
|
+
super();
|
|
21
|
+
|
|
22
|
+
this.name = "AMF Decode";
|
|
23
|
+
this.module = "Encodings";
|
|
24
|
+
this.description = "Action Message Format (AMF) is a binary format used to serialize object graphs such as ActionScript objects and XML, or send messages between an Adobe Flash client and a remote service, usually a Flash Media Server or third party alternatives.";
|
|
25
|
+
this.infoURL = "https://wikipedia.org/wiki/Action_Message_Format";
|
|
26
|
+
this.inputType = "ArrayBuffer";
|
|
27
|
+
this.outputType = "JSON";
|
|
28
|
+
this.args = [
|
|
29
|
+
{
|
|
30
|
+
name: "Format",
|
|
31
|
+
type: "option",
|
|
32
|
+
value: ["AMF0", "AMF3"],
|
|
33
|
+
defaultIndex: 1
|
|
34
|
+
}
|
|
35
|
+
];
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @param {ArrayBuffer} input
|
|
40
|
+
* @param {Object[]} args
|
|
41
|
+
* @returns {JSON}
|
|
42
|
+
*/
|
|
43
|
+
run(input, args) {
|
|
44
|
+
const [format] = args;
|
|
45
|
+
const handler = format === "AMF0" ? AMF0 : AMF3;
|
|
46
|
+
const encoded = new Uint8Array(input);
|
|
47
|
+
return handler.Value.deserialize(encoded);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export default AMFDecode;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author n1474335 [n1474335@gmail.com]
|
|
3
|
+
* @copyright Crown Copyright 2022
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import Operation from "../Operation.mjs";
|
|
8
|
+
import "reflect-metadata"; // Required as a shim for the amf library
|
|
9
|
+
import { AMF0, AMF3 } from "@astronautlabs/amf";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* AMF Encode operation
|
|
13
|
+
*/
|
|
14
|
+
class AMFEncode extends Operation {
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* AMFEncode constructor
|
|
18
|
+
*/
|
|
19
|
+
constructor() {
|
|
20
|
+
super();
|
|
21
|
+
|
|
22
|
+
this.name = "AMF Encode";
|
|
23
|
+
this.module = "Encodings";
|
|
24
|
+
this.description = "Action Message Format (AMF) is a binary format used to serialize object graphs such as ActionScript objects and XML, or send messages between an Adobe Flash client and a remote service, usually a Flash Media Server or third party alternatives.";
|
|
25
|
+
this.infoURL = "https://wikipedia.org/wiki/Action_Message_Format";
|
|
26
|
+
this.inputType = "JSON";
|
|
27
|
+
this.outputType = "ArrayBuffer";
|
|
28
|
+
this.args = [
|
|
29
|
+
{
|
|
30
|
+
name: "Format",
|
|
31
|
+
type: "option",
|
|
32
|
+
value: ["AMF0", "AMF3"],
|
|
33
|
+
defaultIndex: 1
|
|
34
|
+
}
|
|
35
|
+
];
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @param {JSON} input
|
|
40
|
+
* @param {Object[]} args
|
|
41
|
+
* @returns {ArrayBuffer}
|
|
42
|
+
*/
|
|
43
|
+
run(input, args) {
|
|
44
|
+
const [format] = args;
|
|
45
|
+
const handler = format === "AMF0" ? AMF0 : AMF3;
|
|
46
|
+
const output = handler.Value.any(input).serialize();
|
|
47
|
+
return output.buffer;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export default AMFEncode;
|
|
@@ -12,6 +12,8 @@ import AESDecrypt from "./AESDecrypt.mjs";
|
|
|
12
12
|
import AESEncrypt from "./AESEncrypt.mjs";
|
|
13
13
|
import AESKeyUnwrap from "./AESKeyUnwrap.mjs";
|
|
14
14
|
import AESKeyWrap from "./AESKeyWrap.mjs";
|
|
15
|
+
import AMFDecode from "./AMFDecode.mjs";
|
|
16
|
+
import AMFEncode from "./AMFEncode.mjs";
|
|
15
17
|
import AND from "./AND.mjs";
|
|
16
18
|
import AddLineNumbers from "./AddLineNumbers.mjs";
|
|
17
19
|
import AddTextToImage from "./AddTextToImage.mjs";
|
|
@@ -409,6 +411,8 @@ export {
|
|
|
409
411
|
AESEncrypt,
|
|
410
412
|
AESKeyUnwrap,
|
|
411
413
|
AESKeyWrap,
|
|
414
|
+
AMFDecode,
|
|
415
|
+
AMFEncode,
|
|
412
416
|
AND,
|
|
413
417
|
AddLineNumbers,
|
|
414
418
|
AddTextToImage,
|
package/src/node/index.mjs
CHANGED
|
@@ -22,6 +22,8 @@ import {
|
|
|
22
22
|
AESEncrypt as core_AESEncrypt,
|
|
23
23
|
AESKeyUnwrap as core_AESKeyUnwrap,
|
|
24
24
|
AESKeyWrap as core_AESKeyWrap,
|
|
25
|
+
AMFDecode as core_AMFDecode,
|
|
26
|
+
AMFEncode as core_AMFEncode,
|
|
25
27
|
AND as core_AND,
|
|
26
28
|
AddLineNumbers as core_AddLineNumbers,
|
|
27
29
|
AddTextToImage as core_AddTextToImage,
|
|
@@ -419,6 +421,8 @@ function generateChef() {
|
|
|
419
421
|
"AESEncrypt": _wrap(core_AESEncrypt),
|
|
420
422
|
"AESKeyUnwrap": _wrap(core_AESKeyUnwrap),
|
|
421
423
|
"AESKeyWrap": _wrap(core_AESKeyWrap),
|
|
424
|
+
"AMFDecode": _wrap(core_AMFDecode),
|
|
425
|
+
"AMFEncode": _wrap(core_AMFEncode),
|
|
422
426
|
"AND": _wrap(core_AND),
|
|
423
427
|
"addLineNumbers": _wrap(core_AddLineNumbers),
|
|
424
428
|
"addTextToImage": _wrap(core_AddTextToImage),
|
|
@@ -824,6 +828,8 @@ const AESDecrypt = chef.AESDecrypt;
|
|
|
824
828
|
const AESEncrypt = chef.AESEncrypt;
|
|
825
829
|
const AESKeyUnwrap = chef.AESKeyUnwrap;
|
|
826
830
|
const AESKeyWrap = chef.AESKeyWrap;
|
|
831
|
+
const AMFDecode = chef.AMFDecode;
|
|
832
|
+
const AMFEncode = chef.AMFEncode;
|
|
827
833
|
const AND = chef.AND;
|
|
828
834
|
const addLineNumbers = chef.addLineNumbers;
|
|
829
835
|
const addTextToImage = chef.addTextToImage;
|
|
@@ -1223,6 +1229,8 @@ const operations = [
|
|
|
1223
1229
|
AESEncrypt,
|
|
1224
1230
|
AESKeyUnwrap,
|
|
1225
1231
|
AESKeyWrap,
|
|
1232
|
+
AMFDecode,
|
|
1233
|
+
AMFEncode,
|
|
1226
1234
|
AND,
|
|
1227
1235
|
addLineNumbers,
|
|
1228
1236
|
addTextToImage,
|
|
@@ -1626,6 +1634,8 @@ export {
|
|
|
1626
1634
|
AESEncrypt,
|
|
1627
1635
|
AESKeyUnwrap,
|
|
1628
1636
|
AESKeyWrap,
|
|
1637
|
+
AMFDecode,
|
|
1638
|
+
AMFEncode,
|
|
1629
1639
|
AND,
|
|
1630
1640
|
addLineNumbers,
|
|
1631
1641
|
addTextToImage,
|