mirror of
https://github.com/thunderbrewhq/binana.git
synced 2025-12-12 09:52:28 +00:00
feat(go): profiles are now configured by an info.json file
This commit is contained in:
parent
e591b8b17d
commit
9053d61b6b
13 changed files with 222 additions and 111 deletions
31
go/x64dbg/compress.go
Normal file
31
go/x64dbg/compress.go
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
package x64dbg
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
"github.com/pierrec/lz4/v4"
|
||||
)
|
||||
|
||||
type lz4_writecloser struct {
|
||||
w *lz4.Writer
|
||||
}
|
||||
|
||||
func new_lz4_writecloser(w io.Writer) (l *lz4_writecloser, err error) {
|
||||
l = new(lz4_writecloser)
|
||||
l.w = lz4.NewWriter(w)
|
||||
if err = l.w.Apply(lz4.LegacyOption(true)); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (l *lz4_writecloser) Write(b []byte) (n int, err error) {
|
||||
n, err = l.w.Write(b)
|
||||
return
|
||||
}
|
||||
|
||||
func (l *lz4_writecloser) Close() (err error) {
|
||||
err = l.w.Close()
|
||||
return
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@ package x64dbg
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io"
|
||||
"os"
|
||||
)
|
||||
|
||||
|
|
@ -59,19 +60,37 @@ type Database struct {
|
|||
Breakpoints []Breakpoint `json:"breakpoints,omitempty"`
|
||||
}
|
||||
|
||||
func SaveDatabase(name string, database *Database) (err error) {
|
||||
func SaveDatabase(name string, database *Database, compress bool) (err error) {
|
||||
var file *os.File
|
||||
file, err = os.Create(name)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
e := json.NewEncoder(file)
|
||||
e.SetIndent("", " ")
|
||||
var writecloser io.WriteCloser = file
|
||||
|
||||
if compress {
|
||||
writecloser, err = new_lz4_writecloser(file)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
e := json.NewEncoder(writecloser)
|
||||
if !compress {
|
||||
e.SetIndent("", " ")
|
||||
}
|
||||
if err = e.Encode(database); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
err = file.Close()
|
||||
if err = writecloser.Close(); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if compress {
|
||||
err = file.Close()
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue