flat assembler
Message board for the users of flat assembler.

Index > Windows > What does the number from "format PE GUI 4.0" mean

Goto page 1, 2  Next
Author
Thread Post new topic Reply to topic
ctl3d32



Joined: 30 Dec 2009
Posts: 206
Location: Brazil
ctl3d32 26 Dec 2010, 20:19
Hi Folks!

What does the number from "format PE GUI 4.0" means?

What is the difference if i change it from 4.0 to 5.0 or 6.0?

Thanks,
ctl3d32
Post 26 Dec 2010, 20:19
View user's profile Send private message Reply with quote
bitRAKE



Joined: 21 Jul 2003
Posts: 4060
Location: vpcmpistri
bitRAKE 26 Dec 2010, 22:40
Disclaimer: I don't know.

My assumption: 5.0 is linked to changes in the Vista/Win7 loader. Whereas 4.0 is for prior Windows versions.
Post 26 Dec 2010, 22:40
View user's profile Send private message Visit poster's website Reply with quote
ctl3d32



Joined: 30 Dec 2009
Posts: 206
Location: Brazil
ctl3d32 26 Dec 2010, 23:16
Thanks for the reply bitRAKE
Post 26 Dec 2010, 23:16
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20422
Location: In your JS exploiting you and your system
revolution 26 Dec 2010, 23:39
3.0 is for Win 3.0

4.0 is for Win95

5.0 is for Vista
Post 26 Dec 2010, 23:39
View user's profile Send private message Visit poster's website Reply with quote
ctl3d32



Joined: 30 Dec 2009
Posts: 206
Location: Brazil
ctl3d32 26 Dec 2010, 23:57
thanks
Post 26 Dec 2010, 23:57
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20422
Location: In your JS exploiting you and your system
revolution 27 Dec 2010, 00:06
∞ is for Win God 65536-bit Alpha-Omega Supreme Deity Ultimate Edition
Post 27 Dec 2010, 00:06
View user's profile Send private message Visit poster's website Reply with quote
ctl3d32



Joined: 30 Dec 2009
Posts: 206
Location: Brazil
ctl3d32 27 Dec 2010, 00:45
Rolling Eyes
Post 27 Dec 2010, 00:45
View user's profile Send private message Reply with quote
SFeLi



Joined: 03 Nov 2004
Posts: 138
SFeLi 27 Dec 2010, 05:42
revolution wrote:
5.0 is for Vista

No. Vista is 6.0.
A version setting for the format directive specifies minimum supported subsystem version. If you want to restrict your program to 2000+ only, you put format pe gui 5.0 and 9x would refuse to load executable saying that the program requires a newer version of Windows.
Post 27 Dec 2010, 05:42
View user's profile Send private message Reply with quote
ctl3d32



Joined: 30 Dec 2009
Posts: 206
Location: Brazil
ctl3d32 27 Dec 2010, 15:12
Perfect! Thanks
Post 27 Dec 2010, 15:12
View user's profile Send private message Reply with quote
Overflowz



Joined: 03 Sep 2010
Posts: 1046
Overflowz 27 Dec 2010, 20:18
same question from me.. but without numbers, what it does ? I mean "format PE GUI" only.
Post 27 Dec 2010, 20:18
View user's profile Send private message Reply with quote
ctl3d32



Joined: 30 Dec 2009
Posts: 206
Location: Brazil
ctl3d32 27 Dec 2010, 20:29
These are explained in the .pdf documentation. Smile
Post 27 Dec 2010, 20:29
View user's profile Send private message Reply with quote
Overflowz



Joined: 03 Sep 2010
Posts: 1046
Overflowz 28 Dec 2010, 09:20
ctl3d32
I can't find that.. without numbers it will be .. ? Any OS I guess ?
Post 28 Dec 2010, 09:20
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20422
Location: In your JS exploiting you and your system
revolution 28 Dec 2010, 09:29
For 32 bit the default version is 3.1
For 64 bit the default is 5.0
Code:
...
format_pe:
  xor     edx,edx
     mov     [machine],14Ch
      mov     [subsystem],3
       mov     [subsystem_version],3 + 10 shl 16 ;32 bit
   mov     [image_base],400000h
        test    [format_flags],8
    jz      pe_settings
 mov     [machine],8664h
     mov     [subsystem_version],5 + 0 shl 16 ;64 bit
...    
When all else fails, read the source
Post 28 Dec 2010, 09:29
View user's profile Send private message Visit poster's website Reply with quote
ctl3d32



Joined: 30 Dec 2009
Posts: 206
Location: Brazil
ctl3d32 28 Dec 2010, 10:27
Overflowz wrote:
ctl3d32
I can't find that.. without numbers it will be .. ? Any OS I guess ?


