mirror of
https://github.com/wader/fq.git
synced 2024-12-25 22:34:14 +03:00
macho: delete ar decoder code
This commit is contained in:
parent
5a48cb30a6
commit
20e5be3f57
@ -3,7 +3,6 @@ package macho
|
|||||||
// https://github.com/aidansteele/osx-abi-macho-file-format-reference
|
// https://github.com/aidansteele/osx-abi-macho-file-format-reference
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/wader/fq/format"
|
"github.com/wader/fq/format"
|
||||||
@ -13,17 +12,12 @@ import (
|
|||||||
"github.com/wader/fq/pkg/scalar"
|
"github.com/wader/fq/pkg/scalar"
|
||||||
)
|
)
|
||||||
|
|
||||||
var arGroup decode.Group
|
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
registry.MustRegister(decode.Format{
|
registry.MustRegister(decode.Format{
|
||||||
Name: format.MACHO,
|
Name: format.MACHO,
|
||||||
Description: "Mach-O macOS executable",
|
Description: "Mach-O macOS executable",
|
||||||
Groups: []string{format.PROBE},
|
Groups: []string{format.PROBE},
|
||||||
DecodeFn: machoDecode,
|
DecodeFn: machoDecode,
|
||||||
Dependencies: []decode.Dependency{
|
|
||||||
{Names: []string{format.AR}, Group: &arGroup},
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -422,23 +416,7 @@ func ofileDecode(d *decode.D) {
|
|||||||
fatParse(d)
|
fatParse(d)
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
// Try decoding AR
|
// AR files are also valid OFiles but they should be parsed by `-d ar`
|
||||||
d.SeekAbs(0)
|
|
||||||
arMagic := d.RawLen(8 * 8)
|
|
||||||
arMagicBytes, err := arMagic.Bytes()
|
|
||||||
if err != nil {
|
|
||||||
d.Fatalf("Fallback to AR(.a) file parsing failed. magic bytes were invalid.")
|
|
||||||
}
|
|
||||||
if bytes.Equal(arMagicBytes, []byte(ARMAG)) {
|
|
||||||
// go to start of the file
|
|
||||||
d.SeekAbs(0)
|
|
||||||
dv, _ := d.FieldFormat("ar", arGroup, nil)
|
|
||||||
if dv == nil {
|
|
||||||
d.Fatalf("AR decode step failed")
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// All options are exhausted, fail
|
|
||||||
d.Fatalf("Invalid magic field")
|
d.Fatalf("Invalid magic field")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user