Commit graph

258 commits

Author SHA1 Message Date
Ryan Kurtz
d575bdb1ab Merge remote-tracking branch 'origin/GP-1461_GhidraKnight_Android12--SQUASHED' 2022-06-06 15:01:52 -04:00
GhidraKnight
a200850690 Fixes/Changes to support Android 12 OAT version 199, FBPK version 2, and VendorBootImage version 4. 2022-06-06 10:08:47 -04:00
Ryan Kurtz
ac0d7f6d43 GP-2071: Refactoring Mach-O things 2022-05-26 10:58:14 -04:00
Ryan Kurtz
9cf8c84129 GP-2052: Improving PrelinkFileSystem isValid() so it doesn't fully
parse the entire Mach-O
2022-05-23 02:45:55 -04:00
ghidra1
01067debde GP-1797 removed unused DataTypeConflictException 2022-05-16 12:33:16 -04:00
ghidra1
8eb58baa7d GP-0 added updated BSD license files and updated related BSD certifications 2022-05-11 10:37:27 -04:00
Ryan Kurtz
94975a236f GP-1986: Fixed a "hash has changed" exception that would sometimes occur
when extracting .dylib files from a dyld_shared_cache file system.
2022-05-03 10:36:34 -04:00
dev747368
27db91b7a0 GP-1983 refactor setting of program properties when imported 2022-04-29 20:48:57 +00:00
Ryan Kurtz
99f9700448 Improved extraction of dylibs from dyld cache. "size" command no longer
errors out when parsing.
2022-04-29 00:59:06 -04:00
dev747368
ef1672aed0 GP-1944 fix zip file entry with empty name, github issue #4128 2022-04-19 18:52:52 +00:00
ghidra1
ca410b1274 GP-1403 Added support for pointer-typedef settings, including support
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.
2022-04-15 13:11:43 -04:00
ghidra1
577328f230 GP-1907: Updated ELF related loader to eliminate use of
ContinuesInterceptor
2022-04-15 01:53:30 -04:00
Ryan Kurtz
96674d4f62 GP-1907: Removing ContinuesInterceptor and associated API 2022-04-15 01:51:58 -04:00
dev747368
2a4a7747e6 GP-1903 refactor out ArrayUtilities, fix BitFieldDataType ENDIANness
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.
2022-04-06 20:45:22 +00:00
Ryan Kurtz
8598f28b23 Revert "GP-1782: Software Bill of Materials (SBOM)"
This reverts commit c89f45d399.
2022-03-23 12:33:02 -04:00
Ryan Kurtz
c89f45d399 GP-1782: Software Bill of Materials (SBOM) 2022-03-22 01:36:29 -04:00
dev747368
aac2cf7e9b GP-1770 Fix Sevenzip native library initialization
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.
2022-03-03 18:24:42 +00:00
dev747368
dd12434a41 GP-1697 fall back to built-in zip file support when 7zip fails to init
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
2022-01-25 19:31:19 +00:00
ghidra1
df97c0a509 GP-1605 improved ELF logging and processing of malformed/missing headers 2021-12-15 15:05:05 -05:00
Ryan Kurtz
d9221cb863 GP-1524: Support for the new iOS 15/macOS Monterey dyld_shared_cache
format
2021-12-03 10:40:11 -05:00
GhidraKnight
87d4858cf2 GP-1247: Changes to support Android 12 2021-11-01 10:19:04 -04:00
dev747368
89edc1594e GP-807 add support for HFS volumes and switch ISO9660 to 7zip
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.
2021-10-01 12:49:07 -04:00
dev747368
72fe7b89d2 GP-253, GP-725 Gfilesystem ByteProviders, obfuscated temp files, passwords
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.
2021-10-01 10:09:38 -04:00
GhidraKnight
ac5d2cfada GP-804: Added support for Android formats (ART, OAT, ODEX, DEX, CDEX,
VDEX) and Dalvik VM SLEIGH modules for each major Android release up to
11.x (R)
2021-09-23 11:16:26 -04:00
ghidra1
9db26bc7f5 GP-1296 Eliminated use of sun.security package and refactored ApplicationKeyManagerUtils 2021-09-15 13:55:20 -04:00
Ryan Kurtz
00533b2869 GP-1106: Platform naming convention now supports different
architectures. Support for building on ARM.
2021-08-17 13:41:47 -04:00
dev747368
854e7d0b01 GP-1094 fix Ext4 blocksize=1024, add blockmap support
ExtentsByteProvider -> RangeMappedByteProvider
2021-07-13 16:05:33 -04:00
dev747368
7b73b4e45f GP-1088 Fix / improve Ext4 inline data handling, mounting
Handle data files when inline data fs-option is turned on, as well as the inverse when a symlink destination path overflows the storage in an inode.
Change file system iteration to explicitly start at the root directory.
Fix ExtentsByteProvider to not close its delegate byte provider.
2021-06-30 14:54:57 -04:00
dev747368
b6fe27ea92 GP-1070 Ext4 filesystem - handle multi-level extent nodes
Reuse the code that was traversing extent nodes for directories.
2021-06-25 13:21:45 -04:00
dev747368
0fa24fd72d GP-1067 fix Ext4 mounting fs in an oversized volume
The fs mounting code was using the physical volume size instead of
values from the superblock.
2021-06-22 18:57:40 -04:00
ghidra1
ca2881205f Merge remote-tracking branch 'origin/GP-905_dev747368_bouncycastle' 2021-05-19 13:37:08 -04:00
Ryan Kurtz
6737d991e2 GP-719: Improvements to the DYLD DYLIB extractor 2021-05-17 11:03:57 -04:00
Ryan Kurtz
519dbd1ac1 GP-719: Improving support of extracting Mach-O DYLIBs from DYLDs 2021-05-14 12:56:17 -04:00
Ryan Kurtz
3a0ae8ee39 GP-849: Gradle 7 support 2021-05-12 13:45:16 -04:00
caheckman
a5d4ca3cab Program specific, user-defined, cspec extensions
Documentation for spec extensions

