
Today we’re releasing a new “R2” for Jotunheim. This second stable release of 5.3 primarily contains stability fixes with a heavy emphasis on crashes and hangs (in part thanks to our new Sentry infrastructure). This release should result in a much more stable reverse engineering experience.
As always, customers with active support on the development branch have access to these changes and more.
BinaryView Fixes
- Multiple fixes for crashes loading malformed Mach-O binaries and binaries with malformed Objective-C metadata
- Fixed a hang when loading an ELF MIPS binary containing a corrupt symbol table
- Fixed long analysis stalls on malformed size claims in C++ RTTI data
- Fixed malformed PE exception directory causing large allocations / hangs
- Fixed a memory leak from VxWorks view loading (Ultimate only) (#8075)
Analysis and Architectures
- Multiple Thumb-2 lifting fixes including an out-of-bounds read during lifting, and incorrect handling of IT (conditional) instructions
- Fixed an out-of-bounds read when lifting certain Rust binaries (#8155)
- Fixed a crash from unbounded recursion when two functions that call each other are both marked “inline during analysis”
- Fixed crashes when no default calling convention is registered for a platform (resulted in both PDB and WARP crashes) (#8196, #8181)
Stability: Races and Lifetimes
- Multiple fixes for crashes when a binary view is closed or removed while still in use
- Fixed a race condition on Windows x64 binaries during view initialization
- Fixed a WARP crash when its sidebar was deleted just as analysis completed
UI and Platform
- Fixed a crash rendering very long symbol names when the maximum symbol width setting is smaller than the symbol being truncated
- Fixed an abort when checking file paths the OS denies access to (e.g. permission errors while reading the keybindings file)
- Fixed a UI crash when a structure’s base type or a member type can’t be resolved from a named type reference
- Fixed keybindings not saving in the free version on macOS (#7253)
Debugger
The debugger received its own batch of 20 stabilization commits in this release. Apologies to those impacted by these issues:
- Multiple crash fixes in debug adapters when a connection is unavailable or drops mid-operation (#1073, #1076, #1077, #1078)
- Multiple object-lifetime and threading fixes (#1047, #1048, #1058, #1062, #1080, #1086)
- Fixed a deadlock and repeated resume-event spam with conditional breakpoints (#1051)
- Fixed the native Windows adapter being unusable after detaching from a target (#1050)
- Multiple error-handling improvements so failures while reading debuggee memory or communicating with remote targets are logged instead of crashing or being silently dropped (#1046, #1079, #1081)
- UI fixes: time-travel debugging widgets no longer appear for targets that don’t support it, and the debugger sidebar no longer steals focus every time the target stops (#1033, #1055)
These builds are now live on both our website and update servers. 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.