随笔分类 - BlockChain
区块链相关
摘要:blockchain | web3.py交互模板 exp: from web3 import Web3 from web3.middleware import SignAndSendRawMiddlewareBuilder import json w3 = Web3(Web3.HTTPProvide
阅读全文
摘要:blockchain | evm字节码 深入以后发现,evm字节码真的太简单啦!!!我最喜欢这样子简约的设计了,基于栈的虚拟机,只有push指令可以将bytecode中的参数压栈,其他的都只是基于栈或者环境的操作。 项目地址:https://github.com/Mz1z/mzevmjs.git 依
阅读全文
摘要:# blockchain | 论文阅读 | sFuzz: An Efficient Adaptive Fuzzer for Solidity Smart Contracts > sFuzz: An Efficient Adaptive Fuzzer for Solidity Smart Contra
阅读全文
摘要:# blockchain | ethernaut 12 Privacy 这关考察private变量读取和转换。 合约: ```solidity // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Privacy { boo
阅读全文
摘要:# blockchain | ethernaut 11 Elevator 这关就是简单的合约交互,以及view/pure函数的编写。 合约: ```solidity // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface B
阅读全文
摘要:# blockchain | ethernaut 09 King 这关考察的是合约地址转账时的细节。 在合约中进行转账可以transfer,send,或者底层的call。 transfer如果出错会回退撤销执行。 所以如果transfer到一个不接受转账的合约地址,就没办法成功。 题目合约如下: `
阅读全文
摘要:# blockchain | ethernaut 08 Vault 这关考察读取私有变量,直接getStorageAt即可。 顺便说明: web3.js读取public变量可以直接contract.methods.[变量名].call()获取 对于私有变量需要用插槽位置的方式去读。 exp: ```
阅读全文
摘要:# blockchain | ethernaut 07 Force 考察给一个合约强制转账,在一个合约selfdestruct()的时候是可以指定转账地址的。 exp: hack合约: ```solidity pragma solidity ^0.8.0; contract Hack { const
阅读全文
摘要:# blockchain | ethernaut 05 Token 考察无符号整数溢出。 合约: ```solidity // SPDX-License-Identifier: MIT pragma solidity ^0.6.0; contract Token { mapping(address
阅读全文
摘要:# blockchain | ethernaut 04 Telephone 这关展示了tx.origin和msg.sender之间的区别。 msg.sender是直接调用者。 tx.origin是这次交易的发起者。 合约如下: ```solidity // SPDX-License-Identifi
阅读全文
摘要:# blockchain | Ethernaut 03 coin flip 投硬币合约,用区块哈希来当随机数。 合约代码: ```solidity // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract CoinFlip {
阅读全文
摘要:# Blockchain | geth1.12的一些问题 最近重装了geth,是最新的geth version 1.12.2-stable-bed84606 但是这个版本似乎挖不了矿了,不再PoW了。 ![image](https://img2023.cnblogs.com/blog/2154950
阅读全文
摘要:# Blockchain | web3.js 合约交互模板 最近发现ethers.js没有想象的那么好用了。。。 就换成了web3.js。 环境是node和web3.js v4。 这玩意儿还是得看文档,很麻烦,嗐,方法又多又烂,难用。 ```javascript const Web3 = requi
阅读全文
摘要:blockchain | 交叉编译armv8的pbc库 这块儿网上是没啥具体的资料的,因为要测试pbc库在安卓上的性能,但是网上pbc的支持只到armv7,就只能自己编译了。 大致流程: 下载gmp库源码 下载pbc库源码 编译gmp 编译pbc 编译测试程序 这里使用的是aarch64-linux
阅读全文
摘要:blockchain | 基于ethers.js的ctf合约攻击模板 之前做题用的是truffle命令行和truffle exec来进行编写代码,封装的层级比较高,这个框架主要还是用来开发比较方便,看了大师傅的wp(https://www.seaeye.cn/archives/497.html)以后
阅读全文
摘要:blockchain | 区块链安全靶场 The Ethernaut 最近在学这一块,找个靶场玩玩:https://ethernaut.openzeppelin.com/ 可以参考:https://blog.csdn.net/rfrder/article/details/115572137 需要提前
阅读全文
摘要:blockchain | 使用truffle测试合约 使用truffle test功能对之前的合约进行测试 参考:https://www.qikegu.com/docs/4816 本质上的过程还是部署到测试链子上,然后进行一系列操作。 如果要临时环境还可以用truffle develop进行创建:h
阅读全文
摘要:blockchain | truffle console 访问合约 今天用truffle console来测试昨天部署的合约。 一开始报错invalid opcode,查了一下还是创世区块配置的问题,这里贴上最新的配置文件: { "config":{ "chainId": 15, "homestea
阅读全文
摘要:blockchain | 通过truffle编写合约 有了前两篇环境搭建的基础,开始编写智能合约。(虽然部署了geth,但是truffle也有自带的私有链子环境可以用) 参考官方文档: https://learnblockchain.cn/docs/truffle/quickstart.html#c
阅读全文
摘要:blockchain | geth环境搭建 下载地址: https://geth.ethereum.org/downloads 使用geth来搭建私链环境。 参考文章: https://blog.csdn.net/TANGYAO97/article/details/112903323 # windo
阅读全文