Truncate all hashes to 16 characters to save memory

This commit is contained in:
Tad 2017-12-27 17:15:38 -05:00
parent ed4d031d1f
commit 0720ccbec1
4 changed files with 9 additions and 8 deletions

View file

@ -6,7 +6,7 @@ android {
applicationId "us.spotco.malwarescanner"
minSdkVersion 21
targetSdkVersion 26
versionCode 26
versionCode 27
versionName "2.2"
}
buildTypes {

View file

@ -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();
}
}

View file

@ -147,9 +147,9 @@ class MalwareScanner extends AsyncTask<Set<File>, 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();
}

View file

@ -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;