add replace prints by logs

This commit is contained in:
Jean-Marie 'Histausse' Mineau 2025-01-28 15:28:13 +01:00
parent 0e2bb5fe2d
commit 4b4ef6032d
Signed by: histausse
GPG key ID: B66AEEDA9B645AD2
4 changed files with 21 additions and 14 deletions

View file

@ -1,3 +1,4 @@
use log::warn;
use std::io::{SeekFrom, Write}; use std::io::{SeekFrom, Write};
use crate::compression::CompressionMethod; use crate::compression::CompressionMethod;
@ -122,7 +123,7 @@ impl Serializable for FileHeader {
let field = ExtraField::deserialize(input); let field = ExtraField::deserialize(input);
if let Err(err) = field { if let Err(err) = field {
println!( warn!(
"Failed to parsed extra field in {}: {err:?}", "Failed to parsed extra field in {}: {err:?}",
header.get_name() header.get_name()
); );
@ -135,7 +136,7 @@ impl Serializable for FileHeader {
} }
} }
if extra_size_read > extra_field_length as usize { 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(); let size = header.extra_field.pop().unwrap().size();
input.seek(SeekFrom::Current(-(size as i64))).unwrap(); input.seek(SeekFrom::Current(-(size as i64))).unwrap();
} }

View file

@ -1,5 +1,7 @@
use std::io::{SeekFrom, Write}; use std::io::{SeekFrom, Write};
use log::warn;
use crate::compression::CompressionMethod; use crate::compression::CompressionMethod;
use crate::error::Error; use crate::error::Error;
use crate::extra_fields::{ExtraField, GenericExtraField, Zip64ExtraField}; use crate::extra_fields::{ExtraField, GenericExtraField, Zip64ExtraField};
@ -99,9 +101,9 @@ impl Serializable for LocalFileHeader {
let field = ExtraField::deserialize(input); let field = ExtraField::deserialize(input);
if let Err(err) = field { if let Err(err) = field {
println!( warn!(
"Failed to parsed extra field in {}: {err:?}", "Failed to parsed extra field in {}: {err:?}",
header.get_name() header.get_name(),
); );
input.seek(SeekFrom::Start(field_off)).unwrap(); input.seek(SeekFrom::Start(field_off)).unwrap();
break; break;
@ -129,7 +131,7 @@ impl Serializable for LocalFileHeader {
&& header.malformed_extra_field != vec![0, 0] && header.malformed_extra_field != vec![0, 0]
&& header.malformed_extra_field != vec![0, 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(); //input.seek(SeekFrom::Start(end_of_extra_field)).unwrap();
for field in &mut header.extra_field { for field in &mut header.extra_field {

View file

@ -1,10 +1,11 @@
//use apk_frauder::ZipFileReader; use apk_frauder::ZipFileReader;
use std::collections::HashMap; use std::collections::HashMap;
use std::env; use std::env;
use std::fs::File; use std::fs::File;
use std::io::Cursor; use std::io::Cursor;
fn main() { fn main() {
/*
apk_frauder::replace_dex( apk_frauder::replace_dex(
"app-release.apk", "app-release.apk",
"app-instrumented.apk", "app-instrumented.apk",
@ -19,5 +20,8 @@ fn main() {
env::var("HOME").expect("$HOME not set") env::var("HOME").expect("$HOME not set")
)), )),
None::<HashMap<String, Option<Cursor<&[u8]>>>>, None::<HashMap<String, Option<Cursor<&[u8]>>>>,
); );*/
let file = File::open("zagruski.apk").unwrap();
let reader = ZipFileReader::new(file);
println!("{:#?}", &reader.files[..2]);
} }

View file

@ -1,4 +1,4 @@
use log::warn; use log::{info, warn};
use std::collections::HashMap; use std::collections::HashMap;
use std::io::{Read, Seek, SeekFrom}; use std::io::{Read, Seek, SeekFrom};
@ -275,8 +275,8 @@ impl<T: Read + Seek> ZipFileReader<T> {
let mut lst_offset = 0; let mut lst_offset = 0;
for file in files.iter() { for file in files.iter() {
if file.get_offset_local_header() != lst_offset { if file.get_offset_local_header() != lst_offset {
println!( info!(
"Hole before {} between 0x{:x} and 0x{:x}", "Hole in zip before {} between 0x{:x} and 0x{:x}",
file.get_name(), file.get_name(),
lst_offset, lst_offset,
file.get_offset_local_header() file.get_offset_local_header()
@ -288,8 +288,8 @@ impl<T: Read + Seek> ZipFileReader<T> {
if let Some(apk_sign_block) = &self.apk_sign_block { if let Some(apk_sign_block) = &self.apk_sign_block {
let apk_sb_off = self.get_cd_offset() - apk_sign_block.size() as u64; let apk_sb_off = self.get_cd_offset() - apk_sign_block.size() as u64;
if apk_sb_off != lst_offset { if apk_sb_off != lst_offset {
println!( info!(
"Hole before apk signing block, between 0x{:x} and 0x{:x}", "Hole in zip before apk signing block, between 0x{:x} and 0x{:x}",
lst_offset, apk_sb_off lst_offset, apk_sb_off
); );
} }
@ -297,8 +297,8 @@ impl<T: Read + Seek> ZipFileReader<T> {
lst_offset = self.get_cd_offset(); lst_offset = self.get_cd_offset();
} }
if self.get_cd_offset() != lst_offset { if self.get_cd_offset() != lst_offset {
println!( info!(
"Hole before central directory between 0x{:x} and 0x{:x}", "Hole in zip before central directory between 0x{:x} and 0x{:x}",
lst_offset, lst_offset,
self.get_cd_offset() self.get_cd_offset()
); );