区块链骇客第五讲-委托调用攻击 本篇文章是call注入攻击的姊妹篇,为啥这么说呢? 因为委托调用攻击核心函数便是 delegatecall() 难度:偏难,但理解了就非常简单 📕1. 挑战? 这是Ethernaut中的第十六个例子(已修改) 现在把需求交给你:将合约Preservation的所有权拿到手。 你会先想到什么?这个例子非常典型 12345678910111213141516171819202122232425 2022-11-28 区块链骇客 #合约安全审计 #delegatecall
yarn基本操作workplace工作区12345#查看工作区详情yarn workspaces info/list#选定工作区安装yarn workspace <package-name> add ... 安装12345#直接安装当前文件夹中package.json的依赖yarn install#过在项目中设置所需的版本yarn set version 2.4.0 2022-11-20
狠人!用Python从零敲出一个以太坊虚拟机-2 [TOC] 📕介绍在这一部分,我们将拓展指令集,重点在于: 分支指令 循环和条件 跳转目的验证 堆栈操作指令(DUP,SWAP,PUSH) 让我们开始吧! 🌳分支指令这些指令允许我们操作程序计数器,即下一条要运行的指令在代码缓冲区中的位置: JUMP 从堆栈中弹出一项并且将程序设置成这个新值。 JUMPI如果第二个参数(一个条件)不为零,则执行相同的操作,否则执行道吓一跳指令。 用我们简 2022-11-11 区块链 > 以太坊虚拟机 #EVM虚拟机 源码构建
区块链安全威胁汇总 [TOC] 目前来看,区块链安全威胁总分为五类。 自上而下分为:数据层、网络层、共识层、合约层以及应用层。 本篇文章为概览,并不详细展开讲解~ 💎数据层 数据层、网络层和共识层是区块链技术体系中最基础最必要的三个层级。 而数据层是其中最重要的一层,主要涉及区块链的数据结构、数字签名、哈希函数等密码学工具。 区块链数据层主要面临的安全威胁主要包含:数据隐私窃取和恶意数据。 🈲数据隐私窃取 2022-11-08 区块链 合约安全审计 #区块链 总览
狠人!用Python从零敲出一个以太坊虚拟机-1 [TOC] 📕介绍阅读完Cupid的 Playdate with the EVM 这篇文章后,我非常享受,但想要更多地去实践操作。 因此让我们尝试从头开始去构建一个以太坊虚拟机(EVM)!只参考以太坊黄皮书(yellow paper ) 在第一部分,我们将去构建: 一个基本的堆栈(stack) 一个基本的临时存储器(memory) 代码缓冲区 一些指令 一个指令编译器 一个基础的提取解码循环 2022-11-08 区块链 > 以太坊虚拟机 #EVM虚拟机 源码构建
区块链骇客第四讲-破解私有变量 前情提示:本篇文章较为硬核,需读者有一定开发基础。 本篇文章将会以ethernaut中的第8和第12个例子来剖析智能合约中的私有变量。 首先给大家留个疑问:私有变量真的意味着私密不可窥探吗? 答案可以先告诉大家:当然不是! Everything is public on the blockchain! 在区块链中,任何东西实际上都是公开的!没有什么东西使真正私有的,即使一个变量是priv 2022-11-07 区块链骇客 #合约安全审计 私有变量
最全!Solidity全局变量及API 1. 区块和交易属性API blockhash(uint blockNumber) block.coinbash(address) block.difficulty(uint) 获得当前区块难度 block.gaslimit(uint) block.number(uint) block.timestamp(uint) gasleft() returns(uint256) msg.data(byte 2022-11-04 区块链 > 基础知识 #智能合约 基础知识
区块链骇客第三讲-Call注入攻击 2018年6月20日,ATN代币团队发布《ATN抵御黑客攻击的报告》,报告指出黑客利用call注入攻击漏洞修改合约拥有者,然后给自己发行代币,从而造成 ATN 代币增发,造成数千万美金的损失。 call()函数,对于写合约的人来说并不陌生,对合约感兴趣的呢更是必备了解。 📕call( ) 函数的特性 研究一个函数的攻击点,要从它的特性下手。 call()是调用第三方合约函数的底层接口,有 2022-11-03 区块链骇客 #合约安全审计 call注入攻击
区块链骇客第二讲:被禁用的自毁函数 1. What? 在区块链中删除代码的唯一方法是该地址的合约执行自毁操作,即 selfdestruct()。 存储在该地址的剩余以太被发送到指定目标,然后从该状态中删除存储和代码。 12345678910// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract Example{ constructor(addre 2022-11-01 区块链骇客 #合约安全审计