EOS代码审计
EOS代码审计
FLy_鹏程万里
国内网络安全研究员,专注于Web渗透、移动安全、代码审计、应急响应、内网渗透、区块链安全、云安全等研究方向,擅长渗透测试、红蓝对抗、内网渗透、云安全、区块链安全。
展开
-
EOS之发币eosio.token智能合约解析
一、eosio.token.hpp文件结构#pragma once// 引入 资产(asset) 类型#include <eosiolib/asset.hpp>// 引入其他基础文件定义文件,包括一些其他类型,譬如account_name#include <eosiolib/eosio.hpp>#include <string>names...转载 2018-12-18 08:55:49 · 623 阅读 · 2 评论 -
EOS 回滚攻击手法分析之黑名单篇
事件背景2018 年 12 月 19 日,众多游戏类 DApp 遭遇交易回滚攻击,其中包括 BetDice,EOSMax,ToBet 等。按当时 18 元人民币的价格计算,损失超过 500 万人民币。期间 BetDice 通过链金术平台发出多次公告,一度造成恐慌。与此同时,慢雾安全团队对交易所和中心化钱包给出了暂时性的方案。此刻,攻击手法依旧是一个谜团。那么,攻击手段究竟是怎样的呢?在...转载 2019-01-08 11:05:48 · 431 阅读 · 0 评论 -
EOS回滚攻击手法分析之重放篇
事件背景据慢雾区情报,今日凌晨,攻击 BetDice、ToBet 等游戏的黑客团伙再次对 LuckyMe、GameBet 发动攻击,造成数千 EOS 的损失。经过慢雾安全团队的分析,此次黑客采用的手法有别于上一次的攻击。本次的攻击为针对项目方的重放攻击。攻击回顾据慢雾安全团队威胁情报分析,截止北京时间上午 8 时,攻击者 ultnavrzhium 此次攻击共投入金额 3773....转载 2019-01-08 11:26:58 · 1057 阅读 · 0 评论 -
Multi_index详解
Multi-Index API 简介1、Multi-Index API 是EOS提供的访问数据库的C++接口,使智能合约能够读取和修改EOS数据库中的数据;2、Multi-Index源文件位置在:eos/contracts/eosiolib/multi_index.hpp;3、Multi-Index来源于boost库的boost::multi_index,但又有一些重要不同,eos中使用e...转载 2019-01-16 15:52:18 · 2462 阅读 · 0 评论 -
eosio.token.hpp解析
#pragma once#include <eosiolib/eosio.hpp> //大部分智能合约所要用到的接口库,包含一些基础文件、定义文件#include <eosiolib/asset.hpp> //定义了资产(数和量的资产 数:多少, 量:种类(ETH,BTC等))#include <string>namespace ...原创 2019-01-16 16:28:36 · 302 阅读 · 0 评论 -
eosio.token.cpp之创建资产
#include <eosio.token/eosio.token.hpp>namespace eosio{ /* *函数说明:创建资产种类和属性 参数: issuer 发币人 maximum_supply 发币的最大量 ...原创 2019-01-16 17:05:24 · 309 阅读 · 0 评论 -
eosio.token.cpp之发行资产
/* *函数说明:发行资产 参数: to 给谁 quantity 数量 memo 备注 */ void token::issue(account_name to,...原创 2019-01-16 17:31:40 · 293 阅读 · 0 评论 -
eosio.token.cpp之交易资产
//交易资产 //from 谁转出来 //to 转给谁 //quantity 数量 //memo 转账的时候的备注 void token::transfer(account_name from , account_name to, asset quantity, string me...原创 2019-01-16 17:37:59 · 235 阅读 · 0 评论 -
eosio.token.cpp之增加资产
//owner 要被增加资产的账户 // value 要增加资产的数量 // st 当前资产的状态(是否被锁定,是否在白名单) &左值引用 &&右值引用 //ram_payer 是用来支付(交易)数据库操作的内存资源的账户 void token::add...原创 2019-01-16 17:46:07 · 257 阅读 · 0 评论 -
eosio.token.cpp之减少资产
// 减资产 // owner 资产的拥有者 // value 资产的减少值 // st 该资产的状态 void token::subbalance(account_name owner,asset value, const currency_states& st){ accounts ...原创 2019-01-17 09:10:10 · 217 阅读 · 0 评论 -
EOS REX 安全系列之从源码开始玩转 REX(一)
前言伴随着 REX 提案终于被 BP 们投票通过,炒了半年概念的 REX 终于上线了,这个号称稳赚不亏的投资项目吸引了众多人的目光,同时也霸占了各大区块链媒体的头条,其火热程度不亚于平台币,一上线便涌入了大量的资金。但是REX 究竟是什么呢?REX 又有什么用?本系列基于 rex1.6.0-rc2 源码进行分析,给出相关的细节及答案。什么是 REXREX,全称 Resource ...转载 2019-05-14 09:47:14 · 766 阅读 · 0 评论 -
竞猜类游戏Fastwin遭黑客攻击背后:Block.one官方悄然做了重大更新
12月05日,新上线的又一款EOS竞猜类游戏 Fastwin 遭到黑客攻击,区块链安全公司 PeckShield 态势感知平台捕捉到了该攻击行为并率先进行了安全播报披露。数据显示,当天凌晨03:18—04:15之间,黑客(ha4tsojigyge)向Fastwin游戏合约(fastwindice3)发起124次攻击,共计获利1,929.17个 EOS。PeckShield 安全人员分析发现,该...转载 2019-01-07 17:50:34 · 287 阅读 · 0 评论 -
EOS智能合约案例解析(下)
这次向大家介绍 eosio.token 智能合约的最后一个文件 —— abi文件。ABI 全称 Application Binary Interface,中文名“应用程序二进制接口”,顾名思义是一个接口文件,描述了智能合约与上层应用之间的数据交换格式。abi 文件格式类似 JSON,具备很好的可读性,有利于智能合约工程师与上层应用工程师之间的工作衔接。eosio.token.abi 文件地址: ...转载 2019-01-17 16:45:13 · 308 阅读 · 0 评论 -
EOS智能合约的一些问题总结和建议
近期,链安科技利用VaaS-EOS自动化合约审计工具对多个EOS合约进行了安全审计,发现存在整型溢出等问题,部分合约实现不够严谨。为了便于大家在EOS平台写出更加安全的智能合约,我们将发现的一系列问题进行了分析和总结,并给出了建议。主要存在的问题包括:一、存在整型溢出错误;二、权限检查不严谨;三、API函数的不规范使用;四、常规代码错误。EOS合约存在不严谨之处我们通过...转载 2018-12-18 08:55:57 · 454 阅读 · 0 评论 -
EOS智能合约同样存在"溢出漏洞"的可能
4月28日,成都链安科技向巴比特透露,其研发的面向区块链形式化验证平台VaaS(Verification as a Service)检测发现,基于EOS区块链的代币合约同样可能存在BEC代币合约类似的整数溢出漏洞。最近BEC代币被盗事件,由于一行代码的安全漏洞引发其市值几乎归零。该漏洞是由于合约开发者在一段代码中未使用safeMath保证计算的安全性,从而导致黑客利用batchTransfer...转载 2018-12-18 08:56:04 · 428 阅读 · 0 评论 -
EOS 官方 API 中 Asset 结构体的乘法运算溢出漏洞描述
综述asset是EOS官方头文件中提供的用来代表货币资产(如官方货币EOS或自己发布的其它货币单位)的一个结构体。在使用asset进行乘法运算(operator *=)时,由于官方代码的bug,导致其中的溢出检测无效化。造成的结果是,如果开发者在智能合约中使用了asset乘法运算,则存在发生溢出的风险。漏洞细节问题代码存在于contracts/eosiolib/asset.hpp:...转载 2018-11-05 14:30:16 · 487 阅读 · 0 评论 -
Fomo3D随机数生成机制攻击
0x00 概述Fomo3D是一个非常流行的,并且成为币圈现象级的资金盘游戏。据笔者所知,目前国内大部分资金盘游戏都是从Fomo3D的几个合约基础上进行的修改。然而,在7月23号,国外著名社区reddit上有人发现了Fomo3D的一处漏洞[1],攻击者可以利用一定的手段来绕过Fomo3D的防护,从而可以无限制命中空投来进行牟利。本文主要分析这个攻击的具体原理,并提醒广大山寨Fomo3D的项目...转载 2018-11-17 15:53:09 · 478 阅读 · 0 评论 -
解析|累计造成千万损失的EOS智能合约漏洞,该如何避免?
自六月份EOS主网之后,Joe老师亲身经历和见证过EOS DApp一路走来的艰辛。被黑客以各种各样方式攻击过的DAPP,总的损失规模至少上千万了。一直以来,都想对所有被攻击过的DAPP,以及攻击方式做一个汇总。因为前人花大的代价踩的坑,得到的教训,应该总结好,避免后人再犯。因此上周日,一块链习·区块链技术100讲—第3讲由资深全栈工程师,区块链DApp开发老司机Joe老师向大家倾心分享——如何避免...转载 2018-11-20 09:33:30 · 1133 阅读 · 0 评论 -
使用RPC的接口创建账户
1、POST http://127.0.0.1:8888/v1/chain/abi_json_to_bin (序列化新建账号的 json){ "code": "eosio", "action": "newaccount", "args": { "creator": "bitcoin", "name": "e转载 2019-01-17 15:49:29 · 582 阅读 · 0 评论 -
使用RPC的接口创建账户同时购买内存并为其抵押CPU和NET资源
1. 前言前面我们使用RPC API完成了转账。这篇文章继续使用RPC API来创建账号。在EOS中,这些行为都叫做transaction,更本质一点说是一笔transaction中的action。在转账的transaction中,只有一个action,它调用eosio.token合约中的transfer方法。而我们知道,创建账户时需要为账户购买和抵押资源。其实只需要为新账户购买内存资源,否则...转载 2019-01-17 15:52:58 · 413 阅读 · 0 评论 -
使用RPC的接口转账
1. 前言前面我们使用cleos完成过转账的功能,这篇文章我们尝试使用RPC API的方式进行转账。在测试网络/主网络转账EOS,在测试网络转账代币。官方文档:https://github.com/EOSBlock/EOS-Tutorials/blob/master/EN/transfer-tokens-using-RPC.md2. 大致流程使用RPC API转账的流程如下:...转载 2019-01-17 15:56:42 · 966 阅读 · 0 评论 -
EOS智能合约案例解析(上)
为了帮助大家熟悉 EOS 智能合约,EOS 官方提供了一个代币(资产)智能合约 Demo —— eosio.token。eosio.token 智能合约目前还不是特别完善,个别功能还没有完成。但这个示例合约给出了 EOS 官方智能合约开发的标准结构和开发方法,并且真正的 EOS 代币也会借鉴这个示例合约的逻辑,是 EOS 智能合约入门的经典案例。照例,eosio.token 合约由三个文件(c...转载 2019-01-17 16:14:37 · 290 阅读 · 0 评论 -
EOS智能合约案例解析(中)
之前的文章介绍了 eosio.token 智能合约的 hpp 文件,这次向大家介绍 eosio.token.cpp 文件,cpp 文件即 C++ 代码文件,智能合约所有的业务逻辑内容都是在 cpp 文件中实现的。eosio.token.cpp 文件地址: https://github.com/EOSIO/eos/blob/master/contracts/eosio.token/eosio.to...转载 2019-01-17 16:23:37 · 415 阅读 · 0 评论 -
EOS REX 安全系列之从源码开始玩转 REX(二)
上一篇文章粗略分析了整个买卖 rex 的流程,由于篇幅的原因,剩下有一些细节没有分析到位。所以,这篇文章将在上一篇文章的基础上对一些细节进行深入的分析。前情回顾上一篇介绍了买卖 rex 的流程,涉及到了几个函数,我们一起回顾下:1、deposit:用于充值,将 EOS 变成 SEOS,也叫预备金。2、withdraw:用于提现,将 SEOS 换回 EOS。3、buyrex:用于...转载 2019-05-14 09:55:47 · 517 阅读 · 0 评论