mirror of
https://github.com/MaintainTeam/Hypatia.git
synced 2025-03-01 05:48:23 +03:00
Script updates
Signed-off-by: Tavi <tavi@divested.dev>
This commit is contained in:
parent
c74c223197
commit
f02e35523f
1 changed files with 50 additions and 39 deletions
|
@ -28,6 +28,7 @@ import java.io.FileReader;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.stream.Stream;
|
||||||
import java.util.zip.GZIPInputStream;
|
import java.util.zip.GZIPInputStream;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
@ -86,8 +87,13 @@ public class Main {
|
||||||
|
|
||||||
System.out.println("Processing signatures:");
|
System.out.println("Processing signatures:");
|
||||||
File[] databases = new File(args[0]).listFiles();
|
File[] databases = new File(args[0]).listFiles();
|
||||||
|
File extras = new File(args[0] + "../extras/");
|
||||||
|
if(extras.exists()) {
|
||||||
|
databases = Stream.concat(Arrays.stream(databases), Arrays.stream(extras.listFiles())).toArray(File[]::new);
|
||||||
|
}
|
||||||
Arrays.sort(databases);
|
Arrays.sort(databases);
|
||||||
for (File databaseLocation : databases) {
|
for (File databaseLocation : databases) {
|
||||||
|
if(databaseLocation.isFile()) {
|
||||||
System.out.println("\t" + databaseLocation.getName());
|
System.out.println("\t" + databaseLocation.getName());
|
||||||
amtPreviousSignaturesMD5 = amtSignaturesAddedMD5;
|
amtPreviousSignaturesMD5 = amtSignaturesAddedMD5;
|
||||||
amtPreviousSignaturesSHA1 = amtSignaturesAddedSHA1;
|
amtPreviousSignaturesSHA1 = amtSignaturesAddedSHA1;
|
||||||
|
@ -105,7 +111,7 @@ public class Main {
|
||||||
while ((line = reader.readLine()) != null) {
|
while ((line = reader.readLine()) != null) {
|
||||||
if (line.length() > 0 && line.contains(":")) {
|
if (line.length() > 0 && line.contains(":")) {
|
||||||
String[] lineS = line.trim().toLowerCase().split(":");
|
String[] lineS = line.trim().toLowerCase().split(":");
|
||||||
addChecked(lineS[0].trim());
|
addChecked(lineS[0].trim(), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (databaseLocation.getName().endsWith(".md5")
|
} else if (databaseLocation.getName().endsWith(".md5")
|
||||||
|
@ -113,15 +119,19 @@ public class Main {
|
||||||
|| databaseLocation.getName().endsWith(".sha256")
|
|| databaseLocation.getName().endsWith(".sha256")
|
||||||
|| databaseLocation.getName().endsWith(".hashes")) {//one signature per line
|
|| databaseLocation.getName().endsWith(".hashes")) {//one signature per line
|
||||||
while ((line = reader.readLine()) != null) {
|
while ((line = reader.readLine()) != null) {
|
||||||
addChecked(line.trim().toLowerCase());
|
addChecked(line.trim().toLowerCase(), true);
|
||||||
}
|
}
|
||||||
} else if (databaseLocation.getName().endsWith(".loki")) {//.loki format: hash;comment
|
} else if (databaseLocation.getName().endsWith(".loki")) {//.loki format: hash;comment
|
||||||
while ((line = reader.readLine()) != null) {
|
while ((line = reader.readLine()) != null) {
|
||||||
if (line.length() > 0 && line.contains(";")) {
|
if (line.length() > 0 && line.contains(";")) {
|
||||||
String[] lineS = line.trim().toLowerCase().split(";");
|
String[] lineS = line.trim().toLowerCase().split(";");
|
||||||
addChecked(lineS[0].trim());
|
addChecked(lineS[0].trim(), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (databaseLocation.getName().endsWith(".txt")) {//best effort
|
||||||
|
while ((line = reader.readLine()) != null) {
|
||||||
|
addChecked(line.trim().toLowerCase(), false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
reader.close();
|
reader.close();
|
||||||
System.out.println("\t\tmd5: " + (amtSignaturesAddedMD5 - amtPreviousSignaturesMD5) + ", sha1: " + (amtSignaturesAddedSHA1 - amtPreviousSignaturesSHA1) + ", sha256: " + (amtSignaturesAddedSHA256 - amtPreviousSignaturesSHA256));
|
System.out.println("\t\tmd5: " + (amtSignaturesAddedMD5 - amtPreviousSignaturesMD5) + ", sha1: " + (amtSignaturesAddedSHA1 - amtPreviousSignaturesSHA1) + ", sha256: " + (amtSignaturesAddedSHA256 - amtPreviousSignaturesSHA256));
|
||||||
|
@ -129,6 +139,7 @@ public class Main {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
System.out.println("Lines read: valid: " + amtLinesValid + ", invalid: " + amtLinesInvalid);
|
System.out.println("Lines read: valid: " + amtLinesValid + ", invalid: " + amtLinesInvalid);
|
||||||
System.out.println("Read count: md5: " + amtSignaturesReadMD5 + ", sha1: " + amtSignaturesReadSHA1 + ", sha256: " + amtSignaturesReadSHA256);
|
System.out.println("Read count: md5: " + amtSignaturesReadMD5 + ", sha1: " + amtSignaturesReadSHA1 + ", sha256: " + amtSignaturesReadSHA256);
|
||||||
|
@ -160,7 +171,7 @@ public class Main {
|
||||||
return matcher.matches();
|
return matcher.matches();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void addChecked(String potentialHash) {
|
private static void addChecked(String potentialHash, boolean report) {
|
||||||
if (!potentialHash.startsWith("#") && potentialHash.length() >= 4) {
|
if (!potentialHash.startsWith("#") && potentialHash.length() >= 4) {
|
||||||
if (isHexadecimal(potentialHash)) {
|
if (isHexadecimal(potentialHash)) {
|
||||||
if(arrExclusions.contains(potentialHash)) {
|
if(arrExclusions.contains(potentialHash)) {
|
||||||
|
@ -187,11 +198,11 @@ public class Main {
|
||||||
amtLinesValid++;
|
amtLinesValid++;
|
||||||
} else {
|
} else {
|
||||||
amtLinesInvalid++;
|
amtLinesInvalid++;
|
||||||
System.out.println("\t\tINVALID LENGTH: " + potentialHash);
|
if(report) System.out.println("\t\tINVALID LENGTH: " + potentialHash);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
amtLinesInvalid++;
|
amtLinesInvalid++;
|
||||||
System.out.println("\t\tNOT HEXADECIMAL: " + potentialHash);
|
if(report) System.out.println("\t\tNOT HEXADECIMAL: " + potentialHash);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue