blockchain | ethernaut 05 Token
blockchain | ethernaut 05 Token
考察无符号整数溢出。
合约:
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
contract Token {
mapping(address => uint) balances;
uint public totalSupply;
constructor(uint _initialSupply) public {
balances[msg.sender] = totalSupply = _initialSupply;
}
function transfer(address _to, uint _value) public returns (bool) {
require(balances[msg.sender] - _value >= 0);
balances[msg.sender] -= _value;
balances[_to] += _value;
return true;
}
function balanceOf(address _owner) public view returns (uint balance) {
return balances[_owner];
}
}
uint相减仍然uint没必要管直接转账21出去溢出就行。
如果有问题可以在下方评论或者email:mzi_mzi@163.com