xeals / signal-back

Decrypt Signal encrypted backups outside the app
Apache License 2.0
700 stars 66 forks source link

panic: runtime error #22

Open zbits opened 6 years ago

zbits commented 6 years ago

I made a Signal backup (554MB) today, then attempted to use: v0.1.6-alpha.1 binary v0.1.5 stable binary git clone compiled code.

All produced a panic when using commands extract or analyse.

panic: runtime error: invalid memory address or nil pointer dereference                                                                                                                                            
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x566634]                                                                                                                                             

goroutine 1 [running]:
github.com/xeals/signal-back/cmd.ExtractAttachments(0xc4200dc0e0, 0x6, 0x0)
        /home/travis/gopath/src/github.com/xeals/signal-back/cmd/extract.go:68 +0x134
github.com/xeals/signal-back/cmd.glob..func2(0xc420088420, 0x0, 0xc420088420)
        /home/travis/gopath/src/github.com/xeals/signal-back/cmd/extract.go:43 +0x8c
github.com/xeals/signal-back/vendor/github.com/urfave/cli.HandleAction(0x5939a0, 0x5dacf0, 0xc420088420, 0xc420082100, 0x0)
        /home/travis/gopath/src/github.com/xeals/signal-back/vendor/github.com/urfave/cli/app.go:490 +0xc8
github.com/xeals/signal-back/vendor/github.com/urfave/cli.Command.Run(0x5cf178, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5d66e7, 0x24, 0x5d6b6a, ...)
        /home/travis/gopath/src/github.com/xeals/signal-back/vendor/github.com/urfave/cli/command.go:210 +0xa36
github.com/xeals/signal-back/vendor/github.com/urfave/cli.(*App).Run(0xc4200841a0, 0xc4200760f0, 0x5, 0x5, 0x0, 0x0)
        /home/travis/gopath/src/github.com/xeals/signal-back/vendor/github.com/urfave/cli/app.go:255 +0x6a0
main.main()
        /home/travis/gopath/src/github.com/xeals/signal-back/main.go:51 +0x2e1

Using Arch Linux 4.17.3-1-ARCH, golang version 1.10.3.

kapue commented 6 years ago

same problem here with 0.1.6-alpha.1 windows.amd64 binary and a ~65 MB backup file.

kapue commented 6 years ago

seems to be a duplicate of https://github.com/xeals/signal-back/issues/12

xeals commented 6 years ago

I'm not sure what's causing this, to be honest. I'm tempted to say it's architecture-dependant, as for me:

produces different results; one gets this error, and the other can read things fine. Are people encountering this issue also able to share their system information, to see if it can be narrowed down?

I'm segfaulting on Linux, Ryzen R5 1600, but completely fine on Linux, Intel i7-5500U.

zbits commented 6 years ago

I was segfaulting on Arch Linux, Intel E8400. The software has changed since then (kernel, Go) so I will recompile and see if I get the same result.

Edit:

I compiled an updated binary. I can "check", "extract" (~480MiB), and "format" as CSV and RAW successfully. I still cannot "format" as XML, but am getting a different abend:

panic: runtime error: index out of range                                                                                                                                                                           

goroutine 1 [running]:
github.com/xeals/signal-back/types.ParametersToPart(0xc4428a6200, 0x19, 0x20, 0x6032b8)
        /home/u/src/go/src/github.com/xeals/signal-back/types/raw.go:325 +0x77f
github.com/xeals/signal-back/types.StatementToPart(0xc44287ab80, 0x6032b8)
        /home/u/src/go/src/github.com/xeals/signal-back/types/raw.go:291 +0x46
github.com/xeals/signal-back/types.NewPartFromStatement(0xc44287ab80, 0x5f8ae0, 0x10, 0x1, 0x0)
        /home/u/src/go/src/github.com/xeals/signal-back/types/sms.go:313 +0x43
github.com/xeals/signal-back/cmd.XML(0xc42000e1c0, 0x61c920, 0xc42000c018, 0x3, 0x1)
        /home/u/src/go/src/github.com/xeals/signal-back/cmd/format.go:192 +0x2c3
