一种evm符号执行工具及漏洞扫描器
pakala的Python项目详细描述
帕卡拉
“Ilo Pakala li Pakala e Mani Sona”
- Pakala是一个搜索以太坊智能合约中可利用漏洞的工具。
- pakala是以太坊虚拟机的符号执行引擎。
该工具的目标公众是ethereum/evm感兴趣的安全研究人员。
安装
pip3 install pakala
它只适用于python 3。
用法
让我们看看0xeBE6c7a839A660a0F04BdF6816e2eA182F5d542C:
它有一个transfer(address _to, uint256 _value)
函数它应该受到require(call.value - _value) >= 0
的保护。
但是这个条件总是成立的,因为我们正在减去两个无符号整数,所以结果也是一个无符号整数。
让我们扫描一下:
pakala 0xeBE6c7a839A660a0F04BdF6816e2eA182F5d542C --force-balance="1 ether"
合同余额为0,我们不能让它给我们发送一些以太。 所以我们把余额设为1 eth:然后它就有一些“虚拟”的钱给我们。
这个工具告诉你一个错误被发现了,并给你一个“状态”的路径。每个 状态对应于一个事务,具有需要遵守的约束 对于要采用的代码路径,已读/写的存储
建议:查看约束中的calldata[0]
,查看每个事务的函数签名
请参阅pakala help
了解更多完整的用法信息
它是如何工作的它是做什么的?
有关更多信息和演示,请参见introductory article