Skip to content

xuing/EVM-Shield

 
 

Repository files navigation

EVM-Shield

  • AST_JSON
    • AST files for all contracts
  • CSV
    • Static analysis results
  • contracts
    • All contract datasets
  • exp_1
    • Replay vulnerability detection results for 8 million blocks
  • exp_2
    • Vulnerability contracts used for comparison experiments
  • geth_shield
    • geth, an Ethereum client embedded with EVM-Shield
  • static_analysis
    • Static analysis is performed on the contract code and the abstract syntax tree
  • policy translator
    • Policy translator
  • baseline
    • Utilizing Txtrace. to evaluate soda && aegis attack patterns.
  • hyperbench

How to use EVM-Shield

If you want to fully synchronize the mainnet, simply configure mongoDB and change the shield in contract.go to record instead.

We also provide an up-to-date version of the ethereum client with built-in mongoDB, which can fetch control flow and data flow information for all transactions. Please click here.

Setting up a private chain with geth and connecting to remix.

1. Compile Geth from Source

git clone https://github.com/helloswx/EVM-Shield.git
cd geth_shield
make geth
make all

2. Initialize the Private Chain

For initializing a new private chain, you'll need a genesis block file, e.g., genesis.json.

Use the above genesis block to initialize the private chain:

./build/bin/geth init genesis.json --datadir ./myPrivateNetwork

3. Start the Private Chain

./build/bin/geth --datadir ./myPrivateNetwork --networkid 15 --nodiscover --rpc --rpcapi="personal,db,eth,net,web3,txpool,miner" --rpcport "8545" --rpcaddr "127.0.0.1" --rpccorsdomain "*" --allow-insecure-unlock console

4. Connect to Remix

Finally, you can send the hexadecimal policy to the smart contract through Low level interactions in remix.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published