JEB Decompiler中文网站 > 最新资讯 > JEB Decomplier以太坊分析
JEB Decomplier以太坊分析
发布时间:2024/09/29 18:51:04

在以太坊分析方面,JEB Decompiler能够将以太坊的EVM(以太坊虚拟机)合同代码反编译为类似Solidity的高级代码,从而帮助安全审计员、漏洞研究人员和逆向工程师更好地理解和分析不透明的智能合约。通过这种反编译,用户可以更清晰地看到智能合约的内部逻辑和操作流程,这对于发现潜在的安全漏洞和进行代码审查非常重要。下面一起来看看JEB Decomplier以太坊分析的相关内容。

 

功能

 

以太坊插件提供以下特定功能:

 

  • EVM 代码分析器确定合约的公共和私有方法,包括编译器合成生成的公共方法的实现。此分析尝试确定方法和事件的名称以及原型,而无需访问 ABI。
  •  
  • EVM 反编译器将分析过的 EVM 代码反编译为类似 Solidity 的源代码。反编译器尝试恢复各种高级构造,包括:
  •  
    • 知名接口的实现,例如标准代币的 ERC20、非同质化代币的 ERC721、MultiSigWallet 合约等。
    •  
    • 存储变量和类型
    •  
    • 高级 Solidity 工件和习语,包括:
    •  
    • 函数可变性属性
    •  
    • 功能可支付性状态
  •  
    • 事件发射,包括事件名称
    •  
    • 调用 address.send() 或 address.transfer()
    •  
    • 预编译合约调用
    •  

基本用法

 

通过文件、打开智能合约...菜单项打开合约。

您将获得两个选择:

 

  • 打开已存储在磁盘上的二进制文件
  •  
  • 或者从主要的以太坊或与以太坊兼容的主网和测试网之一下载并打开合约:

 

  • 选择网络
  •  
  • 提供合约20字节地址
  •  
  • 单击下载并选择文件目标

  • 合同加工

 

JEB 将处理你的合同文件并生成一个类项来代表它:

要切换到反编译视图,请在代码层次结构视图中选择“反编译契约”节点,然后按 Tab(或右键单击,反编译)。


反编译后的合约以类似 Solidity 的代码呈现:它主要是 Solidity 代码,但并非全部。整个代码中使用了 Solidity 中非法的构造来表示反编译器无法表示的指令。示例包括:表示某些低级 EVM 指令、内存访问或非常罕见的 goto 语句的语句。不要指望 DecompiledContract 可以轻松重新编译。

 

代码视图

 

如果您希望同时浏览汇编代码和高级代码,您可以调整视图面板以获得并排视图。

 

  • 在汇编视图中的例程中,按空格键即可查看其控制流图。
  •  
  • 要从汇编导航到源代码,然后返回,请按 Tab 键。插入符号将定位在最接近的匹配指令上。

以太发送()

 

Soliditysend可以转换为具有标准 gas 津贴和零参数的低级调用。它本质上用于通过目标合约 fallback 函数将 Ether 发送到合约。

 

目前,JEB 将它们渲染为send(address, amount)而不是address.send(amount)

 

以下合约在主网上线。它是一个简单的转发器,不存储以太币:它将收到的金额转发给另一个合约。

事件发射

 

JEB 尝试将 LOGx (1..4 中的 x) 操作码部分重构为高级 Solidity emit Event(...)。事件名称通过反转事件方法原型哈希来解析。

 

如果 JEB 无法逆转 LOGx 指令,或者使用 LOG0,则将log(...)使用较低级别的调用。

 

目前,事件参数尚未处理;因此,反编译代码中使用的 emit 构造具有以下形式:emit Event(memory, size[, topic2[, topic3[, topic4]]])。topic1始终用于存储事件原型哈希。

API

 

EVM 分析模块构建在 JEB 的本机代码分析管道上。因此,可以使用标准 API 来自动执行分析任务。特别是,反编译器 API 可以访问:

 

  • 中间表示(IR)

 

  • 最终的 Solidity 类表示 (AST)
  •  

例子

 

此示例脚本演示了如何检索以太坊合约的反编译 EVM 代码并打印出 AST 节点:代码

 

以上就是JEB Decomplier以太坊分析的相关内容。JEB Decompiler以其强大的反编译能力和丰富的功能,为以太坊智能合约和dApp的分析提供了强有力的支持,是安全审计和逆向工程领域的重要工具。

读者也访问过这里:
135 2431 0251