Releases: nneonneo/ghidra-wasm-plugin
Version 2.3.1
Version 2.3.0
Version 2.3.0 of the WebAssembly plugin for Ghidra.
This new version of the plugin supports Ghidra 11+. Support for 10.x has been dropped; use an older plugin version if you need support for earlier versions of Ghidra.
What's Changed
- Refactored and expanded SIMD support
- Many, many improvements to more closely adhere to the WASM spec
- Fix crash when analyzing a select after a br
- Fix build with Ghidra 11.0 by @kristoff3r in #17
Full Changelog: v2.2.0...v2.3.0
Version 2.2.0
Version 2.2.0 of the WebAssembly plugin for Ghidra.
This new minor version of the plugin supports Ghidra 10.3+. Support for 10.2.x has been dropped; use v2.1.0 or v2.0.0 if you need support for earlier versions.
New changes:
- add a new script,
rename_table_funcs.py
, to help rename functions based on their position in the table (useful if function pointers are just indices into the table) - fix correctness issues with
f32.convert_*
andf64.convert_*
- fix disassembly of certain SIMD ops:
i8x16.shuffle
,*.extract_lane_*
,*.replace_lane
,v128.load64_*
,v128.store64_*
Install the appropriate version of the plugin as an extension using File -> Install Extensions, selecting the + icon, and selecting the zip file. This plugin is backwards-compatible with v2.x.
Full Changelog: v2.1.0...v2.2.0
Version 2.1.0
Version 2.1.0 of the WebAssembly plugin for Ghidra.
This new minor version of the plugin supports Ghidra 10.2+. Support for 10.1.x has been dropped; use v2.0.0 if you need support for those versions.
New changes:
pos-stack
compiler specification has been fixed and should load correctly in 10.2- DWARF type import (#7, by cmorin6)
- Support for Ghidra 10.2.2 (#13, by kristoff3r)
- Experimental stack variable analyzer, which creates variables on the C stack by analyzing opcode and instruction flow.
Install the appropriate version of the plugin as an extension using File -> Install Extensions, selecting the + icon, and selecting the zip file. This plugin is backwards-compatible with v2.0.0.
Version 2.0.0
Version 2.0.0 of the WebAssembly plugin for Ghidra.
This new major version of the plugin synchronizes to the code submitted upstream to Ghidra: NationalSecurityAgency/ghidra#4103. Several major changes have been applied which necessitated a major release; per semantic versioning, some of these changes are breaking changes which will make the plugin incompatible with files loaded or analyzed by v1.x.x plugins. The goal of this release is to ensure that plugin users can seamlessly transition to the integrated WebAssembly support, if/when the upstream PR is accepted.
New changes:
- Function locals are now included in the function body (as
.locals
and.local
directives), as this is the definition of "function body" adopted by most tools (including DWARF). - Renamed "Webassembly" to "WebAssembly" (correct casing).
- Changed
funcref
andexternref
to be 32 bit values instead of 64 bit values. - P-Code emulation support, allowing Ghidra's built-in emulator to emulate Wasm code.
- SIMD support (#4). All SIMD opcodes are now disassembled.
Install the appropriate version of the plugin as an extension using File -> Install Extensions, selecting the + icon, and selecting the zip file. As this is a breaking release from v1, you will need to re-import any Wasm programs after upgrading the plugin.
Version 1.0.1
Version 1.0.1 of the new Wasm plugin for Ghidra.
New changes:
- Apply global names defined in .name section
- Automatically detect the C stack global
- Create import/export functions symbols
- Support for Ghidra 10.0.4 and 10.1
Install the appropriate version of the plugin as an extension using File -> Install Extensions, selecting the + icon, and selecting the zip file.
Version 1.0.0
Version 1.0.0 of the new Wasm plugin for Ghidra.
Features include C stack support, support for all standardized WebAssembly 1.0 opcodes, loading of data segments and element segments, and function call/branch cross-references. See the README for more tips on optimizing your Wasm reversing experience.