5 // Created by Louis Gerbarg on 1/27/16.
21 MachOProxy(const std::string
& p
, ino_t i
, time_t t
, uint32_t o
, uint32_t s
, bool r
) :
22 path(p
), fatFileOffset(o
), fileSize(s
), lastModTime(t
), inode(i
), installNameOffsetInTEXT(0), rootlessProtected(r
) {
23 bzero( &uuid
, sizeof( uuid_t
) );
29 uint64_t sizeOfSections
;
36 const std::string path
;
37 const uint32_t fatFileOffset
;
38 const uint32_t fileSize
;
39 const time_t lastModTime
;
41 const bool rootlessProtected
;
42 std::string installName
;
43 std::set
<std::string
> installNameAliases
;
44 uint32_t installNameOffsetInTEXT
;
45 std::set
<std::string
> dependencies
;
46 std::set
<std::string
> dependents
;
48 std::vector
<Segment
> segments
;
50 const uint8_t* getBuffer();
52 const bool isExecutable();
53 bool addAlias(const std::string
& alias
);
55 static std::map
<std::string
, MachOProxy
*> findDylibInfo(const std::string
& path
, bool warnOnProblems
=false, bool ignoreUncacheableDylibsInExecutables
=false);
62 std::string
machoParser(bool ignoreUncacheableDylibsInExecutables
);
66 #endif /* MachOProxy_h */