09 2023 档案

摘要:blockchain | evm字节码 深入以后发现,evm字节码真的太简单啦!!!我最喜欢这样子简约的设计了,基于栈的虚拟机,只有push指令可以将bytecode中的参数压栈,其他的都只是基于栈或者环境的操作。 项目地址:https://github.com/Mz1z/mzevmjs.git 依 阅读全文
posted @ 2023-09-11 17:39 Mz1 阅读(40) 评论(0) 推荐(0) 编辑
摘要:# blockchain | 论文阅读 | sFuzz: An Efficient Adaptive Fuzzer for Solidity Smart Contracts > sFuzz: An Efficient Adaptive Fuzzer for Solidity Smart Contra 阅读全文
posted @ 2023-09-07 17:14 Mz1 阅读(195) 评论(0) 推荐(0) 编辑
摘要:# blockchain | ethernaut 12 Privacy 这关考察private变量读取和转换。 合约: ```solidity // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Privacy { boo 阅读全文
posted @ 2023-09-06 16:39 Mz1 阅读(23) 评论(0) 推荐(0) 编辑
摘要:# blockchain | ethernaut 11 Elevator 这关就是简单的合约交互,以及view/pure函数的编写。 合约: ```solidity // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface B 阅读全文
posted @ 2023-09-06 14:41 Mz1 阅读(11) 评论(0) 推荐(0) 编辑
摘要:# blockchain | ethernaut 09 King 这关考察的是合约地址转账时的细节。 在合约中进行转账可以transfer,send,或者底层的call。 transfer如果出错会回退撤销执行。 所以如果transfer到一个不接受转账的合约地址,就没办法成功。 题目合约如下: ` 阅读全文
posted @ 2023-09-06 11:26 Mz1 阅读(38) 评论(0) 推荐(0) 编辑
摘要:# blockchain | ethernaut 08 Vault 这关考察读取私有变量,直接getStorageAt即可。 顺便说明: web3.js读取public变量可以直接contract.methods.[变量名].call()获取 对于私有变量需要用插槽位置的方式去读。 exp: ``` 阅读全文
posted @ 2023-09-05 17:14 Mz1 阅读(19) 评论(0) 推荐(0) 编辑
摘要:# blockchain | ethernaut 07 Force 考察给一个合约强制转账,在一个合约selfdestruct()的时候是可以指定转账地址的。 exp: hack合约: ```solidity pragma solidity ^0.8.0; contract Hack { const 阅读全文
posted @ 2023-09-02 17:04 Mz1 阅读(20) 评论(0) 推荐(0) 编辑
摘要:# blockchain | ethernaut 05 Token 考察无符号整数溢出。 合约: ```solidity // SPDX-License-Identifier: MIT pragma solidity ^0.6.0; contract Token { mapping(address 阅读全文
posted @ 2023-09-01 16:19 Mz1 阅读(11) 评论(0) 推荐(0) 编辑
摘要:# blockchain | ethernaut 04 Telephone 这关展示了tx.origin和msg.sender之间的区别。 msg.sender是直接调用者。 tx.origin是这次交易的发起者。 合约如下: ```solidity // SPDX-License-Identifi 阅读全文
posted @ 2023-09-01 15:58 Mz1 阅读(12) 评论(0) 推荐(0) 编辑