syntax = "proto3"; option optimize_for = LITE_RUNTIME; option go_package = "pkg/protomodel"; package protomodel; message MachoInfo { enum PointerSize { invalid = 0; p32 = 1; p64 = 2; } message InitPointer { uint64 offset = 1; // offset relative to the macho header uint64 value = 2; // address of the init function } // iOS library rewrite these as opcodes and dyld processes // message LazySymbol { // string name = 1; // int32 dylib_ordinal = 2; // could be -1 -2 // uint32 segment = 3; // uint32 segment_offset = 4; // } PointerSize pointer_size = 1; uint64 image_base = 2; repeated InitPointer init_pointers = 3; // saved or read from header -> dyld_info -> lazyoff // uint64 lazy_symbol_address = 4; // repeated LazySymbol lazy_symbols = 5; }