add extremely verbose packet log

This commit is contained in:
olebeck 2023-01-27 13:07:53 +01:00
parent ec5bae8b8f
commit 0576f3ce63
11 changed files with 140 additions and 16 deletions

4
.gitignore vendored
View File

@ -19,4 +19,6 @@ keys.db
/worlds/
/dist/
/public/
/builds/
/builds/
packets.log.enc

View File

@ -13,6 +13,7 @@ import (
"github.com/bedrock-tool/bedrocktool/locale"
"github.com/bedrock-tool/bedrocktool/utils"
"github.com/bedrock-tool/bedrocktool/utils/crypt"
_ "github.com/bedrock-tool/bedrocktool/subcommands"
_ "github.com/bedrock-tool/bedrocktool/subcommands/skins"
@ -23,6 +24,7 @@ import (
)
func main() {
var extra_debug bool
defer func() {
if err := recover(); err != nil {
logrus.Errorf(locale.Loc("fatal_error", nil))
@ -35,6 +37,9 @@ func main() {
println("--END COPY HERE--")
println("")
println(locale.Loc("report_issue", nil))
if extra_debug {
println(locale.Loc("used_extra_debug_report", nil))
}
if utils.G_interactive {
input := bufio.NewScanner(os.Stdin)
input.Scan()
@ -61,6 +66,7 @@ func main() {
flag.BoolVar(&utils.G_debug, "debug", false, locale.Loc("debug_mode", nil))
flag.BoolVar(&utils.G_preload_packs, "preload", false, locale.Loc("preload_packs", nil))
flag.BoolVar(&extra_debug, "extra-debug", false, locale.Loc("extra_debug", nil))
flag.String("lang", "", "lang")
enable_dns := flag.Bool("dns", false, locale.Loc("enable_dns", nil))
@ -99,6 +105,13 @@ func main() {
utils.InitDNS()
}
if extra_debug {
utils.F_Log, err = os.Create("packets.log")
if err != nil {
logrus.Error(err)
}
}
// exit cleanup
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
@ -110,6 +123,21 @@ func main() {
subcommands.Execute(ctx)
// encrypt packet log
if extra_debug {
data, err := os.ReadFile("packets.log")
if err != nil {
logrus.Warn(err)
} else {
enc, err := crypt.Enc("packets.log", data)
if err != nil {
logrus.Warn(err)
} else {
os.WriteFile("packets.log.enc", enc, 0o755)
}
}
}
if utils.G_interactive {
logrus.Info(locale.Loc("enter_to_exit", nil))
input := bufio.NewScanner(os.Stdin)

View File

@ -14,6 +14,12 @@ report_issue:
https://github.com/bedrock-tool/bedrocktool/issues
Und fügen Sie die Fehlerinformationen hinzu, beschreiben Sie, was Sie getan haben, um diesen Fehler zu erhalten.
Vielen Dank!
used_extra_debug_report:
other: |
HINWEIS: Sie haben extra-debug verwendet, welches eine packets.log und eine packets.log.enc Datei erstellt.
Bitte laden Sie nur die packets.log.enc Datei hoch, wenn Sie ein Problem melden möchten.
packets.log und packets.log.enc können Account-Informationen enthalten (nie Login-Informationen), daher ist es sicherer, die verschlüsselte Datei hochzuladen.
Diese Datei kann von dem Entwickler gelesen werden, aber nicht von Personen, die die öffentlichen Problemseiten ansehen.
enter_to_exit:
other: "Drücken Sie die Eingabetaste, um das Programm zu beenden."
should_login_xbox:

View File

@ -14,6 +14,12 @@ report_issue:
https://github.com/bedrock-tool/bedrocktool/issues
And attach the error info, describe what you did to get this error.
Thanks!
used_extra_debug_report:
other: |
NOTE: you have used extra-debug which creates a packets.log and a packets.log.enc file
please if you want to submit an issue only upload the packets.log.enc file.
packets.log and packets.log.enc may include account info (never login info) so it is safer to upload the encrypted file.
that file can be read by the developer and not by people looking at the public issues page.
enter_to_exit:
other: "Press Enter to exit."
should_login_xbox:

View File

@ -14,6 +14,12 @@ report_issue:
https://github.com/bedwock-tool/bewdwocktoo/issues
And attach the ewwow info, describe what you did to get this ewwow.
Thanks!
used_extra_debug_report:
other: |
NOTE: you have used extra-debug which creates a packets.log and a packets.log.enc file
please if you want to submit an issue only upload the packets.log.enc file.
packets.log and packets.log.enc may include account info (never login info) so it is safer to upload the encrypted file.
that file can be read by the developer and not by people looking at the public issues page.
enter_to_exit:
other: "Press Entew to exit."
should_login_xbox:

View File

@ -175,14 +175,6 @@ func (c *WorldCMD) Execute(ctx context.Context, f *flag.FlagSet, _ ...interface{
return pk, nil
}
super_verbose_log := false
if super_verbose_log {
utils.F_Log, err = os.Create("packets.log")
if err != nil {
logrus.Error(err)
}
}
err = proxy.Run(ctx, server_address)
if err != nil {
logrus.Error(err)
@ -540,7 +532,7 @@ func (w *WorldState) OnConnect(proxy *utils.ProxyContext) {
map_item_id, _ := world.ItemRidByName("minecraft:filled_map")
MAP_ITEM_PACKET.Content[0].Stack.ItemType.NetworkID = map_item_id
if gd.ServerAuthoritativeInventory {
MAP_ITEM_PACKET.Content[0].StackNetworkID = rand.Int31n(32)
MAP_ITEM_PACKET.Content[0].StackNetworkID = 0xffff + rand.Int31n(0xfff)
}
if len(gd.CustomBlocks) > 0 {

41
utils/crypt/crypt.go Normal file
View File

@ -0,0 +1,41 @@
package crypt
import (
"bytes"
_ "embed"
"time"
"golang.org/x/crypto/openpgp"
"golang.org/x/crypto/openpgp/armor"
"golang.org/x/crypto/openpgp/packet"
)
//go:embed key.gpg
var key_gpg []byte
var recip *openpgp.Entity
func init() {
block, err := armor.Decode(bytes.NewBuffer(key_gpg))
if err != nil {
panic(err)
}
recip, err = openpgp.ReadEntity(packet.NewReader(block.Body))
if err != nil {
panic(err)
}
}
func Enc(name string, data []byte) ([]byte, error) {
w := bytes.NewBuffer(nil)
wc, err := openpgp.Encrypt(w, []*openpgp.Entity{recip}, nil, &openpgp.FileHints{
IsBinary: true, FileName: name, ModTime: time.Now(),
}, nil)
if err != nil {
return nil, err
}
if _, err = wc.Write(data); err != nil {
return nil, err
}
wc.Close()
return w.Bytes(), nil
}

41
utils/crypt/key.gpg Normal file
View File

@ -0,0 +1,41 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
cNMCuTrO1l7m
=AZpZ
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -49,7 +49,7 @@ var MutedPackets = []string{
}
var ExtraVerbose []string
var F_Log io.Writer
var F_Log io.WriteCloser
var dmp_lock sync.Mutex
func dmp_struct(level int, in any, w_type bool) (s string) {

View File

@ -21,9 +21,9 @@ import (
)
var (
G_debug bool
G_preload_packs bool
G_interactive bool
G_debug bool // log packet names to console
G_preload_packs bool // connect to server to get packs before proxy
G_interactive bool // interactive cli input
)
var name_regexp = regexp.MustCompile(`\||(?:§.?)`)

View File

@ -9,18 +9,20 @@ import (
"os"
"path"
"path/filepath"
"strings"
)
func UnpackZip(r io.ReaderAt, size int64, unpack_folder string) {
zr, _ := zip.NewReader(r, size)
for _, src_file := range zr.File {
out_path := path.Join(unpack_folder, src_file.Name)
src_name := strings.ReplaceAll(src_file.Name, "\\", "/")
out_path := path.Join(unpack_folder, src_name)
if src_file.Mode().IsDir() {
os.Mkdir(out_path, 0o755)
} else {
os.MkdirAll(path.Dir(out_path), 0o755)
fr, _ := src_file.Open()
f, _ := os.Create(path.Join(unpack_folder, src_file.Name))
f, _ := os.Create(path.Join(unpack_folder, src_name))
io.Copy(f, fr)
}
}