Sorry, i thought you were asking about the meaning of each word, not the whole phrase.
Post 28 Dec 2010, 10:27
View user's profile Send private message Reply with quote
fatygant



Joined: 12 Sep 2011
Posts: 30
Location: Poznan, Poland
fatygant 12 Sep 2011, 19:46
The correct numbers corresponding to the Windows or IE version are listed here: http://msdn.microsoft.com/en-us/library/hh298349(v=vs.85).aspx

But that's not the point... :)

Why can't I run fasm template GUI app on Windows XP SP3 when I put PE GUI > 4.72? Does it have something to do with the structures defined in fasm windows includes? Does it mean they do not support CommonControls versions newer than 4.72?
Post 12 Sep 2011, 19:46
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20422
Location: In your JS exploiting you and your system
revolution 13 Sep 2011, 00:03
fatygant wrote:
Why can't I run fasm template GUI app on Windows XP SP3 when I put PE GUI > 4.72? Does it have something to do with the structures defined in fasm windows includes? Does it mean they do not support CommonControls versions newer than 4.72?
What it means is that you are telling the OS that your code requires a minimum OS version of 4.72 to run. It makes no difference what APIs you are really calling, if you state that you need version 5.0 and the OS is only version 4.0 then the OS will conclude that it is not capable to run your program.
Post 13 Sep 2011, 00:03
View user's profile Send private message Visit poster's website Reply with quote
fatygant



Joined: 12 Sep 2011
Posts: 30
Location: Poznan, Poland
fatygant 13 Sep 2011, 06:26
revolution wrote:
What it means is that you are telling the OS that your code requires a minimum OS version of 4.72 to run. It makes no difference what APIs you are really calling, if you state that you need version 5.0 and the OS is only version 4.0 then the OS will conclude that it is not capable to run your program.
Yeah - but according to Microsoft Windows XP has CommonControls in versions 5.82 and 6.0. Neither of them works on my system. Surprisingly when I put 5.0 in my asm source code - the program works normally ignoring the fact that there are no CommonControls in version 5.0... I don't get it.
Post 13 Sep 2011, 06:26
View user's profile Send private message Reply with quote
LocoDelAssembly
Your code has a bug


Joined: 06 May 2005
Posts: 4624
Location: Argentina
LocoDelAssembly 13 Sep 2011, 15:47
fatygant, as revolution mentioned, you are mixing up OS versions and API versions. My Windows XP for instance is version 5.1.2600 (as pointed out by cmd.exe), then I have comctl32.dll version 5.82.2900.6028 and comdlg32.dll version 6.0.2900.5512 (I don't know why the former isn't version 6.0 too).

[edit]Under \WINDOWS\WinSxS directory tree I have comctl32.dll version 6.0.2600.0 somewhere[/edit]
Post 13 Sep 2011, 15:47
View user's profile Send private message Reply with quote
fatygant



Joined: 12 Sep 2011
Posts: 30
Location: Poznan, Poland
fatygant 14 Sep 2011, 08:48
Loco, so GUI 4.0 (as in standard fasm template for Win32 apps) means that the software needs at least Windows 95 to run? And has nothing to do with comctl32.dll versions? O, shit...

I am so dumb... Smile But after your clarification a little bit less dumber. Thanks!

Here come Windows versions for those of you who may be in need of such information:

Windows 1.0 [1.04]
Windows 2.0 [2.11]
Windows 3.0 [3]
Windows NT 3.1 [3.10.528]
Windows for Workgroups 3.11 [3.11]
Windows NT Workstation 3.5 [3.5.807]
Windows NT Workstation 3.51 [3.51.1057]
Windows 95 [4.0.950]
Windows NT Workstation 4.0 [4.0.1381]
Windows 98 [4.1.1998]
Windows 98 Second Edition [4.1.2222]
Windows Me [4.90.3000]
Windows 2000 Professional [5.0.2195]
Windows XP [5.1.2600 Current SP3]
Windows XP Professional x64 Edition [5.2.3790]
Windows Vista [6.0.6000 Current Version changed to 6.0.6002 with SP2]
Windows 7 [6.1.7600 RTM]
Post 14 Sep 2011, 08:48
View user's profile Send private message Reply with quote
Madis731



Joined: 25 Sep 2003
Posts: 2139
Location: Estonia
Madis731 14 Sep 2011, 17:08
And if you compile your GUI dialog in XP with PE GUI 3.1, then the buttons and some other stuff will look ugly (Windows 3.11-like Smile) http://fastcache.gawkerassets.com/assets/images/4/2008/11/windows3xer.jpg
Post 14 Sep 2011, 17:08
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page 1, 2  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.