Look for PackHeader in the right place.
https://github.com/upx/upx/issues/606 modified: p_mach.cpp
This commit is contained in:
committed by
Markus F.X.J. Oberhumer
parent
48ad5513ff
commit
72613d06a5
+2
-2
@@ -1724,7 +1724,7 @@ int PackMachBase<T>::canUnpack()
|
|||||||
}
|
}
|
||||||
|
|
||||||
int const small = 32 + sizeof(overlay_offset);
|
int const small = 32 + sizeof(overlay_offset);
|
||||||
unsigned bufsize = 4096;
|
unsigned bufsize = 4096 + sizeof(PackHeader);
|
||||||
if (391 == style) { // PackHeader precedes __LINKEDIT
|
if (391 == style) { // PackHeader precedes __LINKEDIT
|
||||||
fi->seek(offLINK - bufsize, SEEK_SET);
|
fi->seek(offLINK - bufsize, SEEK_SET);
|
||||||
} else
|
} else
|
||||||
@@ -1740,7 +1740,7 @@ int PackMachBase<T>::canUnpack()
|
|||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
if (395 == style) {
|
if (395 == style) {
|
||||||
fi->seek(offLINK - bufsize - sizeof(PackHeader), SEEK_SET);
|
fi->seek(offLINK - bufsize, SEEK_SET);
|
||||||
}
|
}
|
||||||
MemBuffer buf(bufsize);
|
MemBuffer buf(bufsize);
|
||||||
MemBuffer buf3(bufsize);
|
MemBuffer buf3(bufsize);
|
||||||
|
|||||||
Reference in New Issue
Block a user