package org.greenstone.virustotal; import com.kanishka.virustotal.dto.ScanInfo; import com.kanishka.virustotal.exception.APIKeyNotFoundException; import com.kanishka.virustotal.exception.UnauthorizedAccessException; import com.kanishka.virustotalv2.VirusTotalConfig; import com.kanishka.virustotalv2.VirustotalPublicV2; import com.kanishka.virustotalv2.VirustotalPublicV2Impl; import java.io.*; import java.util.*; import java.lang.*; import java.io.UnsupportedEncodingException; public class ScanFile { public static void printUsage(){ System.err.println("Usage: ScanFile [all] file"); System.exit(1); } public static void main(String[] args) { String inputFileName = null; boolean printall=false; if (args.length<1 || args.length>2){ printUsage(); } else if(args.length==2){ if(args[0].equals("all")){ inputFileName = args[1]; printall=true; } else{ printUsage(); } } else{ inputFileName = args[0]; } try { VirusTotalConfig.getConfigInstance().setVirusTotalAPIKey("09311639ef4193fc22faa35d493a5bf12dc44844a55f03812e40bd1a16fd7b6f"); VirustotalPublicV2 virusTotalRef = new VirustotalPublicV2Impl(); ScanInfo scanInformation = virusTotalRef.scanFile(new File(inputFileName)); int responseCode = scanInformation.getResponseCode(); if(responseCode!=1){ System.err.println("Error:Failed to preform scan."); System.out.println("Verbose Msg :\t" + scanInformation.getVerboseMessage()); System.exit(6); } if (printall){ System.out.println("___SCAN INFORMATION___"); System.out.println("MD5 :\t" + scanInformation.getMd5()); System.out.println("Perma Link :\t" + scanInformation.getPermalink()); System.out.println("Resource :\t" + scanInformation.getResource()); System.out.println("Scan Date :\t" + scanInformation.getScanDate()); System.out.println("Scan Id :\t" + scanInformation.getScanId()); System.out.println("SHA1 :\t" + scanInformation.getSha1()); System.out.println("SHA256 :\t" + scanInformation.getSha256()); System.out.println("Verbose Msg :\t" + scanInformation.getVerboseMessage()); System.out.println("Response Code :\t" + scanInformation.getResponseCode()); System.out.println("done."); } else { System.out.println(scanInformation.getResource()); } } catch (APIKeyNotFoundException ex) { System.err.println("API Key not found! " + ex.getMessage()); System.exit(2); } catch (UnsupportedEncodingException ex) { System.err.println("Unsupported Encoding Format!" + ex.getMessage()); System.exit(3); } catch (UnauthorizedAccessException ex) { System.err.println("Invalid API Key " + ex.getMessage()); System.exit(4); } catch (Exception ex) { System.err.println("Something Bad Happened! " + ex.getMessage()); System.exit(5); } } }