From d381a0c3b24c686df7d2abc5f69d0e81e9065479 Mon Sep 17 00:00:00 2001 From: Dirk Engling <erdgeist@erdgeist.org> Date: Sat, 18 Jan 2014 06:46:27 +0100 Subject: Make extractor work with un-encrypted files --- src/extractblocks_new.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/extractblocks_new.c b/src/extractblocks_new.c index 53c16f2..c3fb899 100644 --- a/src/extractblocks_new.c +++ b/src/extractblocks_new.c @@ -89,11 +89,11 @@ int main( int args, char **argv ) df[i] = mf[i] ^ mantra[i%4]; /* Get values from LHA header */ - header_len = df[0]; + header_len = df[0] + 2; filename_len = df[21]; /* Copy rest of header, so we can checksum */ - for( i=enc_len; i<header_len+2; ++i) + for( i=enc_len; i<header_len; ++i) df[i] = mf[i]; /* Make up new sequental file name */ @@ -102,12 +102,12 @@ int main( int args, char **argv ) memcpy( ((uint8_t*)df) + 22, filename, filename_len); /* Recalculate checksum with new file name */ - df[1] = 0; for( i=2; i<header_len+2; ++i) df[1] += df[i]; + df[1] = 0; for( i=2; i<header_len; ++i) df[1] += df[i]; /* Open file and dump our de-"crypted" header and then rest of file */ i = open( filename, O_CREAT | O_TRUNC | O_WRONLY, 0644 ); - write( i, df, enc_len ); - write( i, mf + enc_len, offset - oldoffset - enc_len ); + write( i, df, header_len ); + write( i, mf + header_len, offset - oldoffset - header_len ); close( i ); } oldoffset = offset; -- cgit v1.2.3