FuzzingLabs / thoth

Cairo/Starknet security toolkit (bytecode analyzer, disassembler, decompiler, symbolic execution, SBMC)
https://fuzzinglabs.com/
GNU Affero General Public License v3.0
245 stars 21 forks source link

Sym exec instructions in README are not clear #110

Closed ggballas closed 1 year ago

ggballas commented 1 year ago
  1. No explanation on -variables flag. what is it? is it used to constrain function variables? why can't they just be constrained with the -constraint flag?

  2. Can constraints have !=, >, or < ? Not clear from instructions. If not, then this is definitely a suggestion from me.

Thanks for a great tool either way:)

Rog3rSm1th commented 1 year ago

Hello,

For the first point the -variables flag is used to set the value of a variable to a specific value (for example when a variable is assigned using a function call and it's value is unknown).

Concerning the second point for now it is only possible to define constraints using the == operator.

Thanks for your feedback and suggestions it is very helpful!

ggballas commented 1 year ago

okay, thank you for the answer.

about the -variables flag, let's say I have this decompiled line of code:

...
let (v551_res) = read()
...

what would be the difference between setting v551_res using the -constraint flag vs. using the -variables flag?

pventuzelo commented 1 year ago

Should be good now with the new version "0.7.0" ;)