VT Hash Check

Fork me on GitHub

VT Hash Check adds a Windows Explorer context menu that allows you to query the Virus Total file database, view and comment on database results, and optionally upload new files for analysis. Results may be saved in plain text, CSV, or JSON. VT Hash Check comes with TrID built-in for identifying unknown files.

VT Hash Check will interpret its command line arguments as a list of files to check, allowing it to be used in other ways besides right-clicking a file. A user on Wilder's Security Forum suggested combining VT Hash Check with DownloadStatusBar for Firefox, for example. (Newer versions of Firefox do not support this addon, however an updated version from another author is available.)


Download | Bug tracker | GPG Sig (?)

License:GNU GPL v3
Platform(s): Win32 (XP and newer)



A Picture of the VT Hash Explorer Context Menu Item A Picture of the VT Hash progress window

A Picture of the VT Hash results with a comment window in the foreground


Current Version 

The most current version of VT Hash Check is 1.57 (Last update: May 29, 2016).


  • 1.56-1.57
    • Fix: Results context menu now functions properly when invoked by the keyboard
    • Fix: File uploads no longer fail if the filename contains Unicode characters
    • Change: Relicensed under the GNU GPL3 (source code is on Github)
    • Change: Scan date now given in UTC
    • Fix: Updated OpenSSL
    • Add: --view argument
  • 1.55-1.56
    • Fix: Additional hashes now update the window as they are computed
    • Add: Search engine presets
    • Add: Better descriptions how results can be sorted

View complete changelog

Command line parameters

Besides file paths, you may optionally pass several command line arguments:

  • --prefs Opens the settings window instead of checking a file
  • --trid Runs a TrID analysis of the input file(s) instead of a hash check
  • --debug Writes debugging info to the system log. Use a tool like DbgView to view the debug messages.
  • --insecure Disables SSL certificate validation (not recommended)
  • --update Shows the updater window instead of checking a file
  • --about Shows the about window instead of checking a file

TrID mode from the context menu

You can add a context menu item which runs only a TrID analysis by using this registry script:

SSL Certificate Authorities

VT Hash Check ships with a list of trusted CAs. This list is the default list of trusted authorities used by Mozilla products, and includes a number of CAs that Virus Total may never actually use. You may optionally provide your own list of trustworthy CAs. This may be useful in situations where you need to trust a proxy's certificate or allow similarly friendly MITM "attacks" on your SSL connections, but using the --insecure command line parameter is undesirable.

List your trusted authorities in a file named certlist.pem saved to VT Hash's data folder. The data folder is located at %USERDATA%\Boredom Software\VT Hash\. The file format is standard PEM.


Symptom: Auto-updater doesn't install the latest version Solution: clear your temporary files and/or manually install version 1.52 or later.

Symptom: Crashes immediately with a Win32.Win32Exception; error number and message vary. Solution: Install version 1.55 or later. Explanation: This may be due to running under a service account (i.e. certain security products) or because the current Windows user has no password. VT Hash Check uses the Windows Crypto API to calculate hashes, but is erroneously initializing the whole API, including those parts used to access persistent cryptographic keys of a user. This fails if the user doesn't have a password configured. As of version 1.52 only the hashing API is initialized. For more info refer to the documentation for the CRYPT_VERIFYCONTEXT flag to the CryptAcquireContext function.

Symptom: Crashes immediately with a Win32.Win32Exception; error number: -2146893816; error message: Invalid Algorithm Specified. Solution: Install version 1.55 or later. Explanation: SHA256 is not supported when running under Windows XP. Version 1.55 and later will detect Windows XP and disable SHA256; if SHA256 was previously selected then it's changed to SHA1.

Using the search engine feature

You may optionally define an Internet search engine which you can use to search for results from the context menu:

The search feature being demonstrated

To define a search engine, open the Settings window and enter the URL and display name of the search engine to use. Use the string %PARAMETER% as a placeholder in the URL for the search parameter. For example, Google's URL would be: https://encrypted.google.com/search?q=%PARAMETER%

Further Notes

