本文整理汇总了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