本文整理汇总了Golang中debug/pe.NewFile函数的典型用法代码### 示例。如果您正苦于以下问题:Golang NewFile函数的具体用法?Golang NewFile怎么用?Golang NewFile使用的例子?那么恭喜您, 这里精选的函数代码### 示例或许可以为您提供帮助。

在下文中一共展示了NewFile函数的14个代码### 示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码### 示例。

示例1: openExecutablePath

func openExecutablePath(path string) (*pe.File, error) {
    f, err := os.OpenFile(path, 0, os.ModePerm)
    if err != nil {
        return nil, err
    }
    return pe.NewFile(f)
}

开发者ID:alexbrainman,项目名称:delve,代码行数:7,代码来源:proc_windows.go

示例2: CheckPE

func CheckPE(file string) bool {

    r := _ioReader(file)    //reader interface for file
    f, err := pe.NewFile(r) //open the file as a PE
    if err != nil {
        return false //Not a PE file
    }

    //Reading DOS header
    var dosheader [96]byte
    r.ReadAt(dosheader[0:], 0)
    if dosheader[0] == 'M' && dosheader[1] == 'Z' { //if we get MZ
        signoff := int64(binary.LittleEndian.Uint32(dosheader[0x3c:]))
        var sign [4]byte
        r.ReadAt(sign[:], signoff)
        if !(sign[0] == 'P' && sign[1] == 'E' && sign[2] == 0 && sign[3] == 0) { //if not PE\0\0
            return false //Invalid PE File Format
        }
    }
    if (f.Characteristics & 0x2000) == 0x2000 { //IMAGE_FILE_DLL signature
        return false //it's a DLL, OCX, CPL file, we want a EXE file
    }

    f.Close()
    return true //it is a valid EXE file

}

开发者ID:postfix,项目名称:go-liora,代码行数:27,代码来源:win32.liora.b.go

示例3: Open

func Open(files string) {
    file := ioReader(files)

    f, err := pe.NewFile(file)
    if err != nil {
        return
    }

}

开发者ID:FloydZ,项目名称:peextendgo,代码行数:9,代码来源:structs.go

示例4: loadTables

func loadTables(f *os.File) (textStart uint64, symtab, pclntab []byte, err error) {
    if obj, err := elf.NewFile(f); err == nil {
        if sect := obj.Section(".text"); sect != nil {
            textStart = sect.Addr
        }
        if sect := obj.Section(".gosymtab"); sect != nil {
            if symtab, err = sect.Data(); err != nil {
                return 0, nil, nil, err
            }
        }
        if sect := obj.Section(".gopclntab"); sect != nil {
            if pclntab, err = sect.Data(); err != nil {
                return 0, nil, nil, err
            }
        }
        return textStart, symtab, pclntab, nil
    }

    if obj, err := macho.NewFile(f); err == nil {
        if sect := obj.Section("__text"); sect != nil {
            textStart = sect.Addr
        }
        if sect := obj.Section("__gosymtab"); sect != nil {
            if symtab, err = sect.Data(); err != nil {
                return 0, nil, nil, err
            }
        }
        if sect := obj.Section("__gopclntab"); sect != nil {
            if pclntab, err = sect.Data(); err != nil {
                return 0, nil, nil, err
            }
        }
        return textStart, symtab, pclntab, nil
    }

    if obj, err := pe.NewFile(f); err == nil {
        if sect := obj.Section(".text"); sect != nil {
            textStart = uint64(sect.VirtualAddress)
        }
        if sect := obj.Section(".gosymtab"); sect != nil {
            if symtab, err = sect.Data(); err != nil {
                return 0, nil, nil, err
            }
        }
        if sect := obj.Section(".gopclntab"); sect != nil {
            if pclntab, err = sect.Data(); err != nil {
                return 0, nil, nil, err
            }
        }
        return textStart, symtab, pclntab, nil
    }

    return 0, nil, nil, fmt.Errorf("unrecognized binary format")
}

开发者ID:TomHoenderdos,项目名称:go-sunos,代码行数:54,代码来源:main.go

示例5: openPE

func openPE(r *os.File) (rawFile, error) {
    f, err := pe.NewFile(r)
    if err != nil {
        return nil, err
    }
    switch f.OptionalHeader.(type) {
    case *pe.OptionalHeader32, *pe.OptionalHeader64:
        // ok
    default:
        return nil, fmt.Errorf("unrecognized PE format")
    }
    return &peFile{f}, nil
}

开发者ID:danny8002,项目名称:go,代码行数:13,代码来源:pe.go

最后编辑: kuteng  文档更新时间: 2021-08-23 19:14   作者:kuteng