add rewrite header function
fully rewrite the header from commands list
This commit is contained in:
parent
5e601eaa4a
commit
9b85e4938f
@ -194,6 +194,29 @@ func (mc *MachoContext) RemoveUnnecessaryInfo() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (mc *MachoContext) RewriteHeader() {
|
||||
var offset uint64
|
||||
var start uint64
|
||||
|
||||
if mc.Is64bit() {
|
||||
start = Header_size_64
|
||||
} else {
|
||||
start = Header_size
|
||||
}
|
||||
|
||||
mc.file.Seek(0, io.SeekStart)
|
||||
|
||||
offset = start
|
||||
for _, cmd := range mc.commands {
|
||||
nwrite, _ := mc.file.WriteAt(cmd.Serialize(mc), int64(offset))
|
||||
offset += uint64(nwrite)
|
||||
}
|
||||
|
||||
mc.header.ncmds = uint32(len(mc.commands))
|
||||
mc.header.sizeofcmds = uint32(offset - start)
|
||||
mc.file.WriteAt(mc.header.Serialize(mc), 0)
|
||||
}
|
||||
|
||||
func (mc *MachoContext) AddLoadCmd(lcmd LoadCommand) {
|
||||
var offset uint64
|
||||
payload := lcmd.Serialize(mc)
|
||||
|
Loading…
Reference in New Issue
Block a user