While our customers with active support on the development branch have access to these changes and more, we occasionally release updated stable releases just to include a few fixes that we either did not identify during stable release testing or those for whom a fix was scheduled after the original stable release.
This 5.0 Release 2 build improves on our recent 5.0 release with a few small stability improvements and fixes.
Issues that were fixed in this re-release include:
Core/Analysis
- Improvement: RTTI Processing:
- Support for volatile typedefs and consult cv qualifiers when comparing types
- Support NTR type in base structures
- Handle type names emitted by GCC with a leading *
- Handle cxxabi vtables being referenced via RELOC_COPY
- Demangle more types in Itanium RTTI
- Fixed skipping type info with stripped root type info object
- Fixed some RTTI information being overwritten by empty class info
- Loosened section semantic sanity checks in Itanium RTTI processing
- Fix: Memory leak in BNRegisterPluginCommand
- Fix: Memory leak in BNGetFullInfoUpdateChannels
- Fix: Memory leak in BNVersionInfo
- Fix: Memory leak in Metadata::GetKeyValueStore()
- Fix: Memory leaks in Component::GetGuid/GetName/GetDisplayName
- Fix: Memory leak in Collaboration::NotificationListener
- Fix: Memory leak in python Enumeration class
- Fix: Memory leaks in Sections, Segments, Settings, ExternalLibrary, and BackgroundTask
- Fix: Memory leak when calling Metadata::get_value_store in Rust API
- Fix: Crash when querying possible variable values from disassembly view
- Fix: Crash on close in URLHandlerThread
- Fix: Crash with zeroed base class descriptor in RTTI
- Fix: Crash with invalid vtable info when processing MSVC vftables
- Fix: Version info leaking channel string
- Fix: AssociatedDataStore behavior
- Fix: Data tags added via API not showing in flow graphs until refresh
- Fix: SetTagTypeVisibleUndoAction not properly tracking state
- Fix: Eliminated erroneous log message from SettingsCache when opening text-format files
- Fix: Catch some unhandled exceptions in UI
DWARF
- Fix: Do not add binary base to function address twice when a symbol with that function’s raw name already exists
- Fix: Load eh_frame/debug_frame from base bv instead of debug bv and make calculated cie offset ranges relative to bv start
- Fix: Dwarf raw name resolution not resolving specification
- Fix: Try to load eh_frame/debug_frame from both raw and normal views in dwarf import
Thumb2
- Fix: Correctly set flags for mov{s} and mvn{s} instruction variants with 32-bit encodings
Dyld Shared Cache / Mach-O
- Improvement: Mark Objective-C metadata-derived symbols as local instead of exported
- Improvement: Export Trie Parsing: Reworked to avoid recursion with vastly improved error handling
- Fix: Possible deadlock when loading images from the UI
- Fix: Potential crash when closing view with images still being added in the background through the UI
- Fix: Updated ref count warning to only show when above two
- Fix: Various fixes for Objective-C metadata processing
UI/UX
- Improvement: Stack Render Layer included in the Free edition
- Improvement: IME methods now supported in Linux
- Fix: Opening URLs in enterprise with floating license in some situations
Debugger
- Improvement: Maintain the current address in the graph view when refreshing its contents
- Improvement: Hide PC indicator at 0x0 in HLIL if the debugger is not active
- Fix: UAF crash if the user closes the tab before the launch is completed
Documentation
- Improvement: Memory permissions concept section in user documentation updated
- Fix: Formatting and added information regarding the volatile annotation and how it impacts analysis
These builds are now live on both our update servers and via our website. If you’re a Binary Ninja Free user, you can download a new installer here. If you’re a Personal, Commercial, or Enterprise user, the new build is available from the portal or via a license recovery email. And as always, you can update your existing client.