mirror of
https://github.com/gchq/CyberChef
synced 2026-01-11 13:03:29 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
170feaaff2 | ||
|
|
870c2b6d8b | ||
|
|
eee8b7db56 | ||
|
|
3c669a075e | ||
|
|
f528930ad2 |
10
Gruntfile.js
10
Gruntfile.js
@@ -186,7 +186,10 @@ module.exports = function (grunt) {
|
||||
options: webpackConfig,
|
||||
metaConf: {
|
||||
target: "node",
|
||||
entry: "./src/core/config/OperationConfig.js",
|
||||
entry: [
|
||||
"babel-polyfill",
|
||||
"./src/core/config/OperationConfig.js"
|
||||
],
|
||||
output: {
|
||||
filename: "MetaConfig.js",
|
||||
path: __dirname + "/src/core/config/",
|
||||
@@ -198,7 +201,10 @@ module.exports = function (grunt) {
|
||||
},
|
||||
metaConfDev: {
|
||||
target: "node",
|
||||
entry: "./src/core/config/OperationConfig.js",
|
||||
entry: [
|
||||
"babel-polyfill",
|
||||
"./src/core/config/OperationConfig.js"
|
||||
],
|
||||
output: {
|
||||
filename: "MetaConfig.js",
|
||||
path: __dirname + "/src/core/config/",
|
||||
|
||||
2
package-lock.json
generated
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cyberchef",
|
||||
"version": "7.5.6",
|
||||
"version": "7.6.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cyberchef",
|
||||
"version": "7.5.6",
|
||||
"version": "7.6.1",
|
||||
"description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.",
|
||||
"author": "n1474335 <n1474335@gmail.com>",
|
||||
"homepage": "https://gchq.github.io/CyberChef",
|
||||
|
||||
@@ -55,7 +55,9 @@ const FlowControl = {
|
||||
state.forkOffset += state.progress + 1;
|
||||
|
||||
recipe.addOperations(subOpList);
|
||||
const ingValues = subOpList.map(op => op.getIngValues());
|
||||
|
||||
// Take a deep(ish) copy of the ingredient values
|
||||
const ingValues = subOpList.map(op => JSON.parse(JSON.stringify(op.getIngValues())));
|
||||
|
||||
// Run recipe over each tranche
|
||||
for (i = 0; i < inputs.length; i++) {
|
||||
@@ -63,7 +65,7 @@ const FlowControl = {
|
||||
|
||||
// Baseline ing values for each tranche so that registers are reset
|
||||
subOpList.forEach((op, i) => {
|
||||
op.setIngValues(ingValues[i]);
|
||||
op.setIngValues(JSON.parse(JSON.stringify(ingValues[i])));
|
||||
});
|
||||
|
||||
const dish = new Dish(inputs[i], inputType);
|
||||
|
||||
@@ -201,6 +201,7 @@ const Categories = [
|
||||
"Escape string",
|
||||
"Unescape string",
|
||||
"Pseudo-Random Number Generator",
|
||||
"Sleep",
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -213,6 +214,7 @@ const Categories = [
|
||||
"Windows Filetime to UNIX Timestamp",
|
||||
"UNIX Timestamp to Windows Filetime",
|
||||
"Extract dates",
|
||||
"Sleep",
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -2441,6 +2441,19 @@ const OperationConfig = {
|
||||
}
|
||||
]
|
||||
},
|
||||
"Sleep": {
|
||||
module: "Default",
|
||||
description: "Sleep causes the recipe to wait for a specified number of milliseconds before continuing execution.",
|
||||
inputType: "ArrayBuffer",
|
||||
outputType: "ArrayBuffer",
|
||||
args: [
|
||||
{
|
||||
name: "Time (ms)",
|
||||
type: "number",
|
||||
value: 1000
|
||||
}
|
||||
]
|
||||
},
|
||||
"Windows Filetime to UNIX Timestamp": {
|
||||
module: "JSBN",
|
||||
description: "Converts a Windows Filetime value to a UNIX timestamp.<br><br>A Windows Filetime is a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 UTC.<br><br>A UNIX timestamp is a 32-bit value representing the number of seconds since January 1, 1970 UTC (the UNIX epoch).<br><br>This operation also supports UNIX timestamps in milliseconds, microseconds and nanoseconds.",
|
||||
|
||||
@@ -130,6 +130,7 @@ OpModules.Default = {
|
||||
"Translate DateTime Format": DateTime.runTranslateFormat,
|
||||
"From UNIX Timestamp": DateTime.runFromUnixTimestamp,
|
||||
"To UNIX Timestamp": DateTime.runToUnixTimestamp,
|
||||
"Sleep": DateTime.runSleep,
|
||||
"Microsoft Script Decoder": MS.runDecodeScript,
|
||||
"Entropy": Entropy.runEntropy,
|
||||
"Frequency distribution": Entropy.runFreqDistrib,
|
||||
|
||||
@@ -189,6 +189,20 @@ const DateTime = {
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* Sleep operation.
|
||||
*
|
||||
* @param {ArrayBuffer} input
|
||||
* @param {Object[]} args
|
||||
* @returns {ArrayBuffer}
|
||||
*/
|
||||
runSleep: async function(input, args) {
|
||||
const ms = args[0];
|
||||
await new Promise(r => setTimeout(r, ms));
|
||||
return input;
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* @constant
|
||||
*/
|
||||
|
||||
@@ -488,7 +488,6 @@ App.prototype.setRecipeConfig = function(recipeConfig) {
|
||||
|
||||
// Unpause auto bake
|
||||
this.autoBakePause = false;
|
||||
window.disptchEent(this.manager.statechange);
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user