pajowu / signal-backup-decode

Decode Signal Backups
GNU General Public License v3.0
212 stars 17 forks source link

lacking instructions and error running #12

Closed tegbuh closed 4 years ago

tegbuh commented 5 years ago

I'm failing to get signal-backup-decode to run. I followed all the instructions, except I don't know what to put for sqlite3 path except what my finder shows, which is either /usr/lib/python3.5/sqlite3 or /usr/lib/python2.7/sqlite3, and I don't know if either of those are correct. How do I find my "sqlite path" and what's wrong with my command?

command: signal-backup-decode -o -p --sqlite-path /usr/lib/python3.5/sqlite3

result: thread 'main' panicked at 'Backup file could not be opened: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }', libcore/result.rs:1009:5 note: Run with RUST_BACKTRACE=1 for a backtrace.

Running with sudo doesn't fix it. The password is verified and entered with no spaces per the manual.

Thank you.

pajowu commented 5 years ago

The --sqlite-path options specified where the database containing your messages should be written. You propably want something like $HOME/Desktop/messages.db. Please check if that works and send me the output of RUST_BACKTRACE=1 signal-backup-decode -o -p $HOME/Desktop/messages.db otherwise

tegbuh commented 5 years ago

On Tue, 30 Apr 2019 10:07:20 -0700 pajowu notifications@github.com wrote:

--- Start of PGP/Inline encrypted data --- The --sqlite-path options specified where the database containing your messages should be written. You propably want something like $HOME/Desktop/messages.db. Please check if that works and send me the output of RUST_BACKTRACE=1 signal-backup-decode -o -p $HOME/Desktop/messages.db otherwise

I don't understand why I need the -o if --sqlite-path specifies the destination. Running with RUST_BACKTRACE=1 produces:

stack backtrace: 0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace 1: std::sys_common::backtrace::print 2: std::panicking::default_hook::{{closure}} 3: std::panicking::default_hook 4: std::panicking::rust_panic_with_hook 5: std::panicking::continue_panic_fmt 6: rust_begin_unwind 7: core::panicking::panic_fmt 8: core::result::unwrap_failed 9: signal_backup_decode::main 10: std::rt::lang_start::{{closure}} 11: std::panicking::try::do_call 12: __rust_maybe_catch_panic 13: std::rt::lang_start_internal 14: main 15: __libc_start_main 16: _start

Thanks

pajowu commented 5 years ago

-o specified the directory to save the output to. This includes attachments and avatar pictures. --splite-path is an optional parameter to change the name of the message database. Please try again without specifying it and send me the full command you use to start the tool. Did you specify the signal backup file?

tegbuh commented 5 years ago

On Thu, 02 May 2019 01:10:11 -0700 pajowu notifications@github.com wrote:

--- Start of PGP/Inline encrypted data --- -o specified the directory to save the output to. This includes attachments and avatar pictures. --splite-path is an optional parameter to change the name of the message database. Please try again without specifying it and send me the full command you use to start the tool. Did you specify the signal backup file?

I removed the --sqlite-path parameter and did specify the signal backup file. Command:

signal-backup-decode -o <destination path (confirmed exists)> -p <password (confirmed to work)> <signal .backup file (confirmed exists)>

results in:

error: The following required arguments were not provided: --sqlite-path

USAGE: signal-backup-decode <--output-path |--sqlite-path

|--attachment-path |--avatar-path |--config-path > <--password |--password_file > For more information try --help
protist commented 5 years ago

I also needed to add the sqlite_path to make it work. i.e. my final command was

signal-backup-decode -o /path/to/signal_export -f password.txt --sqlite-path /path/to/signal_export.db /path/to/signal-2019-05-09-00-05-04.backup

(Also, I spent a while trying to run the program on the sql file from Signal Desktop program, which failed. I then realised that we were meant to export from the phone app, then run signal-backup-decode on the backup.)

tegbuh commented 5 years ago

On Thu, 09 May 2019 15:20:43 -0700 protist notifications@github.com wrote:

--- Start of PGP/Inline encrypted data --- I also needed to add the sqlite_path to make it work. i.e. my final command was

signal-backup-decode -o /path/to/signal_export -f password.txt

--sqlite-path /path/to/signal_export.db /path/to/signal-2019-05-09-00-05-04.backup

(Also, I spent a while trying to run the program on the sql file from Signal Desktop program, which failed. I then realised that we were meant to export from the phone app, then run signal-backup-decode on the backup.)

Signal Desktop is an extension of the phone app and I've found it's not very useful on its own and has major limitations and drawbacks.

