KS note – Telegram
KS note
495 subscribers
61 photos
2 files
71 links
・ Web3 & etc.

🥷⛓️🍷 @MostPow3rful
Download Telegram
0️⃣ #ETHERNAUT #level_0 #Hello_Ethernaut

🥷🍷 <Happy Hacking/>
1️⃣ #ETHERNAUT #level_1 #Fallback

🥷🍷 <Happy Hacking/>
2️⃣ #ETHERNAUT #level_2 #Fallout

i solved this challenge using cast :
cast send $CHALLENGE_CONTRACT_ADDRESS "Fal1out()" --rpc-url $RPC_URL --private-key $PRIVATE_KEY

but i wrote the Solidity code too.

🥷🍷 <Happy Hacking/>
3️⃣ #ETHERNAUT #level_3 #Coin_Flip

must run Attack.sh file to solve the challenge

🥷🍷 <Happy Hacking/>
4️⃣ #ETHERNAUT #level_4 #Telephone

must run the attack() function using cast:
cast send $CHALLENGE_CONTRACT_ADDRESS "attack(address)" $PLAYER_ADDRESS --rpc-url $RPC_URL --private-key $PRIVATE_KEY


🥷🍷 <Happy Hacking/>
5️⃣ #ETHERNAUT #level_5 #Token

🥷🍷 <Happy Hacking/>
6️⃣ #ETHERNAUT #level_6 #Delegation

must solve this challenge using cast and call the challenge contract :
cast send $CHALLENGE_CONTRACT_ADDRESS "pwn()" --rpc-url $RPC_URL --private-key $PRIVATE_KEY

but i wrote the Solidity Code too,

🥷🍷 <Happy Hacking/>
7️⃣ #ETHERNAUT #level_7 #Force

🥷🍷 <Happy Hacking/>
8️⃣ #ETHERNAUT #level_8 #Vault

you can access the private variables using cast :
cast storage $CHALLENGE_CONTRACT_ADDRESS 1 --rpc-url $RPC_URL


🥷🍷 <Happy Hacking/>
9️⃣ #ETHERNAUT #level_9 #King

🥷🍷 <Happy Hacking/>
🔟 #ETHERNAUT #level_10 #Re_entrancy

🥷🍷 <Happy Hacking/>
1️⃣1️⃣ #ETHERNAUT #level_11 #Elevator

🥷🍷 <Happy Hacking/>
🔥1
1️⃣2️⃣ #ETHERNAUT #level_12 #Privacy

you can access the private variables using cast :
cast storage $CHALLENGE_CONTRACT_ADDRESS 5 --rpc-url $RPC_URL


🥷🍷 <Happy Hacking/>
🧩 Function's Correct order

[public/external/internal/private] [view/pure/none] [payable|OPTIONAL] [virtual|OPTIONAL] [override|OPTIONAL] [customModifier|OPTIONAL] [returns|OPTIONAL]
🔎 Decode The `msg.data`

⁉️ Why msg.data[4:] => Because the first 4-byte of data is function signature

// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

contract Decode {
function run(
string memory _i1,
address _i2,
uint256 _i3,
bool _i4
) public pure returns (
string memory,
address,
uint256,
bool
) {
return abi.decode(
msg.data[4:],
(string,address,uint256,bool)
);
}
}