Skip to content

Release 1.3.18

Choose a tag to compare

@github-actions github-actions released this 14 Mar 01:23

What's New in 1.3.18

Now massively better tested.

🆕 New Feature

  • Autodetect more Libraries - Many more libraries such as glimmer and even TK are automatically detected and included into the .exe
  • IRB as .exe — IRB can now be shipped as a standalone .exe file
  • Ruby 4.0 support — Full compatibility with Ruby 4.0
  • Ruby 3.2+ support — Ruby 3.2 and above now fully supported; Ruby 3.0 and 3.1 are no longer supported
  • Windows Authenticode signing — The stub now detects and skips PE security directory entries when searching for the OCRAN signature, enabling correct unpacking of signed executables. Build time also clears invalid security directory entries to allow subsequent signing
  • Bundled cacert.pem — Included in the .exe to prevent SSL certificate verification failures
  • Full UTF-16 Win32 API usagesystem_utils.c now uses wide (W) variants throughout (CreateFileW, CreateDirectoryW, DeleteFileW, FindFirstFileW/FindNextFileW, RemoveDirectoryW, GetFileAttributesW, MoveFileExW, GetTempPathW, CreateProcessW) for correct handling of multibyte (UTF-8) paths

🐛 Bug Fixes

  • SxS error 14001 — Fixed crash when loading native extensions (e.g. openssl.so, date_core.so). Companion *.so-assembly.manifest files in archdir are now included alongside their .so files; all files in ruby_builtin_dlls/ (DLLs and manifests) are now included
  • GetModuleFileNameW buffer size — Fixed incorrect byte size being passed instead of character count in LibraryDetector
  • Pointer underflow in stub unpacker — Fixed subtraction underflow when a tampered offset places head past tail
  • Icon bounds checking — Added bounds checking for icon file entries in edicon to prevent out-of-bounds reads from malformed .ico files
  • Duplicate MessageBox dialogs — Fixed issue where two dialogs appeared in GUI mode when a signature was not found

🔧 Stub Improvements

  • Suppress user notifications during cleanup; errors are now logged to DEBUG output only
  • No longer creates a marker file when the stub fails to delete the installation directory
  • During cleanup, switches to a safer working directory before removing the extraction directory
  • Error messages from the stub are now truncated to a fixed maximum length
  • Extraction directory name now follows mkdtemp style, generated using secure random numbers
  • Disabled path expansion of template characters for additional options passed to the script
  • Working directory switch now uses Ruby's -C option