Autor: Sean Pesce
Scripts NodeJS para analizar (minificado/ofuscado) JavaScript. Todas las herramientas admiten el procesamiento de archivos locales, archivos remotos a través de URL HTTP (s) o datos de la entrada estándar.
Estas herramientas aún están bajo un gran desarrollo, por lo que las ideas y las contribuciones son bienvenidas.
Paquetes del sistema:
curlnodejs (18.3+)Módulos de nodo:
escodegenesprimaestraversesource-map Nota: Estas herramientas se envían con una versión actualizada de esrefactor de Nick Larosa. La versión de Nick soluciona algunos problemas importantes con la versión de la biblioteca en NPM (vea la solicitud de extracción aquí). La versión de PR también podría instalarse directamente con npm install ariya/esrefactor#pull/9/head , pero la he incluido aquí por conveniencia.
jsretk-strings Este script extrae literales de cadena del código JavaScript, con resultados similares para ejecutar strings contra un ejecutable binario compilado. También admite opciones para extraer comentarios de JavaScript y literales de 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-unminifyADVERTENCIA: Este script es inestable y no tiene rendimiento en su estado actual.
Este script intenta no minificar el código JavaScript por:
Tenga en cuenta que la implementación actual puede tardar un tiempo extremadamente largo en realizar la ungusificación, por lo que el uso del indicador -v|--verbose es muy recomendable para monitorear el progreso. Para algunas bases de código (por ejemplo, algunos reaccionan las implementaciones nativas), el indicador experimental -L|--per-line puede reducir el tiempo de finalización exponencialmente.
$ 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 Este script, basado en el código original de Tim McCormack, recupera el código fuente JavaScript/TypeScript de los archivos JS/Source Map ( *.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
Para consultas y/o información sobre mí, visite mi sitio web personal .