Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How test a Delphi app with Application Verifier 4.0?

I download the Application Verifier 4.0 to test my App for check if could have problems on Vista/7.

I run from Delphi 2010 debugger, and stop in CPU view. Obviously, I don't understand anything about assembler!.

So, I try running directly from the windows explorer, and the App die.

(In fact, I don't understand well what exactly will do App Verifier: I expect some kind of friendly message).

This is what i get:

7C81A3E2 C3               ret 
7C81A3E3 90               nop 
7C81A3E4 8BFF             mov edi,edi
ntdll.DbgUserBreakPoint:
7C81A3E6 CC               int 3
7C81A3E7 C3               ret 
7C81A3E8 8BFF             mov edi,edi
7C81A3EA 8B442404         mov eax,[esp+$04]
7C81A3EE CC               int 3
7C81A3EF C20400           ret $0004
ntdll.NtCurrentTeb:
7C81A3F2 64A118000000     mov eax, fs:[$00000018]
7C81A3F8 C3               ret 
ntdll.RtlInitString:
7C81A3F9 57               push edi

Loading:

:7c81a3e2 ntdll.DbgBreakPoint + 0x1
:10003b68 ; C:\WINDOWS\system32\vrfcore.dll
:00396a9d ; C:\WINDOWS\system32\vfbasics.dll
:00397316 ; C:\WINDOWS\system32\vfbasics.dll
:7c84bcdb ; ntdll.dll
:7c8316f8 ; ntdll.dll
:7c83154f ; ntdll.dll
:7c82855e ntdll.KiUserExceptionDispatcher + 0xe
:0040aa00 GetUILanguages + $80
:0040b298 GetResourceModuleName + $124
:0040afde LoadResourceModule + $7A
:0040a134 DelayLoadResourceModule + $2C
:00406c40 @StartExe + $44
:77e6f23b ; C:\WINDOWS\system32\KERNEL32.dll
like image 881
mamcx Avatar asked Mar 31 '10 01:03

mamcx


People also ask

How do I run an application verifier?

Launch Microsoft's Application Verifier. Select File | Add Application from the main menu and choose the sample executable in the ensuing Open File dialog. Verifier will display the executable in the Applications list. On the right, you can select the tests to be performed over the tested application.

What does application Verifier do?

Application Verifier (AppVerifier) is a runtime verification tool for unmanaged code that assists in finding subtle programming errors, security issues and limited user account privilege problems that can be difficult to identify with normal application testing techniques.

How do I disable App Verifier?

To uninstall the Application Verifier, access the control panel by clicking Start, select Add or Remove Programs, then Remove a program, click Application Verifier, and then click Remove.


1 Answers

Application Verifier is a GUI wrapper around a bunch of registry settings.

When you add your application to Application Verifier, it tells Windows to do more checking when your application is running.

After you've added your application, you can close Application Verifier; the settings are saved.

Now, any time you run your application, Windows will do extra checking for various conditions (as specified via Application Verifier).

Some of the checks will result in DebugBreak() being called. (This is why your application dies when you run it under Windows Explorer.)

You must run your application under a debugger so that you can see where the problems occur.

I know very little about Delphi 2010; if it's creating managed code, you may have problems, as the breakpoints will occur in native code, and your debugger (Delphi's debugger) would need to be able to debug mixed native/managed code.

like image 152
Eric Brown Avatar answered Oct 31 '22 20:10

Eric Brown