Added sparse file support
This commit is contained in:
parent
9d6356e8a9
commit
60691d09ed
10 changed files with 32 additions and 37 deletions
|
@ -1,7 +1,6 @@
|
|||
package macho
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/binary"
|
||||
"io"
|
||||
|
||||
|
@ -24,7 +23,7 @@ type MachO struct {
|
|||
}
|
||||
|
||||
// Write writes the Mach-O format to the given writer.
|
||||
func Write(writer io.Writer, codeBytes []byte, dataBytes []byte) {
|
||||
func Write(writer io.WriteSeeker, codeBytes []byte, dataBytes []byte) {
|
||||
sections := exe.MakeSections(HeaderEnd, codeBytes, dataBytes)
|
||||
code := sections[0]
|
||||
data := sections[1]
|
||||
|
@ -116,8 +115,8 @@ func Write(writer io.Writer, codeBytes []byte, dataBytes []byte) {
|
|||
binary.Write(writer, binary.LittleEndian, &m.CodeHeader)
|
||||
binary.Write(writer, binary.LittleEndian, &m.DataHeader)
|
||||
binary.Write(writer, binary.LittleEndian, &m.UnixThread)
|
||||
writer.Write(bytes.Repeat([]byte{0x00}, code.Padding))
|
||||
writer.Seek(int64(code.Padding), io.SeekCurrent)
|
||||
writer.Write(code.Bytes)
|
||||
writer.Write(bytes.Repeat([]byte{0x00}, data.Padding))
|
||||
writer.Seek(int64(data.Padding), io.SeekCurrent)
|
||||
writer.Write(data.Bytes)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue