Microsoft Application Verifier

Application Verifier is a runtime verification tool for native code that assists in finding subtle programming errors that can be difficult to identify with normal application testing. This version of Application Verifier is out-dated, new releases can be installed with Debugging Tools for Windows -
  • Note:There are multiple files available for this download.Once you click on the "Download" button, you will be prompted to select the files you need.


    File Name:




    Date Published:


    File Size:

    7.6 MB

    14.8 MB

    15.6 MB

      Application Verifier is designed specifically to detect and help debug memory corruptions and critical security vulnerabilities.
      This is achieved by monitoring a native application's interaction with the Windows operating system, profiling its use of objects, the registry, the file system, and Win32 APIs (including heaps, handles, locks, etc), and indicating issues when and where they are discovered.
      Application Verifier also includes checks to predict how well an application may perform under various account privileges. These compatibility tests are used in Windows Logo program.
      Print verification tests are also available to verify your usage of the print subsystem.

  • Supported Operating System

    Windows 7, Windows Server 2003, Windows Server 2008, Windows Vista, Windows XP

      Application Verifier can be used with any unmanaged application or program. In order to test with Application Verifier,
      • You must be an administrator on the system that you are using in order to run Application Verifier.
      • You must run your project with the tool turned on and go through your testing scenarios
      • The system must be running a supported Windows platform: Windows XP, Windows Server 2003, Windows Vista.
      • Application Verifier supports x86, x64 and IA64 platforms
      • If full page heap is enabled, you will need to ensure you have a large page file (e.g. 1Gb).
      • The Basics verification layer will require that you run your application under a debugger.
      Note: WinPE is not supported with this release of Application Verifier
    • To install Application Verifier:
      1. Select from the list below the appropriate platform.
      2. Click the file name.
      3. When prompted, do one of the following:
      • To start the installation immediately, click Open or Run this program from its current location.
      • To copy the download to your computer for installation at a later time, click Save or Save this program to disk.
      To run Application Verifier:
      1. Upon completion of your installation, you will be provided an “Application Verifier” menu option off your “Programs” menu. You may use this to launch the tool, or by running “AppVerif.exe” directly.
      2. Once running, select “Add Application” off the “File” menu, and select your application.
      3. At this point, you may choose to “Exit” with and accept the default setting, or modify your settings to target specific tests. Please refer to the provided help for details on what checks may best serve your needs.
    • This release includes fixes in the following areas:
      • Basics: New threadpool stop for inconsistent timer parameters.
      • Print: Infrastructure improvements for XPSDrv coverage.
      • Print: New verifier stop when a print driver alters the security context when returns to spooler\core driver.
      • Print: New coverage for IPrintOemUIMXDC print driver interface.
      • Print: New fault injections features for the Print subsystem.
      • Print: Infrastructure improvements for XPSDrv coverage.
      • Print: Added checks to ensure all virtual memory pages for input DEVMODEs are more readable.
      • LUAPriv: Disable logging of information entries to reduce log file size.
      • Help documentation updates
      • Print: Improved descriptiveness of the print stops.

      Don't forget about our key additions/changes from previous releases:
      • Basics: Added support for RtlTimer and RtlWait. Added detection of SetProcessAffinity mask calls in the threadpool tests. Added two new stops within the memory checks (creating executable heap & allocating executable memory). Increased the size of the capture stack traces.
      • Debugger message: The informational message displayed when you select a set of tests that require running under a debugger previously had a bad link that was fixed.
      • Help documentation updates.
      • Print: Added runtime verification for Print Ticket driver and application APIs as well as the Print Filter Pipeline components.

      • Ability to script, for those advanced users, check out the SDK shipped in the package for more details.
      • Log location change. Logs will no longer be stored in Documents and Settings\All Users\Documents\AppVerifierLogs & Documents and Settings\All Users\AppVerifierLogs. Instead, they will be placed in %USERPROFILE%\AppVerifierLogs.

      Known Issues
      Help documentation does not have details regarding the LFHGuardPages property found in the Heaps tests.
      1. If you disable all of the checks in IAppVerifierImageChecks then the image is no longer under verification. You must then re-add the image to the images collection in IAppVerifierManager. So be careful when removing checks from the collection that you don’t inadvertently delete the last one.
      2. IAppVerifierImageCheck::get_Properties and IAppVerifierImageCheck::get_Stops will fail with E_FAIL if the check is not enabled. If you are using these interfaces from languages that support the "FOREACH" construct you will need to check that the check is enabled before enumerating the collection using "FOREACH".

      Customers who previously installed Application Verifier via the Application Compatibility Toolkit v3 please read. Installing Application Verifier today will not overwrite your existing Application Compatibility install. You will have two instances of Application Verifier on your machine (2.5 and 3.x). You will be able to use each of these, but note that if you are running both simultaneously on the same application then the 3.x settings take precedence. That is unless you are using tests that are not yet found in the 3.x release.

      Setup install and uninstall with previous versions of your machine. If you install this release over 3.0.0026 you will see two desktop icons (both will launch the latest) and two listings in the Add/Remove programs (newest version will have 3.x next to it)