首页 > 正文

以太坊区块链 地址篇1

1、这三个参数会被传入到msg.data中,然后调用合约的transfer方法,此时,amount由于高位的1个字节被吃掉了,因此amount=amount。

2、作者:隐形人真忙。使用一些跑号工具就可以做到,比如MyLinkToken工具,可以很轻易跑出末尾两个0的!

3、然后再从这个钱包中提出1000个币,则EVM会把所有函数的参数一起打包,会把amount参数的高位1个字节吃掉!

4、针对这个漏洞,说实话以太坊有不可推卸的责任,并且还擅自自动补充消失的位数。此外,交易所在提币的时候,

5、0x1234567890123456789012345678901234567800。

6、找一个交易所钱包,该钱包里token数量为256000。

7、32字节,高危补0。00000000000000000000000062bec9abe373123b9b635b75608f94eb8644163e。

8、32字节,是需要传输的代币数量,这里通常是交易所这里没有做处理,注意到结尾为0:。

9、0x03总结。0x90b98a11。

10、EVM虚拟机在解析合约的字节码时,依赖的是ABI的定义,从而去识别各个字段位于字节码的什么地方。关于ABI,可以阅读这个文档:https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI。

区块链安全研究:以太坊短地址攻击

以太坊区块链 地址篇2

1、这样,这个账号末尾为2个0。这时,token数量参数其实就会少了1个字节,即token数量左移了一个字节,使得合约多发送很多代币出来。我们看个例子:。

2、functiontransfer(addressto,第二个参数是发送token的数量。交易的input数据分为3个部分:。

3、0000000000000000000000000000000000000000000000000000000000000002。

4、000000000000000000000000abcabcabcabcabcabcabcabcabcabcabcabcabca。

5、这里的0x90b98a11是method的hash值,第三个是amount参数!

6、这里EVM把amount的高位的一个字节的0填充到了address部分,这样使得amount向左移位了1个字节,即向左移位8!

7、一般ERC-20TOKEN标准的代币都会实现transfer方法,这个方法在ERC-20标签中的定义为:。

8、往这个钱包发送1000个币。如果我们调用sendCoin方法的时候,即扔掉末尾的一个字节,参数就变成了:。

9、这里调用sendCoin方法时,传入的参数如下:。

10、00000000000000000000000062bec9abe373123b9b635b75608f94eb86441600。

以太坊区块链 地址篇3

1、00000000000000000000000000000000000000000000000000000000000002。

2、摘要:针对这个漏洞,以太坊有不可推卸的责任,并且还擅自自动补充消失的位数,使得合约多发送很多代币出来!

3、当我们将后面的00省略时,EVM会从下一个参数的高位拿到00来补充,这就会导致一些问题了!

4、0x00基础知识。缺失1个字节。

5、4字节,是方法名的哈希:a9059cbb。

猜你喜欢
发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论信息