Auteur: Sean Pesce
SCRIPTS NODEJS Pour analyser JavaScript (minifié / obscurci). Tous les outils prennent en charge le traitement des fichiers locaux, des fichiers distants via une URL HTTP (s) ou des données à partir de l'entrée standard.
Ces outils sont toujours sous le développement intensif, donc les idées et les contributions sont les bienvenues.
Packages système:
curlnodejs (18,3+)Modules de nœud:
escodegenesprimaestraversesource-map Remarque: Ces outils sont livrés avec une version mise à jour d' esrefactor par Nick Larosa. La version de Nick résout certains problèmes majeurs avec la version de la bibliothèque dans NPM (voir la demande de traction ici). La version PR pourrait également être installée directement avec npm install ariya/esrefactor#pull/9/head , mais je l'ai inclus ici pour plus de commodité.
jsretk-strings Ce script extrait les littéraux de chaîne de JavaScript Code, avec des résultats similaires à l'exécution strings contre un exécutable binaire compilé. Il prend également en charge les options pour extraire les commentaires JavaScript et les littéraux regex.
$ node jsretk-strings.js --help
Usage:
node jsretk-strings.js [OPTIONS] <JS_FILE_1> [[JS_FILE_2] ...]
Options:
[-h|--help] Print usage and exit
[-P|--stdin] Pipe data from stdin
[-c|--comments] Include JavaScript comments in output
[-C|--comments-only] Find ONLY JavaScript comments (no string/RegEx literals; overrides "-c")
[-r|--regex] Include Regular Expression (RegEx) literals in output
[-R|--regex-only] Find ONLY RegEx literals (no comments/string literals; overrides "-r")
[-T|--templates-only] Find ONLY template strings (no static string/RegEx literals or comments)
[-m|--min] Find strings of this length or longer (inclusive)
[-M|--max] Find strings of this length or shorter (inclusive)
[-x|--match-regex] <ex> Find strings that match the given Regular Expression
[-k|--insecure] Don't verify TLS/SSL certificates for connections when fetching remotely-hosted JS files
[-p|--curl-path] <path> Non-standard path/name for the curl command
[-B|--max-buffer] <n> Maximum size (in bytes) for remotely-fetched JS files (default: 50MB)
[-E|--encoding] <enc> Text encoding for local input/output files (default: "utf8")
[-i|--interactive] Enter interactive NodeJS prompt after completion
jsretk-unminifyAvertissement: ce script est instable et non performant dans son état actuel.
Ce script tente de désinfirmer le code JavaScript par:
Notez que la mise en œuvre actuelle peut prendre beaucoup de temps pour effectuer une uniquification, de sorte que l'utilisation du drapeau -v|--verbose est fortement recommandée pour surveiller les progrès. Pour certaines bases de code (par exemple, certains déploiements natifs React), l'indicateur expérimental -L|--per-line peut réduire le temps de complétion de façon exponentielle.
$ node jsretk-unminify.js --help
Usage:
node jsretk-unminify.js [OPTIONS] <JS_FILE_1> [[JS_FILE_2] ...]
Options:
[-h|--help] Print usage and exit
[-P|--stdin] Pipe data from stdin
[-v|--verbose] Enable verbose output
[-o|--output-dir] <dir> Output directory (default: "jsretk-out")
[-O|--overwrite] If output file(s) exist, automatically overwrite
[-t|--tab] Use tab characters ("t") instead of spaces for indenting formatted code
[-I|--indent] <n> Number of spaces (or tabs) used for indenting formatted code (default: 4 spaces or 1 tab)
[-r|--rename-len] <n> Rename variables if names are shorter than or equal to this value (default: 2 characters)
[-R|--no-rename] Don't rename variables to unique names
[-F|--no-format] Don't format the code for readability
[-C|--char-iter] Iterate over characters instead of tokens during refactoring. Significantly slower; may produce slightly different output
[-s|--smart-rename] (EXPERIMENTAL) Use various heuristics to attempt to generate more informative variable names
[-L|--per-line] (EXPERIMENTAL) Attempt to refactor code line by line (rather than the whole file at once). Useful for some react-native deployments, but fails on many (most?) codebases
[-k|--insecure] Don't verify TLS/SSL certificates for connections when fetching remotely-hosted JS files
[-p|--curl-path] <path> Non-standard path/name for the curl command
[-B|--max-buffer] <n> Maximum size (in bytes) for remotely-fetched JS files (default: 50MB)
[-E|--encoding] <enc> Text encoding for local input/output files (default: "utf8")
[-i|--interactive] Enter interactive NodeJS prompt after completion
jsretk-unsourcemap Ce script, basé sur le code d'origine de Tim McCormack, récupère le code source JavaScript / TypeScript à partir de fichiers de carte JS / source ( *.js.map ).
$ node jsretk-unsourcemap.js --help
usage: jsretk-unsourcemap.js [-h] src-js src-map out-dir
Deobfuscate JavaScript code using a source map
positional arguments:
src-js Path to JavaScript file to recover
src-map Path to source-map to recover from
out-dir Path to directory where sources will be dumped
optional arguments:
-h, --help show this help message and exit
Pour des demandes de renseignements et / ou des informations sur moi, visitez mon site Web personnel .