forked from security/hakurei
cmd/irdump: basic disassembler
This commit is contained in:
@@ -1,13 +1,12 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"hakurei.app/command"
|
||||
"hakurei.app/internal/pkg"
|
||||
)
|
||||
|
||||
func main() {
|
||||
@@ -17,10 +16,12 @@ func main() {
|
||||
var (
|
||||
flagOutput string
|
||||
flagReal bool
|
||||
flagHeader bool
|
||||
flagForce bool
|
||||
)
|
||||
c := command.New(os.Stderr, log.Printf, "irdump", func(args []string) (err error) {
|
||||
var input *os.File
|
||||
if len(args) < 1 {
|
||||
if len(args) != 1 {
|
||||
return errors.New("irdump requires 1 argument")
|
||||
}
|
||||
if input, err = os.Open(args[0]); err != nil {
|
||||
@@ -38,12 +39,8 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
inputData := bytes.NewBuffer(nil)
|
||||
if _, err = io.Copy(inputData, input); err != nil {
|
||||
return
|
||||
}
|
||||
var out string
|
||||
if out, err = Disassemble(inputData.Bytes(), flagReal); err != nil {
|
||||
if out, err = pkg.Disassemble(input, flagReal, flagHeader, flagForce); err != nil {
|
||||
return
|
||||
}
|
||||
if _, err = output.WriteString(out); err != nil {
|
||||
@@ -57,12 +54,18 @@ func main() {
|
||||
).Flag(
|
||||
&flagReal,
|
||||
"r", command.BoolFlag(false),
|
||||
"skip label generation; idents print real value")
|
||||
"skip label generation; idents print real value",
|
||||
).Flag(
|
||||
&flagHeader,
|
||||
"h", command.BoolFlag(false),
|
||||
"display artifact headers",
|
||||
).Flag(
|
||||
&flagForce,
|
||||
"f", command.BoolFlag(false),
|
||||
"force display (skip validations)",
|
||||
)
|
||||
|
||||
c.MustParse(os.Args[1:], func(err error) {
|
||||
log.Fatal(err)
|
||||
})
|
||||
}
|
||||
func Disassemble(ir []byte, real bool) (string, error) {
|
||||
return "hello world", nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user