github.com/xeals/signal-back/cmd.glob..func4(0xc420076420, 0x0, 0x0)
        /home/u/src/go/src/github.com/xeals/signal-back/cmd/format.go:70 +0x40f
github.com/xeals/signal-back/vendor/github.com/urfave/cli.HandleAction(0x5b7960, 0x6032b0, 0xc420076420, 0xc420058100, 0x0)
        /home/u/src/go/src/github.com/xeals/signal-back/vendor/github.com/urfave/cli/app.go:490 +0xc8
github.com/xeals/signal-back/vendor/github.com/urfave/cli.Command.Run(0x5f6c62, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5fcfae, 0x1f, 0x602548, ...)
        /home/u/src/go/src/github.com/xeals/signal-back/vendor/github.com/urfave/cli/command.go:210 +0xa36
github.com/xeals/signal-back/vendor/github.com/urfave/cli.(*App).Run(0xc4200721a0, 0xc42000e070, 0x7, 0x7, 0x0, 0x0)
        /home/u/src/go/src/github.com/xeals/signal-back/vendor/github.com/urfave/cli/app.go:255 +0x6a0
main.main()
        /home/u/src/go/src/github.com/xeals/signal-back/main.go:52 +0x317
RonaldFindling commented 5 years ago

I also experience the seg fault issue:

signal-back format -f XML signal-2018-10-21-21-08-04.backup > backup.xml
Password: xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x584874]

goroutine 1 [running]:
github.com/xeals/signal-back/types.(*BackupFile).DecryptAttachment(0xc0000e80e0, 0xc0bd7cc390, 0x7f3f95c07080, 0xc000010d80, 0xc000010d80, 0x5cc640)
    /home/ronald/go/src/github.com/xeals/signal-back/types/backup.go:141 +0x124
github.com/xeals/signal-back/cmd.XML(0xc0000e80e0, 0x632980, 0xc00000c018, 0x3, 0x1)
    /home/ronald/go/src/github.com/xeals/signal-back/cmd/format.go:163 +0x718
github.com/xeals/signal-back/cmd.glob..func4(0xc000094580, 0x0, 0x0)
    /home/ronald/go/src/github.com/xeals/signal-back/cmd/format.go:70 +0x3fc
github.com/xeals/signal-back/vendor/github.com/urfave/cli.HandleAction(0x5c20e0, 0x60b998, 0xc000094580, 0xc000068200, 0x0)
    /home/ronald/go/src/github.com/xeals/signal-back/vendor/github.com/urfave/cli/app.go:490 +0xc8
github.com/xeals/signal-back/vendor/github.com/urfave/cli.Command.Run(0x5ff162, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x605590, 0x1f, 0x60ac2a, ...)
    /home/ronald/go/src/github.com/xeals/signal-back/vendor/github.com/urfave/cli/command.go:210 +0x990
github.com/xeals/signal-back/vendor/github.com/urfave/cli.(*App).Run(0xc0000921a0, 0xc00000e050, 0x5, 0x5, 0x0, 0x0)
    /home/ronald/go/src/github.com/xeals/signal-back/vendor/github.com/urfave/cli/app.go:255 +0x687
main.main()
    /home/ronald/go/src/github.com/xeals/signal-back/main.go:52 +0x2d0

Os version

Distributor ID: Ubuntu
Description:    Ubuntu 17.10
Release:    17.10
Codename:   artful

signal-back version (self compiled)

signal-back devel
proto commit: d6610f0

go-version (binary download)

go version go1.11.1 linux/amd64

My signal-xxx.backup file is 3.2 GB

kleajmp commented 5 years ago

I have the same issue with the signal-back_windows_amd64.exe v0.1.6 build from git. The extract command worked perfectly, I have successfully extracted al my media files from the backup but the format command does not work: I get an empty backup.xml file.

Any suggestions?

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x8 pc=0x57b9bf]

goroutine 1 [running]:
github.com/xeals/signal-back/cmd.XML(0xc0420c80e0, 0x606e40, 0xc042004008, 0x3, 0x1)
        /home/xeal/.local/share/go/src/github.com/xeals/signal-back/cmd/format.go:160 +0x15f
github.com/xeals/signal-back/cmd.glob..func4(0xc042086420, 0x0, 0x0)
        /home/xeal/.local/share/go/src/github.com/xeals/signal-back/cmd/format.go:67 +0x416
github.com/xeals/signal-back/vendor/github.com/urfave/cli.HandleAction(0x5a6140, 0x5ef668, 0xc042086420, 0xc04204a100, 0x0)
        /home/xeal/.local/share/go/src/github.com/xeals/signal-back/vendor/github.com/urfave/cli/app.go:490 +0xcf
github.com/xeals/signal-back/vendor/github.com/urfave/cli.Command.Run(0x5e20ed, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e96cb, 0x1f, 0x5ee97c, ...)
        /home/xeal/.local/share/go/src/github.com/xeals/signal-back/vendor/github.com/urfave/cli/command.go:210 +0xa3d
github.com/xeals/signal-back/vendor/github.com/urfave/cli.(*App).Run(0xc0420821a0, 0xc04207a000, 0x9, 0x10, 0x0, 0x0)
        /home/xeal/.local/share/go/src/github.com/xeals/signal-back/vendor/github.com/urfave/cli/app.go:255 +0x6a7
main.main()
        /home/xeal/.local/share/go/src/github.com/xeals/signal-back/main.go:52 +0x31e
crbble commented 5 years ago

I am running into this problem, too. Archlinux, Kernel 4.20.6, go 2:1.12-1, 16 GB RAM. signal-back v0.1.7-alpha.2-1-g7b9bc21-dirty proto commit: d6610f0

