這一關的目標是使合約的餘額大於 0
這題目標是讓合約地址有錢,向合約轉帳可以透過:
payable
屬性的 functionreceive()
payable
屬性的 fallback()
但是當合約中沒有 receice()
和 fallback() payable
時,直接向地址轉帳會出錯並回滾。所以這題不能使用上述方法,這邊要考的是 selfdestruct
selfdestruct 是合約的自毀功能,可以使合約把自己消除。當合約消除自己時,會把合約中剩餘的資產都打到指定的地址中。所以我們要建立一個合約並向裡面存一些錢,再讓它自毀並指定把錢轉進關卡的地址中,攻擊如下:
關於自毀合約,可以參考以下文章: