2024-07-17 01:37:26 -04:00
|
|
|
package x64dbg
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"encoding/json"
|
|
|
|
|
"os"
|
|
|
|
|
)
|
|
|
|
|
|
2024-08-01 01:19:29 -04:00
|
|
|
// Describes the format of an x64dbg type information file
|
2024-07-17 01:37:26 -04:00
|
|
|
type Types struct {
|
2024-08-01 01:19:29 -04:00
|
|
|
Types []AliasType `json:"types,omitempty"`
|
2024-07-17 01:37:26 -04:00
|
|
|
Structs []StructType `json:"structs,omitempty"`
|
|
|
|
|
Unions []UnionType `json:"unions,omitempty"`
|
|
|
|
|
Functions []FunctionType `json:"functions,omitempty"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func SaveTypes(name string, types *Types) (err error) {
|
|
|
|
|
var file *os.File
|
|
|
|
|
file, err = os.Create(name)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
e := json.NewEncoder(file)
|
|
|
|
|
e.SetIndent("", " ")
|
|
|
|
|
if err = e.Encode(types); err != nil {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err = file.Close()
|
|
|
|
|
return
|
|
|
|
|
}
|
2024-08-01 01:19:29 -04:00
|
|
|
|
|
|
|
|
func LoadTypes(name string) (types *Types, err error) {
|
|
|
|
|
var file *os.File
|
|
|
|
|
file, err = os.Open(name)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
types = new(Types)
|
|
|
|
|
|
|
|
|
|
e := json.NewDecoder(file)
|
|
|
|
|
if err = e.Decode(types); err != nil {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err = file.Close()
|
|
|
|
|
return
|
|
|
|
|
}
|