Backup is 1.3 Gb, I am sure, I was once able to extract one with 3 GB. I also tried XML. Raw export works nevertheless and gives me a text file with very long lines.```

 [rob@r]$ signal-back_linux_386 format -f CSV -o a.csv -P signal_pass signal.backup 
 panic: runtime error: makeslice: len out of range

 goroutine 1 [running]:
 signal-back/vendor/github.com/xeals/signal-back/types.(*BackupFile).Frame(0xa452140, 0x10e90a50, x0, 0x0)
         /home/rob/prog/go/src/signal-back/vendor/github.com/xeals/signal-back/types/backup.go:94 +0xc8
 signal-back/vendor/github.com/xeals/signal-back/cmd.CSV(0xa452140, 0x81ee1b0, 0x3, 0x821fb10, xa40e008, 0x0, 0x0)
         /home/rob/prog/go/src/signal-back/vendor/github.com/xeals/signal-back/cmd/format.go:93 +0x3f
 signal-back/vendor/github.com/xeals/signal-back/cmd.glob..func4(0xa47e210, 0x0, 0x0)
         /home/rob/prog/go/src/signal-back/vendor/github.com/xeals/signal-back/cmd/format.go:65 +0x29d
 signal-back/vendor/github.com/urfave/cli.HandleAction(0x81c0fa0, 0x81fb5bc, 0xa47e210, 0xa47ac00, x0)
         /home/rob/prog/go/src/signal-back/vendor/github.com/urfave/cli/app.go:490 +0xa2
 signal-back/vendor/github.com/urfave/cli.Command.Run(0x81eec4a, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, x81f4fbe, 0x1f, 0x81fa3da, ...)
         /home/rob/prog/go/src/signal-back/vendor/github.com/urfave/cli/command.go:210 +0x8e4
 signal-back/vendor/github.com/urfave/cli.(*App).Run(0xa400a80, 0xa410050, 0x9, 0xa, 0x0, 0x0)
         /home/rob/prog/go/src/signal-back/vendor/github.com/urfave/cli/app.go:255 +0x566
 main.main()
         /home/rob/prog/go/src/signal-back/main.go:52 +0x1fb

 [rob@r]$ signal-back_linux_amd64 format -f CSV -o a.csv -P signal_pass signal.backup 
 panic: runtime error: invalid memory address or nil pointer dereference
 [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x594179]

 goroutine 1 [running]:
 signal-back/vendor/github.com/xeals/signal-back/cmd.CSV(0xc0000e40e0, 0x5fb38c, 0x3, 0x62e980, xc00000c008, 0x0, 0x0)
         /home/rob/prog/go/src/signal-back/vendor/github.com/xeals/signal-back/cmd/format.go:107 +0xb9
 signal-back/vendor/github.com/xeals/signal-back/cmd.glob..func4(0xc000092420, 0x0, 0x0)
         /home/rob/prog/go/src/signal-back/vendor/github.com/xeals/signal-back/cmd/format.go:65 +0x342
 signal-back/vendor/github.com/urfave/cli.HandleAction(0x5bfba0, 0x609008, 0xc000092420, xc000064200, 0x0)
         /home/rob/prog/go/src/signal-back/vendor/github.com/urfave/cli/app.go:490 +0xc8
 signal-back/vendor/github.com/urfave/cli.Command.Run(0x5fbe36, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, x602223, 0x1f, 0x6077bd, ...)
         /home/rob/prog/go/src/signal-back/vendor/github.com/urfave/cli/command.go:210 +0x9a2
 signal-back/vendor/github.com/urfave/cli.(*App).Run(0xc00008e1a0, 0xc00000e090, 0x9, 0x9, 0x0, x0)
        /home/rob/prog/go/src/signal-back/vendor/github.com/urfave/cli/app.go:255 +0x687> main.main()
        /home/rob/prog/go/src/signal-back/main.go:52 +0x2d0
mumfimum commented 3 years ago

I typed in the following and got this error message. Could you please help??

signal-back_windows_386 format -f CSV -o backup.xml signal-2021-03-10-10-14-21.backup Password: Password: xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx panic: runtime error: makeslice: len out of range

goroutine 1 [running]: github.com/xeals/signal-back/types.(BackupFile).Frame(0x11206080, 0x11f53950, 0x0, 0x0)         /home/travis/gopath/src/github.com/xeals/signal-back/types/backup.go:110 +0xc4 github.com/xeals/signal-back/types.(BackupFile).Consume(0x11206080, 0x111e2120, 0x111e2140, 0x111ea0e0, 0x0, 0x0)         /home/travis/gopath/src/github.com/xeals/signal-back/types/backup.go:242 +0xaf github.com/xeals/signal-back/cmd.CSV(0x11206080, 0x5bcf6f, 0x3, 0x5e59c0, 0x111e20e0, 0x0, 0x0)         /home/travis/gopath/src/github.com/xeals/signal-back/cmd/format.go:105 +0xd6 github.com/xeals/signal-back/cmd.glob..func4(0x111ee2c0, 0x0, 0x0)         /home/travis/gopath/src/github.com/xeals/signal-back/cmd/format.go:68 +0x29c github.com/xeals/signal-back/vendor/github.com/urfave/cli.HandleAction(0x58d0c0, 0x5cba80, 0x111ee2c0, 0x1120ec00, 0x0)         /home/travis/gopath/src/github.com/xeals/signal-back/vendor/github.com/urfave/cli/app.go:490 +0xa2 github.com/xeals/signal-back/vendor/github.com/urfave/cli.Command.Run(0x5bda88, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5c5635, 0x1f, 0x5cadd0, ...)         /home/travis/gopath/src/github.com/xeals/signal-back/vendor/github.com/urfave/cli/command.go:210 +0x8e1 github.com/xeals/signal-back/vendor/github.com/urfave/cli.(*App).Run(0x111de2a0, 0x11206000, 0x7, 0x8, 0x0, 0x0)         /home/travis/gopath/src/github.com/xeals/signal-back/vendor/github.com/urfave/cli/app.go:255 +0x58b main.main()         /home/travis/gopath/src/github.com/xeals/signal-back/main.go:52 +0x210