nevillegrech / gigahorse-toolchain

A binary lifter and analysis framework for Ethereum smart contracts
Other
295 stars 61 forks source link

Improved Vyper support #54

Closed sifislag closed 1 year ago

sifislag commented 1 year ago

This PR includes 2 important additions:

  1. Support for a new vyper selector pattern (finding 30% more public functions on a dataset of 800+ vyper contracts).
  2. Added block cloning round for all decompiler configs, targeting REVERT blocks. These blocks are reused in many cases and often with different memory arguments. Cloning these blocks can help source decompilation (with output control flow being more clear) and memory modeling. Helps both solidity and vyper contracts.

Also contains a few bugfixes: