PKU-ASAL / SeeWasm

A native symbolic execution engine for WebAssembly
40 stars 4 forks source link

Go 语言转换而成的 Wasm 文件无法被正常分析 #8

Closed HNYuuu closed 3 years ago

HNYuuu commented 3 years ago

Describe the bug 当使用指令 python3.6 octopus_wasm -f './go_samples/main.wasm' -s --onlyfunc main.main 来分析 Go 的 main 函数时会报错。

通过查看源码发现,应该是位于 analyzer.pyanalyze 函数中的 decode_module 函数对于 Go 编译来的 Wasm 字节码解析失败。然而 Wasm 库已经停止维护,需要我们自己去修改源码。

Expected behavior 正常分析,进入 main.main 函数

Additional context Octopus 开发者引入了 NAME_SUBSEC 尝试解决这个问题,但是并不奏效。因此并未把 analyzer.py 替换为 Octopus 的 analyzer.py,但是可以参考

HNYuuu commented 3 years ago

Resolved in commit 3a9ead2

原因是 decode_module 函数中最后三行,当当前的 section 是 unknown 时,偏移值处理失败,注释掉即可