To use this application you will need a Virus Total API key. VT Hash Check will prompt you to fill in your key the first time you run it. You can get an API key by signing up for a free Virus Total community account. Virus Total limits the number of requests made to its API to 4-10 per minute unless the particular API key has been granted higher limits. VT Hash Check should work just fine with both standard API keys and keys which have been granted higher request limits, but possibly not with the private API2.0.

By default, the SHA256 checksum is computed. MD5 and SHA1 may also be used if SHA256 proves too slow, however MD5 is vulnerable to collisions and is not recommended for operations requiring a high level of security1. SHA1 is similarly not recommended, but to a lesser severity.

When attempting check the hashes of executable files obtained from the Internet or accessed via a network share users are likely to see a warning similar to these:

VT Hash Check does not actually launch or execute any file processed through it. It reads the data from the file, computes the hash based on the data, and then closes it. The data is treated the same way whether the file being hashed is an executable or an image or a text file. As such it is safe to click "Run" in these prompts.

Write a comment

  • Required fields are marked with *.
Commenting rules

If you have trouble reading the code, click on the code itself to generate a new random code.
Showing comments 1 to 10 of 48 | Next | Last
Re: Program's Crash
Reply #48 on : Wed July 27, 2016, 11:40:06 CDT
Thank you for your crash report. I will try to figure out what the problem is.
Program's Crash
Reply #47 on : Sat July 23, 2016, 06:25:00 CDT
Just got this message, after trying to analyze some file:

Runtime Exception:
Date: 2016-07-23 08:19:11
Exception type: NilObjectException
Error number: 0
Message: No additional details
libcURL version: libcurl/7.40.0 OpenSSL/1.0.2h zlib/1.2.8 libidn/1.18 libssh2/1.4.3 librtmp/2.3

EXE Version: 1,57
Algorithm: 0x8003
OS: WinNT 6.1(Service Pack 1)x64

Call stack at last call to Raise:

Sub LinkLabel.Event_MouseMove( int32, int32 )
Sub Window.ShowModal()
Function ErrorWindow.ErrorWindow.ShowException( ErrorWindow.ErrorWindow, RuntimeException ) as boolean
Function App.Event_UnhandledException( RuntimeException ) as boolean
Sub LinkLabel.Event_MouseExit()
Sub Window.ShowModal()
Function ErrorWindow.ErrorWindow.ShowException( ErrorWindow.ErrorWindow, RuntimeException ) as boolean
Function App.Event_UnhandledException( RuntimeException ) as boolean
Sub Application._CallFunctionWithExceptionHandling()

It worked after the second try.

Re: Paypal + Bitcoin?
Reply #46 on : Mon July 18, 2016, 18:18:46 CDT
If I had $1 for each user, I'd have somewhere between $10 and $10,000 judging from download numbers (though probably closer to $10.) You're not the first person to suggest accepting donations, so maybe I'll eventually set something up :)
anon 111
Paypal + Bitcoin?
Reply #45 on : Sat July 16, 2016, 20:52:55 CDT
you should have PayPal and BitCoin links available. If you got just $1 from everyone that used your app how much would you have?
Re: Cosmetic Annoyances
Reply #44 on : Fri July 15, 2016, 20:51:35 CDT
I like this idea, and I've been thinking about the best way to do it. I should have something soon.
Cosmetic Annoyances
Reply #43 on : Fri July 08, 2016, 23:29:19 CDT
Hi, could you please make your program remember the last used window's size and position? Besides, allowing the resizing of the information columns manually and automatically (best fit according to win. size) would be great too.

Reply #42 on : Wed May 11, 2016, 10:21:58 CDT
Could you bundle the upcoming version with the latest OpenSSL DLL's again? Thanks :)
Reply #41 on : Wed February 17, 2016, 18:35:38 CST
Could you elaborate? Unicode paths should work out of the box.
Reply #40 on : Tue February 16, 2016, 12:55:08 CST
Add work with unicode symbols to path
Reply #39 on : Mon September 28, 2015, 02:49:05 CDT
New version adds user-configurable default sorting.
Showing comments 1 to 10 of 48 | Next | Last