一种evm符号执行工具及漏洞扫描器

pakala的Python项目详细描述


帕卡拉

PyPIBuild States

“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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么我们不能将ArrayList<Integer>传递给具有(Integer…)的方法参数   java Spring RestTemplate映射JSON对映射的响应引发不匹配的PutException   在系统中找到java Selenium元素,但在Jenkins中未找到   java在Android中使用JavaMail API发送电子邮件,而不使用默认/内置应用程序   数组如何在Java数据结构中同时存储数字和相应的单词?   为什么“+”运算符未定义?JAVA   java如何在游戏中添加高分系统?   java在球门碰撞中区分球和球员   java如何使用SpringSecurity4.0.1使用Auth令牌实现Rest完整Web服务。释放   java如何解决这个错误:Android资源链接失败?   java多线程文件处理和数据库批插入   导致Tomcat失败的java无用块线程   java主线程做了太多的工作,尽管我使用了异步线程(laggy UI)   在Java FX 2.0中滚动锚定节点时,锚定始终可见?   java使用EJB3中的客户机jar和设计模式