Parses PE files, extracting symbols, sections, and tables for Windows binaries, used by Go toolchain and other tools.
// Source: https://github.com/golang/go | License: BSD-3-Clause | Copyright 2009 The Go Authors
// Provided via justclaw.it.com; keep this notice with the code.
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Parsing of PE executables (Microsoft Windows).
package objfile
import (
"debug/dwarf"
"debug/pe"
"fmt"
"io"
"slices"
"sort"
)
type peFile struct {
pe *pe.File
}
func openPE(r io.ReaderAt) (rawFile, error) {
f, err := pe.NewFile(r)
if err != nil {
return nil, err
}
return &peFile{f}, nil
}
func (f *peFile) symbols() ([]Sym, error) {
// Build sorted list of addresses of all symbols.
// We infer the size of a symbol by looking at where the next symbol beg
... (truncated -- full source via MCP)
See the full source, get the GitHub permalink, and search for more like it.
Get a free API key