首页 > 解决方案 > 为什么这个 txn 没有转移余额,我传递了与响应集完全相同的十六进制字符串

问题描述

我通过传递在 Start 函数中传递的相同字符串来调用https://etherscan.io/address/0x0c63bf5f9c1b31bd98eb2995e8ab5ba33fe31d22合约的 Try 函数。我检查了十六进制。有人可以帮我为什么尝试函数调用https://etherscan.io/tx/0x096a060d64d833c55fd83b2ea4ec209578dc3316d863de3a3de63692e8476628 没有启动余额转移。有什么吗,我不见了

标签: solidity

解决方案


测验是骗局合同

作者通常使用一组相似的名称 ( [a-z]{2}_quiz),但其中大多数包含相同的代码并充当蜜罐骗局。

阅读更多相关信息:


骗局如何运作:

攻击者使用来自另一个合约的内部调用(未出现在蜜罐“交易”或“内部调用”列表中)来调用New()函数并将散列设置为某个垃圾值。

这个垃圾值不是Start()函数中传递的字符串的哈希值,而且很可能甚至不是任何字符串的哈希值。

然后公开调用该Start()函数(参见事务),看起来他们正在设置哈希,但由于这种情况而没有设置:

if(responseHash==0x0){  // it's not 0x0 anymore
    responseHash = keccak256(abi.encode(_response));
    question = _question;
}

推荐阅读