执行器重构
Felipe Manzano完成了Manticore状态机的重大重构,现在采用多进程模块(multiprocessing),为未来实现分布式符号执行奠定了基础。该重构引入了少量API变更:
- 必须显式调用
finalize
方法才能导出测试用例 will_start_run
回调更名为will_run
- 需通过
Z3Solver.instance()
显式访问求解器单例
Unicorn预加载
为解决Python原生指令模拟速度瓶颈,新增Unicorn模拟器插件。该插件基于QEMU的JIT引擎,可将不重要初始化代码的执行速度提升高达50倍。
AArch64支持
Nikita Karetnikov为静态编译的AArch64 Linux二进制文件添加了支持。虽然当前实现包含调试组件导致性能略低,但该架构可覆盖从嵌入式开发板到服务器集群的广泛ARMv8平台。
系统调用审计
本次更新包含:
- 新增12个系统调用实现
- 为未实现调用添加"存根"机制,避免直接抛出异常
- 遇到未实现调用时会显示"Unimplemented system call"警告
符号化EVM测试
通过持续集成管道自动运行以太坊Frontier版本VM测试,确保每个指令的符号化实现正确性,维护智能合约分析的可靠性。
代码格式化
项目现已采用black自动格式化工具,要求开发者提交代码前执行black -t py36 -l 100 .
以保证代码风格统一。
后续计划
- 改进文档和示例仓库
- 开展可用性研究
- 集成crytic-compile以简化智能合约分析
- 支持EVM Constantinople升级