Merge 884b0b94d856da73c60f8b2923f348ddfe59ae07 into 4290ea753912378913b1f3f54e0fc5720afeda5d
This commit is contained in:
commit
db780a854b
@ -32,7 +32,7 @@ class TextEncodingBruteForce extends Operation {
|
||||
"</ul>"
|
||||
].join("\n");
|
||||
this.infoURL = "https://wikipedia.org/wiki/Character_encoding";
|
||||
this.inputType = "string";
|
||||
this.inputType = "byteArray";
|
||||
this.outputType = "json";
|
||||
this.presentType = "html";
|
||||
this.args = [
|
||||
@ -45,21 +45,22 @@ class TextEncodingBruteForce extends Operation {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} input
|
||||
* @param {byteArray} input
|
||||
* @param {Object[]} args
|
||||
* @returns {json}
|
||||
*/
|
||||
run(input, args) {
|
||||
const output = {},
|
||||
charsets = Object.keys(CHR_ENC_CODE_PAGES),
|
||||
mode = args[0];
|
||||
mode = args[0],
|
||||
stringInput = Utils.arrayBufferToStr(input);
|
||||
|
||||
charsets.forEach(charset => {
|
||||
try {
|
||||
if (mode === "Decode") {
|
||||
output[charset] = cptable.utils.decode(CHR_ENC_CODE_PAGES[charset], input);
|
||||
} else {
|
||||
output[charset] = Utils.arrayBufferToStr(cptable.utils.encode(CHR_ENC_CODE_PAGES[charset], input));
|
||||
output[charset] = Utils.arrayBufferToStr(cptable.utils.encode(CHR_ENC_CODE_PAGES[charset], stringInput));
|
||||
}
|
||||
} catch (err) {
|
||||
output[charset] = "Could not decode.";
|
||||
|
||||
@ -30,6 +30,21 @@ TestRegister.addTests([
|
||||
args: ["Decode"],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Text Encoding Brute Force - Decode preserves raw UTF-8 bytes",
|
||||
input: "63 61 66 c3 a9",
|
||||
expectedMatch: /UTF-8 Unicode \(65001\).{1,10}café/,
|
||||
recipeConfig: [
|
||||
{
|
||||
op: "From Hex",
|
||||
args: ["Auto"],
|
||||
},
|
||||
{
|
||||
op: "Text Encoding Brute Force",
|
||||
args: ["Decode"],
|
||||
},
|
||||
],
|
||||
}
|
||||
]);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user