AlphaLift

EVM bytecode analysis

Solidity reconstruction
with behavioral checking

AlphaLift recovers readable Solidity from EVM bytecode. It compiles the reconstructed source, compares its behavior with the original contract, and uses detected differences to refine the result.

Method

Reconstruction guided by counterexamples.

Decompilation is treated as an iterative reconstruction problem. Readable source is the starting point; comparison with the original bytecode guides subsequent revisions.

Reconstruct and compile
Recover Solidity source and compile it back to EVM bytecode for direct comparison.
Search for differences
A differential checker searches for executions in which the reconstructed contract behaves differently from the original.
Refine and repeat
Use each counterexample to correct the reconstruction, then repeat until sustained checking finds no mismatch.
Recovered SolidityOwnership logic
function _renounce() private {
    _onlyOwner();
    address oldOwner = _owner;
    _owner = address(0);
    emit OwnershipTransferred(
        oldOwner, address(0)
    );
}
Excerpt from a public decompilation.View source

Selected decompilations

All public outputs

Reconstructed Solidity from deployed contracts, available for inspection on GitHub Gist.

Decompilation enquiries

To discuss a contract, send its address, network, and a brief description of the analysis you have in mind.

Contact @256cisco on X