Compare commits

...
6 Commits
Author SHA1 Message Date
n1474335 f9eaf67db2 6.7.0 2017-12-19 15:02:23 +00:00
n1474335 99e0c8d5e3 Merge branch 'bwhitn-chi' 2017-12-19 15:02:08 +00:00
n1474335 7a951d86d8 Tidied up Chi Square operation 2017-12-19 15:02:01 +00:00
n1474335 d9dfaec84c Merge branch 'chi' of https://github.com/bwhitn/CyberChef into bwhitn-chi 2017-12-19 14:45:50 +00:00
bwhitn 4ca2a30249 Fixed minor errors 2017-12-18 05:33:52 -08:00
bwhitn 08a31523b2 changed the function comment 2017-12-18 05:04:11 -08:00
6 changed files with 36 additions and 2 deletions

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "cyberchef",
"version": "6.6.3",
"version": "6.7.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "cyberchef",
"version": "6.6.3",
"version": "6.7.0",
"description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.",
"author": "n1474335 <n1474335@gmail.com>",
"homepage": "https://gchq.github.io/CyberChef",
+1
View File
@@ -302,6 +302,7 @@ const Categories = [
ops: [
"Entropy",
"Frequency distribution",
"Chi Square",
"Detect File Type",
"Scan for Embedded Files",
"Disassemble x86",
+7
View File
@@ -3205,6 +3205,13 @@ const OperationConfig = {
}
]
},
"Chi Square": {
module: "Default",
description: "Calculates the Chi Square distribution of values.",
inputType: "byteArray",
outputType: "number",
args: []
},
"Numberwang": {
module: "Default",
description: "Based on the popular gameshow by Mitchell and Webb.",
+1
View File
@@ -143,6 +143,7 @@ OpModules.Default = {
"Microsoft Script Decoder": MS.runDecodeScript,
"Entropy": Entropy.runEntropy,
"Frequency distribution": Entropy.runFreqDistrib,
"Chi Square": Entropy.runChiSq,
"Detect File Type": FileType.runDetect,
"Scan for Embedded Files": FileType.runScanForEmbeddedFiles,
"Generate UUID": UUID.runGenerateV4,
+25
View File
@@ -135,6 +135,31 @@ const Entropy = {
},
/**
* Chi Square operation.
*
* @param {byteArray} data
* @param {Object[]} args
* @returns {number}
*/
runChiSq: function(input, args) {
let distArray = new Array(256).fill(0),
total = 0;
for (let i = 0; i < input.length; i++) {
distArray[input[i]]++;
}
for (let i = 0; i < distArray.length; i++) {
if (distArray[i] > 0) {
total += Math.pow(distArray[i] - input.length / 256, 2) / (input.length / 256);
}
}
return total;
},
/**
* Calculates the Shannon entropy for a given chunk of data.
*