diff --git a/app/build.gradle b/app/build.gradle index 2ca9262..9bf62b4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,7 +6,7 @@ android { applicationId "us.spotco.malwarescanner" minSdkVersion 21 targetSdkVersion 26 - versionCode 26 + versionCode 27 versionName "2.2" } buildTypes { diff --git a/app/src/main/java/us/spotco/malwarescanner/Database.java b/app/src/main/java/us/spotco/malwarescanner/Database.java index 1f23e43..138f2b3 100644 --- a/app/src/main/java/us/spotco/malwarescanner/Database.java +++ b/app/src/main/java/us/spotco/malwarescanner/Database.java @@ -103,7 +103,7 @@ class Database { String line; while ((line = reader.readLine()) != null) { String[] lineS = line.split(":"); - signaturesMD5.put(lineS[0], lineS[2]); + signaturesMD5.put(lineS[0].substring(0, Utils.MAX_HASH_LENGTH), lineS[2]); } reader.close(); } catch (Exception e) { @@ -116,9 +116,9 @@ class Database { while ((line = reader.readLine()) != null) { String[] lineS = line.split(":"); if (lineS[0].length() == 32) { - signaturesSHA1.put(lineS[0], lineS[2]); + signaturesSHA1.put(lineS[0].substring(0, Utils.MAX_HASH_LENGTH), lineS[2]); } else { - signaturesSHA256.put(lineS[0], lineS[2]); + signaturesSHA256.put(lineS[0].substring(0, Utils.MAX_HASH_LENGTH), lineS[2]); } } reader.close(); @@ -128,7 +128,7 @@ class Database { } } } - signaturesMD5.put("44d88612fea8a8f36de82e1278abb02f", "Eicar-Test-Signature"); + signaturesMD5.put("44d88612fea8a8f36de82e1278abb02f".substring(0, Utils.MAX_HASH_LENGTH), "Eicar-Test-Signature"); System.gc(); } } diff --git a/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java b/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java index 79d9e83..689f1f6 100644 --- a/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java +++ b/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java @@ -147,9 +147,9 @@ class MalwareScanner extends AsyncTask, Object, String> { fis.close(); - fileHashesMD5.put(String.format("%032x", new BigInteger(1, digestMD5.digest())), file); - fileHashesSHA1.put(String.format("%032x", new BigInteger(1, digestSHA1.digest())), file); - fileHashesSHA256.put(String.format("%064x", new BigInteger(1, digestSHA256.digest())), file); + fileHashesMD5.put(String.format("%032x", new BigInteger(1, digestMD5.digest())).substring(0, Utils.MAX_HASH_LENGTH), file); + fileHashesSHA1.put(String.format("%032x", new BigInteger(1, digestSHA1.digest())).substring(0, Utils.MAX_HASH_LENGTH), file); + fileHashesSHA256.put(String.format("%064x", new BigInteger(1, digestSHA256.digest())).substring(0, Utils.MAX_HASH_LENGTH), file); } catch (Exception e) { e.printStackTrace(); } diff --git a/app/src/main/java/us/spotco/malwarescanner/Utils.java b/app/src/main/java/us/spotco/malwarescanner/Utils.java index ced254d..1a5f64e 100644 --- a/app/src/main/java/us/spotco/malwarescanner/Utils.java +++ b/app/src/main/java/us/spotco/malwarescanner/Utils.java @@ -16,6 +16,7 @@ class Utils { public final static int MAX_SCAN_SIZE = (1000 * 1000) * 80; //80MB public final static int MAX_SCAN_SIZE_REALTIME = MAX_SCAN_SIZE / 2; //40MB + public final static int MAX_HASH_LENGTH = 16; public static int FILES_SCANNED = 0; private static ThreadPoolExecutor threadPoolExecutor = null;