Echidna Enters a New Era of Symbolic Execution

(gustavo-grieco.github.io)

22 points | by galapago 3 days ago

3 comments

  • mac-monet 1 hour ago
    Started using this recently, extremely impressed with this tool's capabilities. The only issue is the TUI is absolutely miserable to use.

    One of the biggest pain points for debugging failures that Echidna finds is the path of getting the failure into a forge test that I can replay, and then slowly diagnosing where the bug is stemming from. An alternative path that could be useful is to stream the function call sequence (with the option to disable traces as well) to a file. This would allow easily creating a forge test from it. This file could even be used to generate a test and be diagnosed by a coding agent. Resolving the "last mile" of finding these failures would make the DX absolutely top tier.

    • hackhomelab 17 minutes ago
      What are you missing from the TUI? The latest version has improved it a bit, it's more responsive now and you can navigate around the UI with the keyboard more easily (tab, up/down arrows, and pgup/pgdown). If you don't like it though, you can also use `--format text` for a UI-less experience that just prints things to stdout.

      As for converting failures into forge tests, there's multiple tools offering a solution to that problem; check out (in no particular order):

        * the Recon VSCode extension (https://github.com/Recon-Fuzz/recon-extension)
        * fuzz-utils (https://github.com/crytic/fuzz-utils)
        * runes (https://github.com/Enigma-Dark/runes)
        * fuzz_parser (https://github.com/Enigma-Dark/fuzz-trace-parser)
      
      Some of them use the Echidna trace output, while others (like runes and fuzz-utils) take advantage of the fact that Echidna saves these sequences as part of the corpus during runtime (particularly, in the `reproducers` and `reproducers-unshrunk` corpus subdirectories)
  • homarp 10 hours ago
    echidna is an Ethereum smart contract fuzzer
  • rich_sasha 14 hours ago
    When I saw the headline, I thought the poor creatures are being executed, in a symbolic way.
    • cwmoore 8 hours ago
      Somehow I read execution as “extinction” and immediately blamed the platypus. Not my area.