1
0
mirror of synced 2024-11-17 11:37:13 +01:00

changed the function comment

This commit is contained in:
bwhitn 2017-12-18 05:04:11 -08:00
parent caae0ec5ca
commit 08a31523b2
4 changed files with 31 additions and 0 deletions

View File

@ -302,6 +302,7 @@ const Categories = [
ops: [
"Entropy",
"Frequency distribution",
"Chi Square",
"Detect File Type",
"Scan for Embedded Files",
"Disassemble x86",

View File

@ -3186,6 +3186,13 @@ const OperationConfig = {
}
]
},
"Chi Square": {
module: "Default",
description: "Calculates the Chi Square distribution of values.",
inputType: "byteArray",
outputType: "",
args: []
}
"Numberwang": {
module: "Default",
description: "Based on the popular gameshow by Mitchell and Webb.",

View File

@ -142,6 +142,7 @@ OpModules.Default = {
"Microsoft Script Decoder": MS.runDecodeScript,
"Entropy": Entropy.runEntropy,
"Frequency distribution": Entropy.runFreqDistrib,
"Chi Square": Entropy.calcChiSq,
"Detect File Type": FileType.runDetect,
"Scan for Embedded Files": FileType.runScanForEmbeddedFiles,
"Generate UUID": UUID.runGenerateV4,

View File

@ -163,6 +163,28 @@ const Entropy = {
return -entropy;
},
/**
* Calculates the Chi Square distribution of values.
*
* @private
* @param {byteArray} data
* @param {Object[]} args
* @returns {number}
*/
calcChiSq: function(input, args) {
let distArray = new Array(256).fill(0),
total = 0;
for (let i = 0; i < input.length; i++) {
distArray[data[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;
}
};
export default Entropy;