The code is there.
Make it readable.
From EVM bytecode to high-fidelity Solidity. AlphaLift compiles the recovered code, checks its behavior against the original, and keeps refining it whenever a mismatch is found.
function _renounce() private { _onlyOwner(); address oldOwner = _owner; _owner = address(0); emit OwnershipTransferred( oldOwner, address(0) );}FIG. 01 Public output excerpt. Input bytecode is illustrative.
Readable is the beginning.
Behavior is the test.
AlphaLift treats decompilation as an iterative reconstruction problem. Recovered Solidity is compiled back to bytecode and subjected to differential checking against the original contract. Every detected behavioral mismatch becomes a concrete case to correct, then check again.
Solidity that compiles
Produce actual Solidity source and compile it back to EVM bytecode, making the reconstruction available for direct comparison.
Actively search for differences
A differential checker searches for cases where the reconstructed bytecode behaves differently from the original.
Refine until checks are clean
Use each counterexample to refine the code. Repeat until sustained checking finds no behavioral mismatch.
The stopping criterion is no mismatch detected during the checking window. This is evidence of behavioral fidelity, not a proof of equivalence for every possible execution.
The output speaks
for itself.
Real bytecode. Reconstructed Solidity.
A selection of publicly available decompilations.
An exploited contract on Base
Reconstructed storage, access control, and contract logic from deployed bytecode.
Inside the attacker’s contract
A Solidity reconstruction of the attacker contract involved in a $23.76K exploit.
Making closed source readable
Decompiled output from an exploited contract with no published source code.
Public source files hosted on GitHub Gist. No account required to read.
Have bytecode?
Let’s take a closer look.
Send the contract address, network, and a little context.
Get in touch to discuss a decompilation.