diff --git a/src/build/FileAlign.go b/src/build/FileAlign.go index 5bec044..5569963 100644 --- a/src/build/FileAlign.go +++ b/src/build/FileAlign.go @@ -1,13 +1,13 @@ package build -// cacheLineSize is the smallest unit of data that can be transferred between the RAM and the CPU cache. -const cacheLineSize = 64 - // FileAlign returns the file alignment. func (build *Build) FileAlign() int { - if build.OS == Linux { - return cacheLineSize + switch build.OS { + case Linux: + return 0x40 + case Windows: + return 0x200 + default: + return build.MemoryAlign() } - - return build.MemoryAlign() } \ No newline at end of file diff --git a/src/pe/EXE.go b/src/pe/EXE.go index 3283965..e5e1747 100644 --- a/src/pe/EXE.go +++ b/src/pe/EXE.go @@ -27,7 +27,7 @@ func Write(writer io.WriteSeeker, b *build.Build, codeBytes []byte, dataBytes [] subSystem := IMAGE_SUBSYSTEM_WINDOWS_CUI arch := Arch(b.Arch) - importsData, dllData, dllImports, dllDataStart := importLibraries(libs, imports.FileOffset) + importsData, dllData, dllImports, dllDataStart := importLibraries(libs, imports.MemoryOffset) buffer := bytes.Buffer{} binary.Write(&buffer, binary.LittleEndian, &importsData) binary.Write(&buffer, binary.LittleEndian, &dllData)