-----------------------------------------------------------------------------------------------
[ENHANCED] VFP 9.0 FIX - THE REQUEST EXECUTION LEVEL OF THE COMPILED EXECUTABLE FILES
January 2025
-----------------------------------------------------------------------------------------------
CCB
1. BUG:
We can set the request execution level of the compiled executable files,
it is useful for some setup programs which need Administrator rights.
2. CAUSE:
There are some BUGs in the following code.
3. RESOLUTION:
We can write some code to fix the BUG.
Fun431e4d :: ; proc near
push ecx ;0x00431e4d : 51
mov eax , dword ptr [ Data9370f8 ] ;0x00431e4e : a1f8709300
push ebx ;0x00431e53 : 53
mov ebx , dword ptr [ esp + 12 ] ;0x00431e54 : 8b5c240c
mov ecx , ebx ;0x00431e58 : 8bcb
imul ecx , ecx , 038h ;0x00431e5a : 6bc938
push ebp ;0x00431e5d : 55
push esi ;0x00431e5e : 56
mov esi , dword ptr [ Data93757c ] ;0x00431e5f : 8b357c759300
lea ebp , dword ptr [ ecx + esi ] ;0x00431e65 : 8d2c31
mov cl , byte ptr [ ebp + 44 ] ;0x00431e68 : 8a4d2c
xor edx , edx ;0x00431e6b : 33d2
test byte ptr cl , 02h ;0x00431e6d : f6c102
push edi ;0x00431e70 : 57
mov dword ptr [ esp + 16 ] , edx ;0x00431e71 : 89542410
je Label56e4d2 ;0x00431e75 : 0f8457c61300
test dword ptr [ ebp + 8 ] , 0A04h ;0x00431e7b : f74508040a0000
je Label52a7ff ;0x00431e82 : 0f8477890f00
Label431e88 ::
cmp eax , edx ;0x00431e88 : 3bc2
je Label431e9a ;0x00431e8a : 740e
mov ecx , dword ptr [eax] ;0x00431e8c : 8b08
cmp dword ptr [ ecx + 0164h ] , edx ;0x00431e8e : 399164010000
jne Label56e517 ;0x00431e94 : 0f857dc61300
Label431e9a ::
cmp dword ptr [ esp + 32 ] , edx ;0x00431e9a : 39542420
mov dword ptr [ esp + 16 ] , edx ;0x00431e9e : 89542410
jbe Label431f1b ;0x00431ea2 : 7677
Label431ea4 ::
mov eax , dword ptr [ esp + 32 ] ;0x00431ea4 : 8b442420
push eax ;0x00431ea8 : 50
mov edx , ebp ;0x00431ea9 : 8bd5
xor ecx , ecx ;0x00431eab : 33c9
call Fun42d01e ;0x00431ead : e86cb1ffff
mov edi , eax ;0x00431eb2 : 8bf8
mov eax , dword ptr [ ebp + 4 ] ;0x00431eb4 : 8b4504
mov esi , dword ptr [ edi + 8 ] ;0x00431eb7 : 8b7708
mov ecx , dword ptr [ edi + 4 ] ;0x00431eba : 8b4f04
sub esi , eax ;0x00431ebd : 2bf0
mov ebx , eax ;0x00431ebf : 8bd8
mov eax , dword ptr [ esp + 32 ] ;0x00431ec1 : 8b442420
add esi , ecx ;0x00431ec5 : 03f1
sub ebx , ecx ;0x00431ec7 : 2bd9
cmp eax , esi ;0x00431ec9 : 3bc6
jnb Label431ecf ;0x00431ecb : 7302
mov esi , eax ;0x00431ecd : 8bf0
Label431ecf ::
mov ecx , dword ptr [ esp + 16 ] ;0x00431ecf : 8b4c2410
mov edx , dword ptr [ esp + 28 ] ;0x00431ed3 : 8b54241c
add edx , ecx ;0x00431ed7 : 03d1
mov ecx , dword ptr [edi] ;0x00431ed9 : 8b0f
push esi ;0x00431edb : 56
add ecx , ebx ;0x00431edc : 03cb
call Fun42c19b ;0x00431ede : e8b8a2ffff
;
; ------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE REQUEST EXECUTION LEVEL OF THE COMPILED EXECUTABLE FILES
; September 2020
; ------------------------------------------------------------------------------------
; CCB
;
; The request execution level of the compiled executable files.
;
; 2020/9/30, by ccb
;
vfpa_updaterequestexecutionlevel0_start:
cmp dword ptr [ esp + 20 ] , offset Label6912b4 ;; Fun69124b .. ; proc near
jne vfpa_updaterequestexecutionlevel0_end
push ecx
push eax
mov ecx , dword ptr [edi]
add ecx , ebx
push dword ptr vfpa_sys9038_data
push esi
push ecx
call vfpa_updaterequestexecutionlevel
pop eax
pop ecx
vfpa_updaterequestexecutionlevel0_end:
mov dl , byte ptr [ edi + 21 ] ;0x00431ee3 : 8a5715
mov ecx , dword ptr [ edi + 12 ] ;0x00431ee6 : 8b4f0c
or dl , 01h ;0x00431ee9 : 80ca01
lea eax , dword ptr [ ebx + esi ] ;0x00431eec : 8d0433
cmp eax , ecx ;0x00431eef : 3bc1
mov byte ptr [ edi + 21 ] , dl ;0x00431ef1 : 885715
jbe Label431ef9 ;0x00431ef4 : 7603
mov dword ptr [ edi + 12 ] , eax ;0x00431ef6 : 89470c
Label431ef9 ::
mov edx , dword ptr [ esp + 16 ] ;0x00431ef9 : 8b542410
mov ecx , dword ptr [ ebp + 4 ] ;0x00431efd : 8b4d04
mov eax , dword ptr [ esp + 32 ] ;0x00431f00 : 8b442420
add edx , esi ;0x00431f04 : 03d6
add ecx , esi ;0x00431f06 : 03ce
sub eax , esi ;0x00431f08 : 2bc6
mov dword ptr [ esp + 16 ] , edx ;0x00431f0a : 89542410
mov dword ptr [ ebp + 4 ] , ecx ;0x00431f0e : 894d04
mov dword ptr [ esp + 32 ] , eax ;0x00431f11 : 89442420
jne Label431ea4 ;0x00431f15 : 758d
mov ebx , dword ptr [ esp + 24 ] ;0x00431f17 : 8b5c2418
Label431f1b ::
mov eax , dword ptr [ ebp + 4 ] ;0x00431f1b : 8b4504
cmp eax , dword ptr [ ebp + 0 ] ;0x00431f1e : 3b4500
jle Label433f55 ;0x00431f21 : 0f8e2e200000
and dword ptr [ ebp + 44 ] , 0FFFFFF7Fh ;0x00431f27 : 81652c7fffffff
mov dword ptr [ ebp + 0 ] , eax ;0x00431f2e : 894500
Label431f31 ::
test byte ptr [ ebp + 44 ] , 060h ;0x00431f31 : f6452c60
jne Label56e53d ;0x00431f35 : 0f8502c61300
Label431f3b ::
mov eax , dword ptr [ esp + 16 ] ;0x00431f3b : 8b442410
pop edi ;0x00431f3f : 5f
pop esi ;0x00431f40 : 5e
pop ebp ;0x00431f41 : 5d
pop ebx ;0x00431f42 : 5b
pop ecx ;0x00431f43 : 59
ret 0Ch ;0x00431f44 : c20c00
4. APPLIES TO:
VFP 10 (VFP Advanced)
5. REFERENCE WEBSITES:
1, baiyujia.com:
http://www.baiyujia.com
http://www.baiyujia.com/vfpdocuments/f_vfp9fix129.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix127.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix128.asp
2, microsoft.com:
https://docs.microsoft.com/en-us/visualstudio/deployment/trustinfo-element-clickonce-application?view=vs-2019
https://docs.microsoft.com/en-us/archive/blogs/calvin_hsia/add-a-manifest-to-control-your-application-vista-uac-behavior
6. OTHER:
For reference only, there is no guarantees.
Any questions or suggestions, please send me an email at ccb2000@163.com.
|