github.com/vchain-us/vcn@v0.9.11-0.20210921212052-a2484d23c0b3/pkg/extractor/file/internal/sniff/macho.go (about) 1 /* 2 * Copyright (c) 2018-2020 vChain, Inc. All Rights Reserved. 3 * This software is released under GPL3. 4 * The full license information can be found under: 5 * https://www.gnu.org/licenses/gpl-3.0.en.html 6 * 7 */ 8 9 package sniff 10 11 import ( 12 "debug/macho" 13 "os" 14 "strings" 15 ) 16 17 const Platform_MachO = "Mach" 18 19 func MachO(file *os.File) (*Data, error) { 20 f, err := macho.NewFile(file) 21 if err != nil { 22 return nil, err 23 } 24 25 cpu := strings.TrimPrefix(f.Cpu.String(), "Cpu") 26 27 d := &Data{ 28 Type: f.Type.String(), 29 Platform: Platform_MachO, 30 Arch: cpu, 31 X64: strings.HasSuffix(cpu, "64"), 32 } 33 return d, nil 34 }