本文整理汇总了Golang中debug/pe.Open函数的典型用法代码### 示例。如果您正苦于以下问题:Golang Open函数的具体用法?Golang Open怎么用?Golang Open使用的例子?那么恭喜您, 这里精选的函数代码### 示例或许可以为您提供帮助。
在下文中一共展示了Open函数的20个代码### 示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码### 示例。
示例1: IsPE
func IsPE(fPath string) error {
if _, err := pe.Open(fPath); err != nil {
return err
}
return nil
}
开发者ID:hcninja,项目名称:malpic,代码行数:7,代码来源:anal.go
示例2: pclnPE
func pclnPE() (textStart uint64, symtab, pclntab []byte, err error) {
f, err := pe.Open(*flagCompiler)
if err != nil {
return
}
defer f.Close()
var imageBase uint64
switch oh := f.OptionalHeader.(type) {
case *pe.OptionalHeader32:
imageBase = uint64(oh.ImageBase)
case *pe.OptionalHeader64:
imageBase = oh.ImageBase
default:
return 0, nil, nil, fmt.Errorf("pe file format not recognized")
}
if sect := f.Section(".text"); sect != nil {
textStart = imageBase + uint64(sect.VirtualAddress)
}
if pclntab, err = loadPETable(f, "runtime.pclntab", "runtime.epclntab"); err != nil {
return
}
if symtab, err = loadPETable(f, "runtime.symtab", "runtime.esymtab"); err != nil {
return
}
return
}
开发者ID:BenLubar,项目名称:bit,代码行数:28,代码来源:main.go
示例3: getDwarf
func getDwarf(execname string) *dwarf.Data {
e, err := elf.Open(execname)
if err == nil {
defer e.Close()
d, err := e.DWARF()
if err == nil {
return d
}
}
m, err := macho.Open(execname)
if err == nil {
defer m.Close()
d, err := m.DWARF()
if err == nil {
return d
}
}
p, err := pe.Open(execname)
if err == nil {
defer p.Close()
d, err := p.DWARF()
if err == nil {
return d
}
}
log.Fatal("can't get dwarf info from executable", err)
return nil
}
开发者ID:lamproae,项目名称:hprof,代码行数:28,代码来源:parser.go
示例4: openBinary
func openBinary(name string) (Binary, error) {
f, err := os.Open(name)
if err != nil {
return nil, err
}
magic := make([]byte, 4)
if _, err := f.ReadAt(magic[:], 0); err != nil {
return nil, err
}
if bytes.HasPrefix(magic, []byte{0x7f, 'E', 'L', 'F'}) {
e, err := elf.NewFile(f)
if err != nil {
return nil, err
}
return &elfBinary{File: e}, nil
} else if bytes.HasPrefix(magic, []byte{'M', 'Z'}) {
p, err := pe.Open(name)
if err != nil {
return nil, err
}
return &peBinary{File: p}, nil
} else if bytes.HasPrefix(magic, []byte{0xcf, 0xfa, 0xed, 0xfe}) {
m, err := macho.Open(name)
if err != nil {
return nil, err
}
return &machoBinary{File: m}, nil
}
return nil, fmt.Errorf("unsupported binary format")
}
开发者ID:ebfe,项目名称:gover,代码行数:31,代码来源:main.go
示例5: doit
func doit(path string) error {
f, e := pe.Open(path)
check(e)
ws, e := workspace.New(workspace.ARCH_X86, workspace.MODE_32)
check(e)
loader, e := peloader.New(path, f)
check(e)
m, e := loader.Load(ws)
check(e)
e = ws.Disassemble(m.EntryPoint, 0x30, os.Stdout)
check(e)
emu, e := ws.GetEmulator()
check(e)
emu.SetInstructionPointer(m.EntryPoint)
log.Printf("emudbg: start: 0x%x", emu.GetInstructionPointer())
e = doloop(emu)
check(e)
return nil
}
开发者ID:williballenthin,项目名称:Lancelot,代码行数:28,代码来源:emudbg.go
最后编辑: kuteng 文档更新时间: 2021-08-23 19:14 作者:kuteng