So is signal-backup-decode supposed to create the .db file or point to an existing one? I have no such file.

The command (obviously using my own paths, etc):

signal-backup-decode -o /path/to/signal_export -f password.txt --sqlite-path /path/to/signal_export.db /path/to/signal-####-##-##-##-##-##.backup

produces:

thread 'main' panicked at 'called Result::unwrap() on an Err value: Error(MacVerificationError([186, 104, 71, 197, 250, 194, 22, 128, 54, 215], [133, 36, 185, 208, 154, 197, 252, 17, 89, 225]), State { next_error: None, backtrace: None })', libcore/result.rs:1009:5 note: Run with RUST_BACKTRACE=1 for a backtrace.

The command:

RUST_BACKTRACE=1 signal-backup-decode -o /path/to/signal_export -f password.txt --sqlite-path /path/to/signal_export.db /path/to/signal-####-##-##-##-##-##.backup

produces:

thread 'main' panicked at 'called Result::unwrap() on an Err value: Error(MacVerificationError([186, 104, 71, 197, 250, 194, 22, 128, 54, 215], [133, 36, 185, 208, 154, 197, 252, 17, 89, 225]), State { next_error: None, backtrace: Some(stack backtrace: 0: error_chain::make_backtrace::hd4c090a1f57d1227 (0x5645bd2ccc19) 1: <error_chain::State as core::default::Default>::default::h3d13fb9ab1e4395f (0x5645bd2ccca5) 2: signal_backup_decode::decode_backup::h8404c268817ebe9c (0x5645bd1a12c0) 3: signal_backup_decode::main::heb706a79637dd2f0 (0x5645bd1a6f8f) 4: std::rt::lang_start::{{closure}}::h8f33557e29a5bdc9 (0x5645bd18e391) 5: std::panicking::try::do_call::hbfef2ca7875c6284 (0x5645bd37c7a2) 6: rust_maybe_catch_panic (0x5645bd3893b9) 7: std::rt::lang_start_internal::h1046fd32b686a071 (0x5645bd36ce7a) 8: main (0x5645bd1a81e4) 9: libc_start_main (0x7fdf56e4282f) 10: _start (0x5645bd178188) 11: (0x0)) })', libcore/result.rs:1009:5 stack backtrace: 0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace 1: std::sys_common::backtrace::print 2: std::panicking::default_hook::{{closure}} 3: std::panicking::default_hook 4: std::panicking::rust_panic_with_hook 5: std::panicking::continue_panic_fmt 6: rust_begin_unwind 7: core::panicking::panic_fmt 8: core::result::unwrap_failed 9: signal_backup_decode::main 10: std::rt::lang_start::{{closure}} 11: std::panicking::try::do_call 12: rust_maybe_catch_panic 13: std::rt::lang_start_internal 14: main 15: libc_start_main 16: _start

protist commented 5 years ago

Signal Desktop is an extension of the phone app and I've found it's not very useful on its own and has major limitations and drawbacks.

I agree. It was more a comment for the dev, if they wanted to clarify the readme.

So is signal-backup-decode supposed to create the .db file or point to an existing one?

For me, signal-backup-decode itself created signal_export.db as the export file. Sorry, looks like your problems might be unrelated. I just thought I'd post because I had some issues too.

pajowu commented 4 years ago

I just checked and a working command is

cargo run -- signal-####-##-##-##-##-##.backup --password_file ./signal-password.txt --sqlite-path ./signal.db
tegbuh commented 4 years ago

On Wed, 11 Sep 2019 10:25:43 -0700 pajowu notifications@github.com wrote:

--- Start of PGP/Inline encrypted data --- I just checked and a working command is


cargo run -- signal-####-##-##-##-##-##.backup
--password_file ./signal-password.txt --sqlite-path ./signal.db ```

3 questions please..

When I installed the package it said: warning: be sure to add /home/user/.cargo/bin to your PATH to be able to run the installed binaries

So I did: export PATH=$PATH:/home/user/.cargo/bin

1) I don't have a ./signal.db file anywhere in my file system if that matters. If it does how do I fix that?

My signal backup file and password file are stored in /data

When I tried your command (running it from /data) I get: error: a bin target must be available for cargo run

I read on stackoverflow.com that it may have to do with 'main.rs' but there are several versions of that in the subdirectories of ~/.cargo/registry/src/github.com-1ecc6299db9ec823

2) So what is the 'bin target' and how do I point the command to it or otherwise resolve the error?

3) Is there a certain format the password has to be in?

Thanks