Devin Vaukz
245a5d5d3c
Fix tests for arm64e binaries
...
dyldinfo returns no output when run with `-arch arm64e`. Add a workaround.
2021-07-04 18:25:35 -07:00
Devin Vaukz
59d17f64f2
Correctly handle arm64e cpu subtypes
2021-06-30 23:23:48 -07:00
Devin Vaukz
3dd98b585b
Update platforms enum
2021-06-30 22:46:57 -07:00
Devin Vaukz
ffebfb2086
Update for Xcode 12.2, Raise iOS target to 9.0
...
Xcode 12 no longer supports deploying to iOS 8.0. Also fix analyzer warnings, handle another small change in otool output, etc.
2020-11-22 13:59:03 -08:00
Devin Vaukz
5c5246fb49
Refactor MKDataModel
...
MKDataModel is now a semi-abstract base class instead of a protocol. This allows extension via category. Instances of MKDataModel can be chained together via a datasource argument, which enables data models to be composed.
2020-11-22 12:54:23 -08:00
Devin Vaukz
10d482fadd
[TESTS] Parser fixes for latest otool ObjC output
2020-11-21 23:45:12 -08:00
Devin Vaukz
50ac6e974b
Add tests to verify child elements of certain nodes are sorted by address
...
https://github.com/DeVaukz/MachO-Kit/pull/13#discussion_r456761315
2020-11-01 18:32:02 -08:00
Devin Vaukz
c60b912647
Fix unit tests on Catalina
...
Foundation no longer has a 32-bit slice
2020-11-01 12:49:13 -08:00
Milen Dzhumerov
fb8f4a87c8
Adjust mk_load_command_linker_option_copy_string semantics
...
The function now copies partial strings and handles empty output
buffers (NULL or zero length).
2020-08-19 21:47:34 +01:00
Milen Dzhumerov
45204f13bd
Use bool type instead of char for LC_LINKER_OPTION enumeration block
2020-08-18 21:33:10 +01:00
Milen Dzhumerov
0d29d48b55
Add functions for LC_LINKER_OPTION load commands
2020-08-15 22:26:27 +01:00
Devin Vaukz
20f5fe2645
Fix mk_vm_address_remove_slide underflow detection
2020-05-29 21:11:28 -07:00
Devin Vaukz
c33814ca12
Fix some unit test warnings
2020-05-16 09:23:15 -07:00
Devin Vaukz
ee46e3d3bd
Stop using @import
...
@import causes problems when Mach-O Kit is used in an Objective-C++ project.
2020-05-10 11:11:42 -07:00
Devin Vaukz
51ed099100
[libMachO] Support deriving the image slide
2020-05-08 21:56:47 -07:00
Devin Vaukz
28ff088cec
Support thumb functions/symbols
2019-04-27 16:16:48 -07:00
Devin Vaukz
9f7ad02c5a
[arm64e] Handle threaded bind actions
2019-04-24 21:43:29 -07:00
Devin Vaukz
95d212ddd0
Parse the ‘pad’ field in LC_ENCRYPTION_INFO_64
2019-04-14 10:08:27 -07:00
Devin Vaukz
7e73a3ef52
Fix misc. issues with the unit tests
2019-04-10 21:09:42 -07:00
Devin Vaukz
9915a72856
[Symbols] Add unit tests
2019-04-07 21:53:39 -07:00
Devin Vaukz
7acd4bde96
Parse Data In Code Entries
2019-04-02 21:53:01 -07:00
Devin Vaukz
776e75bf7b
Update unit tests for otool changes in Xcode 10
2018-12-30 20:00:11 -08:00
Devin Vaukz
821d25e67e
Support partial matching in NodeFieldOptionSetType
2018-08-01 21:05:58 -07:00
Devin Vaukz
714eb9f4c8
[Symbols] Rework indirect symbol table parsing
2018-04-09 21:38:28 -07:00
Devin Vaukz
556736202a
[libMachO] More unit tests
2018-04-07 12:47:35 -07:00
Devin Vaukz
192886a003
[libMachO] Improve comments and errors
2018-04-05 22:21:10 -07:00
Devin Vaukz
52af80617a
[libMachO] Improve memory map comments and errors
2018-03-28 22:22:12 -07:00
Devin Vaukz
c237e45e87
Fix Analyzer warnings
2018-03-08 19:44:02 -08:00
Devin Vaukz
f14dc63f20
Workaround: NSNumber can not store unsigned values
...
NSNumber does not store unsigned values *as unsigned*. When initialized with an unsigned number, NSNumber stores it as signed using the next highest bit-width.
This is a problem for Mach-O Kit’s description system, parts of which expect that the objCType of an NSNumber will exactly correspond to the primitive type that NSNumber was initialized with.
The workaround is to define a custom NSNumber subclass for storing unsigned values. A new macro `_$()` is added to replace `@()` for boxing primitive numbers. `_$()` uses the MK NSNumber subclass where appropriate.
2018-03-01 21:51:23 -08:00
Devin Vaukz
3869aa09cf
Add MKComboFormatter
...
MKComboFormatter is used to combine a raw value representation and a refined value representation. This could be used for presenting enumerations, where you want to display the raw (numeric) value and the corresponding element from the enumeration. For example:
1 (REBASE_TYPE_POINTER)
2018-02-25 17:13:31 -08:00
Devin Vaukz
5039c7a3b4
Begin adding unit tests for the custom formatters
2018-02-23 21:45:49 -08:00
Devin Vaukz
c5908ea44d
Parse Mach-O Function Starts
2018-01-18 20:14:56 -08:00
Devin Vaukz
8f9d024085
Cleanup & refactor the Mach-O bindings info parser
...
* Adopt MKULEBRead()
* Adopt MKAddressedNode for MKBindAction
* Adopt MKOptional
* Improve the API and header documentation
* Improve errors
* Fix a memory leak
2018-01-07 12:50:27 -08:00
Devin Vaukz
db37d9c514
Parse Mach-O Exports
2018-01-06 15:36:12 -08:00
Devin Vaukz
d8f2d5434e
Parse Mach-O bindings
2017-12-24 15:43:45 -06:00
Devin Vaukz
5e2665fb6a
Rebase command/fixup bugfixes
...
* Fixes an issue identifying the section of a fixup at the beginning of a section.
* [TESTS] Works around an issue when invoking dyldinfo with -arch x86_64.
* [TESTS] Fixes an issue parsing dyldinfo -dylibs output.
2017-12-24 10:38:41 -06:00
Devin Vaukz
f684a09961
Add support for parsing ObjC meatadata
2017-12-20 13:40:21 -08:00
Devin Vaukz
e86f98c6be
Update otool output parser for Xcode 8
2016-10-10 21:01:53 -07:00
Devin Vaukz
e21889c583
Fix Unit Test build errors
2016-10-10 20:42:01 -07:00
Devin Vaukz
933949fe7e
Parse fix-up addresses.
2016-04-09 23:33:12 -07:00
Devin Vaukz
6e2cdfca8e
Parse Mach-O rebase commands
2016-02-20 22:54:48 -08:00
Devin Vaukz
eb28a2da44
Automatically determine slide of an image; cleanup
2016-02-20 22:43:13 -08:00
Devin Vaukz
9cc01190c3
Initial Support for parsing dyld's shared cache
2015-08-01 20:18:00 -07:00
Devin Vaukz
83641e79bb
Further refine the libMachO API
2015-02-21 13:14:33 -08:00
Devin Vaukz
73cbb27d9e
Make the libMachO API less terrible.
2015-02-16 23:01:45 -08:00
Devin Vaukz
c93ad6c166
Segment + Section cleanup.
2015-02-15 22:06:52 -08:00
Devin Vaukz
aff89d0612
Begin implementing segment parsing in libMachO
2015-02-14 11:00:17 -08:00
Devin Vaukz
4bed686a9d
First attempt at a MachOKit<->libMachO bridge.
2015-02-07 20:39:39 -08:00
Devin Vaukz
1dec4df4a1
Initial Commit
2015-01-31 11:05:29 -08:00