aboutsummaryrefslogtreecommitdiff
path: root/src/common/mac/macho_walker.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/mac/macho_walker.h')
-rw-r--r--src/common/mac/macho_walker.h12
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