J'ai une archive gzip avec des données de fuite. Si je le décompresse en utilisant gzip -d
il me dit: " décompression OK, trailing garbage ignoré " (même chose pour gzip -t
qui peut être utilisé comme méthode de détection de ces données).
Maintenant, je voudrais apprendre à connaître cette poubelle, mais étrangement je ne pouvais find aucun moyen de l'extraire. gzip -l --verbose
me dit que la taille "compressée" de l'archive est la taille du file (c.-à-d. avec datatables de fin), c'est faux et pas utile. file
est également sans aide, alors que puis-je faire?
Compris maintenant comment get datatables de suivi.
J'ai créé un script Perl qui crée un file avec datatables de fin, il est fortement basé sur https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=604617#10 :
#!/usr/bin/perl use ssortingct; use warnings; use IO::Uncompress::Gunzip qw(:all); use IO::File; unshift(@ARGV, '-') unless -t STDIN; my $input_file_name = shift; my $output_file_name = shift; if (! defined $input_file_name) { die <<END; Usage: $0 ( GZIP_FILE | - ) [OUTPUT_FILE] ... | $0 [OUTPUT_FILE] Extracts the trailing data of a gzip archive. Outputs to stdout if no OUTPUT_FILE is given. - as input file file causes it to read from stdin. Examples: $0 archive.tgz trailing.bin cat archive.tgz | $0 END } my $in = new IO::File "<$input_file_name" or die "Couldn't open gzip file.\n"; gunzip $in => "/dev/null", TrailingData => my $trailing; undef $in; if (! defined $output_file_name) { print $trailing; } else { open(my $fh, ">", $output_file_name) or die "Couldn't open output file.\n"; print $fh $trailing; close $fh; print "Output file written.\n"; }