SourceGuardian XenForo Add-on Source Recovery
For XenForo add-on owners who need readable PHP from a SourceGuardian-protected add-on to maintain listeners, entities, and controllers on their own forum.
XenForo add-ons are tightly integrated pieces of software. An add-on registers itself through an addon.json manifest, hooks into the forum through code event listeners, extends core classes with its own entities and repositories, adds controllers and admin pages, and ships template modifications and phrases. When the PHP in a SourceGuardian-protected add-on is encoded, the add-on installs and runs, but the readable source you would need to maintain it against new XenForo releases is missing.
If you own that add-on, or you have written permission from its developer to restore its source, recovering readable PHP is a legitimate maintenance task. This guide covers why forum owners and add-on authors need it, how a XenForo add-on is put together, what to gather, and what recovered source provides. It stays away from how recovery works internally.
Why XenForo Add-on Source Goes Missing
The XenForo add-on market is full of small independent developers. That is a strength, but it means add-ons are abandoned regularly. A developer stops supporting a product, leaves the community, or shuts down and takes the source with them. Meanwhile the add-on is still installed on live forums that depend on it.
XenForo itself moves forward. A jump from one minor version to the next can change class signatures, entity structures, or listener hints that an encoded add-on was written against. Without readable source, a forum owner cannot adjust the add-on to a new XenForo release, and an incompatible add-on can break the whole board. Owners who acquired an add-on's rights, or who wrote it themselves and lost the working tree, face the same wall.
Confirming Your Right to Recover
Recover only an add-on you own or are explicitly authorized to restore. That includes an add-on you developed and lost the source for, an add-on whose rights you acquired, or one you maintain under written permission from the author. If the add-on is a currently sold, supported product from an active developer, contact them first. Establish your ownership once and keep the evidence handy.
How a XenForo Add-on Is Structured
XenForo add-ons follow a strict, discoverable layout under src/addons/VendorId/AddonId/. A typical add-on contains:
addon.json, the manifest describing the add-on, version, and requirements.Listener.phpor aListener/directory, holding the code event listeners that hook into core.Entity/, custom Doctrine-like entities that define the add-on's database structure.Repository/, data access classes for those entities.Pub/Controller/andAdmin/Controller/, the public and admin request handlers.Setup.php, which runs install, upgrade, and uninstall steps including schema changes._data/, XML exports of phrases, templates, options, and other metadata, which are readable already.
The encoded logic worth recovering is the PHP: listeners, entities, repositories, controllers, and the setup class. The _data/ XML and templates are typically not encoded and remain readable to pair with recovered code.
What to Gather Before You Start
Submit the entire add-on directory under src/addons/VendorId/AddonId/, not just one file. The setup class references entities, controllers extend base classes, and listeners call into repositories, so recovering everything together keeps those relationships intact.
Record the add-on version from addon.json, the XenForo version your board runs, and the PHP version on your server. Keep the _data/ directory and any templates exactly as they are, since they carry the phrases, options, and template modifications that go with the recovered PHP. Our SourceGuardian decoder is built for owner-authorized recovery of exactly this kind of encoded add-on.
What Recovered Source Looks Like
Recovered XenForo add-on code is readable PHP that follows the framework's conventions. You will see your listener methods with the parameters XenForo passes them, your entity classes with their column and relation definitions, your repositories and their finder methods, your public and admin controllers with their actions, and the setup steps that build and alter the schema. That is what lets you adjust the add-on when a XenForo upgrade changes an underlying class.
Be realistic about the details. Comments are usually not recovered because they are stripped before encoding. Local variable names inside methods may be normalized. The structure, the entity definitions, the listener wiring, and the control flow are faithful, which is exactly what add-on maintenance needs.
Getting the Add-on Maintainable Again
Once you have readable source, set up a proper development flow. Put the add-on directory under version control. Install the recovered add-on on a test forum that mirrors your production XenForo version, then rebuild the add-on from the development perspective so the _data/ files and code line up. Exercise the front-end features and the admin pages the controllers drive.
With source in hand you can update the add-on for a newer XenForo release, adjust entities if the core schema changed, and address any PHP deprecations. For a broader view of how PHP structures appear in recovered output, our PHP decompiler page is a helpful companion.
FAQ
Do I need to recover the _data/ XML files?
No. Phrases, templates, options, and other _data/ exports are XML and are normally readable already. Only the encoded PHP, the listeners, entities, repositories, controllers, and setup class, needs recovery.
Will the recovered add-on still install cleanly on my forum?
Recovered PHP keeps the same class and method names XenForo expects, so once you rebuild the add-on with its _data/ files present, it installs and upgrades through the normal add-on flow.
Can you recover the Setup.php so I can see the schema changes?
Yes. The setup class is recovered along with the rest of the PHP, so you can read the install, upgrade, and uninstall steps and the schema modifications they perform.
Is this allowed if the original developer disappeared? Recovery is appropriate when you own the add-on or hold written permission to restore it. A developer being unreachable does not by itself transfer rights, so make sure you actually own or are authorized for the add-on. Our FAQ explains authorization further.
How much does add-on recovery cost? It depends on how many encoded PHP files the add-on contains and their size. See pricing for the details on add-on-scale recoveries.
If you own or are authorized to maintain an encoded XenForo add-on, start with a free trial or create an account to recover readable source for your board.
Related Articles
Recovering Source From a SourceGuardian WordPress Plugin
Recover readable PHP from a SourceGuardian WordPress plugin you own. Owner-focused source recovery to regain control of your site's code and roadmap.
SourceGuardian WHMCS Module Source Recovery
Own a SourceGuardian-protected WHMCS module? Recover its readable PHP source so you can audit, maintain, and safely update your billing automation.
SourceGuardian Magento Extension Source Recovery
Recover readable source from a SourceGuardian Magento extension you own, so you can audit, patch, and keep your store compatible across Magento upgrades.
Decoder Guides
Ready to decode ionCube and SourceGuardian files?
Try PHPDecompile free. No credit card required.