# REstringer

> HUMAN Security's Node.js JavaScript deobfuscator. It identifies the obfuscation type, runs matching processors for obfuscator.io, Caesar Plus and array-based patterns, then iterates 40+ AST modules that rebuild strings, resolve expressions and calls and simplify control flow; unsafe modules evaluate code in a sandbox. It works as a CLI or library.

- Type: Tool
- Targets: Website
- Category: Website analysis tools
- Relationship: Foundation tool
- Sources reviewed: 2026-10-19
- Added to the catalog: 2026-11-01
- Original resource: <https://github.com/HumanSecurity/restringer>
- Primary source: <https://github.com/HumanSecurity/restringer/blob/d9eae6907e14581b7934940ee0407f505b7a212b/README.md>
- Catalog page: <https://awesomerea.org/resources/restringer/>
- Record JSON: <https://awesomerea.org/resources/restringer/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/restringer/index.md)

## Requirements & limits

- The reviewed HumanSecurity main commit (2025-12-07) is v2.1.0 plus one README edit removing the retired REstringer.tech web tool. The author now continues the project in his fork ctrl-escp/restringer, which the npm package lists as its repository: npm 2.2.0 (2026-05-09) and 2.3.0 (2026-08-30) come from it, and at 2.3.0 its README requires Node.js 22+, makes isolated-vm optional and adds Node, Deno and Bun subprocess sandboxes, so npm installs code newer than the reviewed source.
- The reviewed source needs Node.js 20+ (22+ recommended) and installs as a global CLI or a module. It depends on flast, obfuscation-detector, commander and isolated-vm 5.0.4, a native module that CI builds with Python and g++. Output goes to stdout or <input>-deob.js; -m caps iterations, and -c removes dead nodes, which README marks unsafe.
- Input is an obfuscated JavaScript file or string. Safe modules transform the AST without evaluating code; unsafe modules evaluate parts of the input with eval() inside an isolated-vm sandbox to resolve expressions and calls.
- GitHub Actions runs npm test on Node.js 20 and 22. Besides module and processor unit tests, the full suite deobfuscates 11 bundled obfuscated samples, among them obfuscator.io, JSFuck and Caesar Plus scripts, and compares each result with a stored expected output.
- MIT, copyright 2025 HUMAN Security; the fork adds a 2026 copyright line for Ben Baryo. The repository was formerly PerimeterX/restringer, which now redirects to HumanSecurity/restringer.

## Primary sources

1. <https://github.com/HumanSecurity/restringer/blob/d9eae6907e14581b7934940ee0407f505b7a212b/README.md>
2. <https://github.com/HumanSecurity/restringer/blob/d9eae6907e14581b7934940ee0407f505b7a212b/package.json>
3. <https://github.com/HumanSecurity/restringer/blob/d9eae6907e14581b7934940ee0407f505b7a212b/src/processors/README.md>
4. <https://github.com/HumanSecurity/restringer/blob/d9eae6907e14581b7934940ee0407f505b7a212b/.github/workflows/node.js.yml>
5. <https://github.com/HumanSecurity/restringer/blob/d9eae6907e14581b7934940ee0407f505b7a212b/tests/samples.test.js>
6. <https://github.com/HumanSecurity/restringer/tree/d9eae6907e14581b7934940ee0407f505b7a212b/tests/resources>
7. <https://github.com/HumanSecurity/restringer/blob/d9eae6907e14581b7934940ee0407f505b7a212b/LICENSE>
8. <https://github.com/HumanSecurity/restringer/releases/tag/v2.1.0>
9. <https://github.com/ctrl-escp/restringer/blob/5fe8ac8d23723810fba170972c12b4433ffba111/README.md>
10. <https://github.com/ctrl-escp/restringer/blob/5fe8ac8d23723810fba170972c12b4433ffba111/package.json>
11. <https://registry.npmjs.org/restringer/2.2.0>
12. <https://registry.npmjs.org/restringer/2.3.0>

## More in Websites

- [Chrome extension source viewer (CRX Viewer)](https://awesomerea.org/resources/crxviewer/index.md) · Tool
- [har-to-openapi](https://awesomerea.org/resources/har-to-openapi/index.md) · Tool
- [decode-js](https://awesomerea.org/resources/decode-js/index.md) · Tool
- [javascript-deobfuscator (LostMyCode)](https://awesomerea.org/resources/lostmycode-javascript-deobfuscator/index.md) · Tool
- [minusone](https://awesomerea.org/resources/minusone-script-deobfuscator/index.md) · Tool
- [JS-Deobfuscator (0x1Avram)](https://awesomerea.org/resources/0x1avram-js-deobfuscator/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
