diff --git a/apk_frauder/src/file_header.rs b/apk_frauder/src/file_header.rs index 1968703..6b4e0b6 100644 --- a/apk_frauder/src/file_header.rs +++ b/apk_frauder/src/file_header.rs @@ -1,3 +1,4 @@ +use log::warn; use std::io::{SeekFrom, Write}; use crate::compression::CompressionMethod; @@ -122,7 +123,7 @@ impl Serializable for FileHeader { let field = ExtraField::deserialize(input); if let Err(err) = field { - println!( + warn!( "Failed to parsed extra field in {}: {err:?}", header.get_name() ); @@ -135,7 +136,7 @@ impl Serializable for FileHeader { } } if extra_size_read > extra_field_length as usize { - println!("Failed to parse last extra field in {}", header.get_name()); + warn!("Failed to parse last extra field in {}", header.get_name()); let size = header.extra_field.pop().unwrap().size(); input.seek(SeekFrom::Current(-(size as i64))).unwrap(); } diff --git a/apk_frauder/src/local_file_header.rs b/apk_frauder/src/local_file_header.rs index 17fd0d0..2b4a5ba 100644 --- a/apk_frauder/src/local_file_header.rs +++ b/apk_frauder/src/local_file_header.rs @@ -1,5 +1,7 @@ use std::io::{SeekFrom, Write}; +use log::warn; + use crate::compression::CompressionMethod; use crate::error::Error; use crate::extra_fields::{ExtraField, GenericExtraField, Zip64ExtraField}; @@ -99,9 +101,9 @@ impl Serializable for LocalFileHeader { let field = ExtraField::deserialize(input); if let Err(err) = field { - println!( + warn!( "Failed to parsed extra field in {}: {err:?}", - header.get_name() + header.get_name(), ); input.seek(SeekFrom::Start(field_off)).unwrap(); break; @@ -129,7 +131,7 @@ impl Serializable for LocalFileHeader { && header.malformed_extra_field != vec![0, 0] && header.malformed_extra_field != vec![0, 0, 0] { - println!("Failed to parse last extra field in {}", header.get_name()); + warn!("Failed to parse last extra field in {}", header.get_name()); } //input.seek(SeekFrom::Start(end_of_extra_field)).unwrap(); for field in &mut header.extra_field { diff --git a/apk_frauder/src/main.rs b/apk_frauder/src/main.rs index 124ab0c..12f6f25 100644 --- a/apk_frauder/src/main.rs +++ b/apk_frauder/src/main.rs @@ -1,10 +1,11 @@ -//use apk_frauder::ZipFileReader; +use apk_frauder::ZipFileReader; use std::collections::HashMap; use std::env; use std::fs::File; use std::io::Cursor; fn main() { + /* apk_frauder::replace_dex( "app-release.apk", "app-instrumented.apk", @@ -19,5 +20,8 @@ fn main() { env::var("HOME").expect("$HOME not set") )), None::>>>, - ); + );*/ + let file = File::open("zagruski.apk").unwrap(); + let reader = ZipFileReader::new(file); + println!("{:#?}", &reader.files[..2]); } diff --git a/apk_frauder/src/zip_reader.rs b/apk_frauder/src/zip_reader.rs index e80beb1..0b2f8e2 100644 --- a/apk_frauder/src/zip_reader.rs +++ b/apk_frauder/src/zip_reader.rs @@ -1,4 +1,4 @@ -use log::warn; +use log::{info, warn}; use std::collections::HashMap; use std::io::{Read, Seek, SeekFrom}; @@ -275,8 +275,8 @@ impl ZipFileReader { let mut lst_offset = 0; for file in files.iter() { if file.get_offset_local_header() != lst_offset { - println!( - "Hole before {} between 0x{:x} and 0x{:x}", + info!( + "Hole in zip before {} between 0x{:x} and 0x{:x}", file.get_name(), lst_offset, file.get_offset_local_header() @@ -288,8 +288,8 @@ impl ZipFileReader { if let Some(apk_sign_block) = &self.apk_sign_block { let apk_sb_off = self.get_cd_offset() - apk_sign_block.size() as u64; if apk_sb_off != lst_offset { - println!( - "Hole before apk signing block, between 0x{:x} and 0x{:x}", + info!( + "Hole in zip before apk signing block, between 0x{:x} and 0x{:x}", lst_offset, apk_sb_off ); } @@ -297,8 +297,8 @@ impl ZipFileReader { lst_offset = self.get_cd_offset(); } if self.get_cd_offset() != lst_offset { - println!( - "Hole before central directory between 0x{:x} and 0x{:x}", + info!( + "Hole in zip before central directory between 0x{:x} and 0x{:x}", lst_offset, self.get_cd_offset() );