Previously the impl would only return the length of the memory block where the byte provider started, or return 0 if there wasn't a memoryblock at the base address.
Now returns the length of the available memory (in the same addressspace) that is found in the program's memory map, clamped to Long.MAX_VALUE.
Updated users of MemoryByteProvider to use helper methods to create.
Removed ISO9660 format analyzer (that was using MemorbyByteProvider) because we no longer have our own iso format code after switching to Sevenzip.
for Archive use. Corrected settings stacking behavior.
Unified two settings adapters into one shared implementation (upgrade
and archive schema version still needed). Added ability to edit default
settings for components from within the structure/union editor.
Improved use of immutable settings. Improved array settings. Added
PointerTypeDefBuilder and PointerTypeDefInspector. Added versioning
support to DataTypeManagerDB to facilitate upgrades and compatibility
detection. Initial improvements added for locking of datatype settings.
Added support for auto-named pointer-typedefs.
Nuke ArrayUtilties and replace it with built-in methods available in jdk
Arrays class or use DataConverter for endianness conversion.
Exclude ENDIAN setting for BitFieldDataType.
When multiple ghidra processes on the same host (and share a temporary
directory) start-up, the built-in logic in the Sevenzip JBinding library
would always overwrite the previous native library file, causing the
java vm's that have already linked with it to core dump when trying to
execute Sevenzip code.
See https://github.com/borisbrodski/sevenzipjbinding/issues/50 for bug
report to the upstream developer.
This change pre-extracts the native libraries in a gradle build task and
places them in the ghidra directory structure, allowing the native
libraries to be referred to and loaded without any extra work at
runtime.
If the 7zip native libraries fail to load, fall back to an earlier
version of the ZipFileSystem that used the built-in java zip file
support.
The user will be unable to open password protected zips.
Fixes github issue #3904
Both file systems are handled by existing 7zip, but HFS needed code to
recognize the volume header.
Remove ghidra implementation of ISO9660 as it lacked support for long
file names and defer to the 7zip implementation.
Migrate GFilesystem methods to use ByteProviders instead of java Files for their source, and to produce ByteProviders instead of InputStreams.
Refactor file info query method to return a structured collection of enum specified meta data instead of a free-form multiline string.
Add locked icon badge to files in the file system browser that are password protected.
Reduces the number of temp files created on disk, and obfuscates files that are created to avoid the wrath of virus scanners (in the same manner that ghidra db files are obfuscated).
Add support for filesystems to query for passwords to decrypt files.
Refactor the SevenZipFileSystem implementation to decrypt files embedded inside zips that were created with passwords.
Fix Ext4 to support 128 byte inodes.