Penulis: Sean Pesce
NodeJS Scripts untuk menganalisis (Minified/dikaburkan) JavaScript. Semua alat mendukung pemrosesan file lokal, file jarak jauh melalui URL HTTP, atau data dari input standar.
Alat -alat ini masih dalam pengembangan besar, jadi ide dan kontribusi dipersilakan.
Paket Sistem:
curlnodejs (18.3+)Modul Node:
escodegenesprimaestraversesource-map Catatan: Alat -alat ini dikirimkan dengan versi esrefactor yang diperbarui oleh Nick Larosa. Versi Nick memperbaiki beberapa masalah besar dengan versi perpustakaan di NPM (lihat permintaan tarik di sini). Versi PR juga dapat diinstal langsung dengan npm install ariya/esrefactor#pull/9/head , tetapi saya sudah memasukkannya di sini untuk kenyamanan.
jsretk-strings Script ini mengekstraksi string literal dari kode JavaScript, dengan hasil yang mirip dengan strings yang berjalan terhadap biner yang dapat dikompilasi. Ini juga mendukung opsi untuk mengekstrak komentar JavaScript dan literal 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-unminifyPERINGATAN: Skrip ini tidak stabil dan tidak berperforma dalam keadaan saat ini.
Script ini mencoba untuk tidak memiliki kode JavaScript dengan:
Perhatikan bahwa implementasi saat ini dapat memakan waktu yang sangat lama untuk melakukan uniquifikasi, jadi penggunaan bendera -v|--verbose sangat disarankan untuk memantau kemajuan. Untuk beberapa basis kode (misalnya, beberapa penyebaran asli bereaksi), bendera eksperimental -L|--per-line dapat mengurangi waktu penyelesaian secara eksponensial.
$ 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 Script ini, berdasarkan kode asli dari Tim McCormack, memulihkan kode sumber JavaScript/TypeScript dari file peta JS/sumber ( *.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
Untuk pertanyaan dan/atau informasi tentang saya, kunjungi situs web pribadi saya.