WhatsABI 簡介

2023-08-29 20:06 登鏈社區


WhatsABI 簡介

從 EVM 字節碼中猜測出 ABI(和其他元數據),即使沒有源代碼。

特點

WhatsABI 在一些重要方面與其他 EVM 分析工具不同:

  • 使用 TypeScript 構建,依賴最小化,以便在瀏覽器中運行並嵌入錢包中

  • 所使用的算法僅限於具有較小常數因子的算法,以確保復雜的合同不會導致超時或使用無限內存

  • 不依賴於源代碼,因此可以與未經驗證的合約一起使用。

  • 不假設源語言,因此可以適用於除 Solidity(Vyper,甚至手寫匯編)之外的源語言

  • 开放源代碼(MIT 許可證),以便任何人都可以使用它

可以做什么

  • 從字節碼返回選擇器

  • 從選擇器中查找函數籤名

  • 解決代理合同

使用方法

安裝

使用

控制台將打印合約地址、abi 等數據

(完整項目見 whatsabi[2]

其它方法

  • selectorsFromBytecode: 從合約字節碼中獲取函數選擇器
    whatsabi.selectorsFromBytecode(code)

  • abiFromBytecode:從合約字節碼中獲取 ABI
    whatsabi.abiFromBytecode(code)

  • loadFunctions:獲取函數選擇器匹配的函數籤名
    new whatsabi.loaders.OpenChainSignatureLookup().loadFunctions("0x06fdde03")

  • loadEvents:獲取函數選擇器匹配的函數籤名
    new whatsabi.loaders.OpenChainSignatureLookup().loadEvents("0x721c20121297512b72821b97f5326877ea8ecf4bb9948fea5bfcb6453074d37f")

注意事項

  • 不一定能找到有效的函數選擇器

  • 有一些參數存在的猜測,不夠可靠

  • 事件解析有些不穩定

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

標題:WhatsABI 簡介

地址:https://www.sgitmedia.com/article/9045.html

相關閱讀: