diff options
Diffstat (limited to 'src/common/mac/macho_walker.h')
-rw-r--r-- | src/common/mac/macho_walker.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/common/mac/macho_walker.h b/src/common/mac/macho_walker.h index 0d55dd79..eb9575b0 100644 --- a/src/common/mac/macho_walker.h +++ b/src/common/mac/macho_walker.h @@ -68,6 +68,9 @@ class MachoWalker { // Read |size| bytes from the opened file at |offset| into |buffer| bool ReadBytes(void *buffer, size_t size, off_t offset); + + // Return the current header and header offset + bool CurrentHeader(struct mach_header_64 *header, off_t *offset); private: // Validate the |cpu_type| @@ -87,6 +90,15 @@ class MachoWalker { // User specified callback & context LoadCommandCallback callback_; void *callback_context_; + + // Current header, size, and offset. The mach_header_64 is used for both + // 32-bit and 64-bit headers because they only differ in their last field + // (reserved). By adding the |current_header_size_| and the + // |current_header_offset_|, you can determine the offset in the file just + // after the header. + struct mach_header_64 *current_header_; + unsigned long current_header_size_; + off_t current_header_offset_; }; } // namespace MacFileUtilities |