All posts
Guide
3 min read

IonCube Dynamic Keys Are Supported

IonCube dynamic keys protect individual functions with runtime callback keys. DecodePHP supports them, and can use extra context when the key logic lives in an included file.

Not every IonCube file hides all its functions behind one static layer. Some use dynamic keys, where a callback function runs at runtime, returns a key, and IonCube uses that key to unlock specific protected functions.

What dynamic keys do

A dynamic key lets a protected file say, in effect: before this function runs, call this other PHP function and use whatever it returns as the decryption key. The callback can be trivial, or it can depend on config values, tenant data, license state, request variables, included files, or bootstrap code.

Vendors like this because the key isn't sitting in the encoded file for anyone to read. It also means a decoder sometimes needs more than the single encoded file to recover every function body.

How DecodePHP handles dynamic keys

We detect callback-key protected sections. Ordinary anonymous and no-credit public previews stop with guidance and do not run AI-assisted recovery. On a charged, trusted-account, or approved trusted-partner decode, our recovery agent can test context and candidate mappings in isolated microVMs. Supplied context and relevant decoded fragments may be sent to our configured third-party model provider.

Recovery is not guaranteed. A result is complete only after validation shows no protected sections remain; otherwise the service returns a concrete blocker describing the missing context. A viewable partial callback result uses one credit, while an attempt with no viewable result does not.

If the key comes from an included file, paste or upload that extra context when we ask for it. The pieces that usually help:

  • The PHP file that defines the callback function.
  • Any config or bootstrap file that sets variables the callback reads.
  • Runtime constants, license values, tenant settings, or environment values that feed into the key.
  • A JSON key map, if you already know the key for each protected function.

What if the context is missing?

If the file calls a callback that isn't present, a charged recovery can preserve viewable partial output and return a blocker that describes what context is missing. Ordinary public previews stop with guidance instead of exposing unresolved output; approved trusted-partner preview routes may run assisted recovery.

The order that works best: upload the encoded file first. If the free preview reports callback-key protection, use a charged account decode and add the callback file or related runtime context if requested.

Try it

Got a file with IonCube dynamic keys? Start with the free preview to identify the requirement. Charged recovery supports recognized IonCube 10–15 builds targeting PHP 5.0–5.6, 7.1–7.4, or 8.1–8.4 when the needed context is available.

Ready to decode your IonCube files?

Upload a file and preview the first 20 lines for free. No account required.

Try It Free