本文主要是介绍关于EVM 和 solidity语言一些内部机制的研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
以下都是来自我的新作《解密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()"))));
}
这篇关于关于EVM 和 solidity语言一些内部机制的研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!