Detect-It-Easy/db/Binary/__MiniJavaScriptHeuristic_By_DosX.7.sg
2025-03-23 12:41:20 +03:00

46 lines
No EOL
1.5 KiB
JavaScript

// Detect It Easy: detection rule file
// Author: DosX
// E-Mail: collab@kay-software.ru
// GitHub: https://github.com/DosX-dev
// Telegram: @DosX_dev
const detect = main;
function main() {
if (Binary.isHeuristicScan()) {
switch (Binary.getFileSuffix().toLowerCase()) {
case "js":
case "jse":
case "jsc":
var options = "";
if (!Binary.isPlainText()) {
options = "bytecode";
} else {
if (Binary.getSize() > 3000) {
var scriptContent = Binary.getString(0x00, Binary.getSize());
var unquotedContent = '',
inQuotes = false;
for (var i = 0; i < scriptContent.length; i++) {
if (scriptContent[i] === '"' || scriptContent[i] === "'" || scriptContent[i] === '`') {
inQuotes = !inQuotes;
} else if (!inQuotes) {
unquotedContent += scriptContent[i];
}
}
if (/\s{2}/.test(unquotedContent)) {
options = "minified/compiled";
}
}
}
_setResult("~language", "JavaScript", String(), Binary.isVerbose() ? options : String());
break;
}
}
}