Handle extensions with parse errors
Export button for spec extensions
Pop-up dialog for parse errors in user-defined specification extensions
GP-653 corrected some minor issues and established new ProgramDB version
make incremental initialization constructor for AddressSized private
Make AddressSized fields private
More adjustments to AddressSized
Review fixes for BasicCompilerSpec
Take restoreXml out of DataOrganization interface
Remove restoreXml from BitFieldPacking interface
More review fixes
Prevent callotherfixup extension with non-existent target
Suggested export name
More documentation for SpecExtension
Support for undo/redo with spec extensions
Documentation for ConstructTpl
Split out ProgramCompilerSpec and other changes for review
Changes after next round of reviews
2021-05-04 12:11:55 -04:00
dev747368
3c73f252cb GP-907 Add getByteProvider(GFile) to some file systems.
This commit adds getByteProvider(GFile) to a first batch of filesystems.  Remaining filesystems will be addressed in future commits.
2021-04-30 13:05:35 -04:00
dev747368
f96082e551 GP-905 update Img4 file system to use real bouncycastle 2021-04-28 15:48:41 -04:00
dev747368
20d18df2a0 GP-871 Ext4 sparse files 2021-04-21 18:07:28 -04:00
dev747368
52484b584d GP-845 Add support for unencrypted DMG files 2021-04-14 14:31:13 -04:00
dev747368
6702a1401b GP-795 Fix ISO9660 probe to not cause needless exceptions 2021-03-22 19:18:37 -04:00
ghidra1
d377d90e14 Merge remote-tracking branch 'origin/patch'
Conflicts:
	Ghidra/Features/GraphServices/certification.manifest
2021-03-17 19:38:50 -04:00
ghidra1
162f203395 Updated certification headers 2021-03-17 18:22:50 -04:00
dev747368
db2cd6ba5a GP-730 Fix SevenZipFileSystem to error correctly w/encrypted file 2021-02-25 13:52:02 -05:00
ghidra1
6fd7f6dbb9 Merge remote-tracking branch 'origin/patch' 2021-02-01 22:16:01 -05:00
ghidra1
9a4918213b GP-652 Minor correction and cleanup of CoffArchive support 2021-02-01 21:23:20 -05:00
dev747368
c9aaea4252 GP-444 cleanup LEB128, consolidate impls, fix bug w/reading bad value, signed values 2021-01-14 15:30:24 -05:00
ghidra1
49736ceb01 Corrected FileFormats module IP 2020-10-28 16:16:17 -04:00
ghidra1
e425cca3ce Corrected additional IP issues 2020-10-28 14:52:55 -04:00
ghidra1
3b39806263 GP-254 corrected sevenzipjbinding IP 2020-10-28 13:25:21 -04:00
dev747368
f10c1ed6cc GP-254 update 7zip library to 16.02-2.01 2020-10-14 14:44:48 -04:00