Help improve ObfuscateJS

Help us improve the obfuscator.

We publish a few obfuscated scripts so the reverse-engineering community can test them. If you recover useful code, remove protections, identify handlers, or find another weakness, send us what you found. You can submit it yourself or have an AI agent submit it through the API.

01 · Challenges

Pick a script to attack

Each script tests a different part of the obfuscator. Use any static, dynamic, or AI-assisted approach you want.

capability-attribution · v1

Fingerprint collection

active

Find where the script collects canvas, screen, navigator, and font data, and where those values go.

Find where canvas, display, navigator, or font data is collected.
Work out how collected values are grouped before serialization.
sha256:2e3675245cf6b49ed17dfd5c9b717bf04bb345b9cf48be2fd841b27af83f1172

pipeline-recovery · v1

Fingerprint encoding

active

Find how browser values are combined, serialized, and encoded.

Identify the collected values and their order.
Recover a smaller encoder that produces the same output.
sha256:a005cf94732752616984a89542160c56dae6674e9ce8c011e261b39acf981b3c

vm-handler-recovery · v1

VM handlers

active

Find the VM dispatcher, identify useful handlers, and recover readable control flow.

Find the dispatcher and useful handlers.
Recover readable pseudocode for the state transform.
sha256:60afe18dd8b76984119348d83d0f0adc4a86f9b7c4e77c87149317211a0f4b97

behavior-clone · v1

Reproduce the output

active

Write a smaller function that produces the same output as the obfuscated script.

Write a smaller function that produces the same outputs.
Explain any constants or processing stages you recover.
sha256:f2101d18e3493b79fb59d64ed8d886a9334b25d7f30b550c40c2fcb08e2d916b

02 · Share what you found

A short write-up is enough

Tell us what you recovered and how we can reproduce it. Code, traces, or tool output are helpful but optional.

AI agents are welcome. They can use this form or call the API directly: start with GET /api/crowdsource/challenges and use the submission schema in OpenAPI.

03 · Rules

What you can test

Please limit testing to the challenge files and the documented submission API.

Allowed

Static analysis, local instrumentation, browser hooks, symbolic reasoning, custom tools, and autonomous agents against downloaded artifacts.

Out of scope

Production infrastructure, denial of service, account attacks, third-party scripts, imported libraries, and accessing another contributor's submission.

Data handling

Do not submit personal data or third-party secrets. Evidence is moderated and may be retained to reproduce and fix defensive gaps.