mirror of
https://github.com/MaintainTeam/Hypatia.git
synced 2025-02-28 21:38:21 +03:00
Use gzip databases instead for download and storage savings
This commit is contained in:
parent
6d01c4934d
commit
272a51304c
3 changed files with 66 additions and 36 deletions
BIN
.idea/caches/build_file_checksums.ser
generated
Normal file
BIN
.idea/caches/build_file_checksums.ser
generated
Normal file
Binary file not shown.
29
.idea/codeStyles/Project.xml
generated
Normal file
29
.idea/codeStyles/Project.xml
generated
Normal file
|
@ -0,0 +1,29 @@
|
|||
<component name="ProjectCodeStyleConfiguration">
|
||||
<code_scheme name="Project" version="173">
|
||||
<Objective-C-extensions>
|
||||
<file>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
|
||||
</file>
|
||||
<class>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
|
||||
</class>
|
||||
<extensions>
|
||||
<pair source="cpp" header="h" fileNamingConvention="NONE" />
|
||||
<pair source="c" header="h" fileNamingConvention="NONE" />
|
||||
</extensions>
|
||||
</Objective-C-extensions>
|
||||
</code_scheme>
|
||||
</component>
|
|
@ -24,14 +24,17 @@ import android.widget.TextView;
|
|||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Proxy;
|
||||
import java.net.URL;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
|
||||
class Database {
|
||||
|
||||
|
@ -79,33 +82,33 @@ class Database {
|
|||
|
||||
prefs = context.getSharedPreferences(BuildConfig.APPLICATION_ID, Context.MODE_PRIVATE);
|
||||
if (prefs.getBoolean("SIGNATURES_EXTENDED", false)) {
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "bofhland_malware_attach.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "crdfam.clamav.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "doppelstern.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "hackingteam.hsb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "malware.expert.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "malwarehash.hsb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "porcupine.hsb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "rfxn.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "rogue.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "spamattach.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "spamimg.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "winnow.attachments.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "winnow_bad_cw.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "winnow_extended_malware.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "winnow_malware.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "bofhland_malware_attach.hdb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "crdfam.clamav.hdb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "doppelstern.hdb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "hackingteam.hsb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "malware.expert.hdb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "malwarehash.hsb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "porcupine.hsb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "rfxn.hdb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "rogue.hdb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "spamattach.hdb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "spamimg.hdb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "winnow.attachments.hdb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "winnow_bad_cw.hdb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "winnow_extended_malware.hdb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "winnow_malware.hdb.gz"));
|
||||
}
|
||||
if (prefs.getBoolean("SIGNATURES_CLAMAV-MAIN", false)) {
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "main.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "main.hsb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "main.hdb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "main.hsb.gz"));
|
||||
}
|
||||
if (prefs.getBoolean("SIGNATURES_CLAMAV-DAILY", false)) {
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "daily.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "daily.hsb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "daily.hdb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "daily.hsb.gz"));
|
||||
}
|
||||
if (prefs.getBoolean("SIGNATURES_CLAMAV-ANDROID", true)) {
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "Android.hdb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "Android.hsb"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "Android.hdb.gz"));
|
||||
signatureDatabases.add(new SignatureDatabase(baseURL + "Android.hsb.gz"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -119,22 +122,20 @@ class Database {
|
|||
for (SignatureDatabase database : signatureDatabases) {
|
||||
File databaseLocation = new File(databasePath + "/" + database.getName());
|
||||
if (databaseLocation.exists()) {
|
||||
if (database.getName().contains(".hdb")) {//.hdb format: md5, size, name
|
||||
try {
|
||||
BufferedReader reader = new BufferedReader(new FileReader(databaseLocation));
|
||||
String line;
|
||||
try {
|
||||
BufferedReader reader;
|
||||
if(databaseLocation.getName().endsWith(".gz")) {
|
||||
reader = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(databaseLocation))));
|
||||
} else {
|
||||
reader = new BufferedReader(new FileReader(databaseLocation));
|
||||
}
|
||||
String line;
|
||||
if (database.getName().contains(".hdb")) {//.hdb format: md5, size, name
|
||||
while ((line = reader.readLine()) != null) {
|
||||
String[] lineS = line.split(":");
|
||||
signaturesMD5.put(lineS[0].substring(0, Utils.MAX_HASH_LENGTH), lineS[2]);
|
||||
}
|
||||
reader.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else if (database.getName().contains(".hsb")) {//.hsb format: sha256, size, name
|
||||
try {
|
||||
BufferedReader reader = new BufferedReader(new FileReader(databaseLocation));
|
||||
String line;
|
||||
} else if (database.getName().contains(".hsb")) {//.hsb format: sha256, size, name
|
||||
while ((line = reader.readLine()) != null) {
|
||||
String[] lineS = line.split(":");
|
||||
if (lineS[0].length() == 32) {
|
||||
|
@ -143,10 +144,10 @@ class Database {
|
|||
signaturesSHA256.put(lineS[0].substring(0, Utils.MAX_HASH_LENGTH), lineS[2]);
|
||||
}
|
||||
}
|
||||
reader.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
reader.close();
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue