Jump to content
Tuts 4 You

Xp Style Manifest


Ziggy

Recommended Posts

Months ago - (I can't remember how far back) this XP STyle manifest did the job of changing buttons etc to XP Style. One of the WINXP hotfixes over the last few months has changed something.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

<assemblyIdentity

name="Microsoft.Windows.Keygen"

processorArchitecture="x86"

version="1.0.0.0"

type="win32"/>

<description>SnD Keygen</description>

<dependency>

<dependentAssembly>

<assemblyIdentity

type="win32"

name="Microsoft.Windows.Common-Controls"

version="6.0.0.0"

processorArchitecture="x86"

publicKeyToken="6595b64144ccf1df"

language="*"

/>

</dependentAssembly>

</dependency>

</assembly>

Anyone know what needs to be changed in the manifest to make it work?

Z

Link to comment

there were some .xml patches recently. Core services, not sure what they changed , but...

in the SnDolly thread kittmaster got the manifest I posted to work.

Link to comment

i think the Problem is the Version Ziggy in your file it's 1.0.0.0

in the Original XP Style Manifest File it's 5.1.0.0 that might

cause some problems but there are many ways to Support

XP Style i'll Give you three ways : ;)

1) your way "when compiling the app add the XP Style Manifest Fiel to Resources"

2) like SnD's Olly use a file to the job "quite nice but prefered to big programs only"

3) use PE Explorer to add the Resource needed to Support XP Style this way

1) choose and app and load it in PE Explorer

2) in the Resources View right click for example the Dialogs List

3) Choose XP Visual Style Manifest Wirzard

4) Click Next till you get the Finish Button :) hh

5) save the file in a new name for backup and test it

PE Explorer will add the Needed Resources to the File alone

BTW, the Original XP Style Manifest File is Attached :^

StyleXP.xml

Link to comment

Thanks Angel-55

My problem was with initialising the common controls. Looks like XP was tolerant of this in the past but is no longer.

I've used the three ways you mention at various times. Including the manifest as a resource is the simplist way for keygens.

To get the manifest to work as a resource in MASM I have had to use the GoRc resource compiler. The MASM resource compiler does include the manifest as a resource but for some reason XP does not recognise the manifest at load time. Compile the resource using GoRc and XP recognises the manifest and it works fine. I haven't investigated why this happens?

Z

Link to comment

Hi Ziggy, I found this post on codeproject... maybe this will fix it? seems he adds init common controls as you say, and says to include a few things.

 http://www.codeproject.com/w2k/xptheme.asp?df=100&forumid=2590&exp=0&select=1294270

also this post there with a macro in C, but maybe you can rip his inline part, or convert it over to asm because it doesnt seem too long.

 http://www.codeproject.com/macro/ManifestMacro.asp
Link to comment

i tried some thing simple a stupid Dialog Box

with XP Manifest Support and i Compiled it using MASM32 (V9.0)

any way it works fine at my computer if any one could

try it and replay if it works on his too ??

@KittMaster

Next Time Try The PE Explorer Way I Explained Before It Works For My OllyDbg Extreme

And It Runs Fine Until this moment with XP Manifest Support ...........

@Ziggy

i just wondered you opened the xml file and putted your app name in it ??

and when you added the xml file to your resources KeyGen did you set it's ID to 1

these are some steps that might cause this Problem !!

and your KeyGen doesn't get any XP Manifest Support

unless it's compiled by GoRC i'am i right ?

really Weired :unsure:

any way you can try the file and check if it supports XP Manifest.

Remark: I Use Windows XP SP2 Intergrated "By Me" So It Might Be Your OS ?

Test.rar

Edited by Angel-55
Link to comment
i tried some thing simple a stupid Dialog Box

with XP Manifest Support and i Compiled it using MASM32 (V9.0)

any way it works fine at my computer if any one could

try it and replay if it works on his too ??

@KittMaster

Next Time Try The PE Explorer Way I Explained Before It Works For My OllyDbg Extreme

And It Runs Fine Until this moment with XP Manifest Support ...........

@Ziggy

i just wondered you opened the xml file and putted your app name in it ??

and when you added the xml file to your resources KeyGen did you set it's ID to 1

these are some steps that might cause this Problem !!

and your KeyGen doesn't get any XP Manifest Support

unless it's compiled by GoRC i'am i right ?

really Weired :unsure:

any way you can try the file and check if it supports XP Manifest.

Remark: I Use Windows XP SP2 Intergrated "By Me" So It Might Be Your OS ?

Thanks again Angel-55

Your test dialog does not work on my XP with all the recent hotfixes - but it does work on an another XP machine that has had no hotfixes applied for a few months. Someting has changed.

For my keygens I can get the XP style to work on the up to date XP by declaring

1 RT_MANIFEST "basicmanifest.xml"

in the resource file and compiling using GoRC. XP recognises the manifest and it works fine.

With the MASM resource compiler I can see the resource is included in the exe file but XP does not recognise it. I'm interested to know how you declared the manifest resource so that MASM compiled correctly.

thanks

Z

Link to comment

Welcome Ziggy

And i'am really surprised that this file didn't work at the first machine

really weired i have it and it works might be cause i disable these damn Microsofts Update cause they actualy sucks the always keep playing around with the files trying to make it better but instead the damage it

any way i'll try this thing on my thrird Computer i didn't try it yet unless

on too Computers so this might be the Hotfixes Infect they should have changed something in the Machine so this Option won't work !!

but instead of talking i'll try to find a solution for it ;)

Cheers :)

Link to comment
  • 5 weeks later...

Just been playing around with this for something I'm coding at the moment. I managed to get the XP manifest working great compiling with MASM. This is a slightly old topic so I guess Ziggy may have solved has solved his issue, but for the benefit of others:

1. Use the StyleXP.xml attached above but obviously edit it so that "your_program.exe" is actually the name of your exe (i.e. crackme.exe or something)

2. Add the following to your .rc file:

1 24 DISCARDABLE "StyleXP.xml"

3. Ensure you make a call to InitCommonControls in your .asm code. I usually do:

invoke GetModuleHandle, NULL

mov hInstance, eax

invoke InitCommonControls

invoke DialogBoxParam, hInstance, ADDR dlgname, 0, ADDR WndProc, 0

invoke ExitProcess, eax

If it helps anyone, I usually code in Notepad+ and compile with a .bat in the same directory containing:

if exist crackme.exe del crackme.exe

if exist crackme.obj del crackme.obj

if exist rsrc.res del rsrc.res

if exist rsrc.obj del rsrc.obj

\masm32\bin\ml /c /coff crackme.asm

\masm32\bin\rc rsrc.rc

\masm32\bin\cvtres /machine:ix86 rsrc.res

\masm32\bin\Link /SUBSYSTEM:WINDOWS crackme.obj rsrc.obj

if exist crackme.obj del crackme.obj

if exist rsrc.obj del rsrc.obj

if exist rsrc.res del rsrc.res

Hope someone finds that useful - it works great on my fully patched XP system.

Edited by Loki
Link to comment

well it's nice to see your way of programming Loki but the problem is "and i didn't solve it yet"

if you use any updated windows "i mean ehith the latest updates" you'll see that any xp manifest

which is compiled by MASM doesn't work at all but only at the windows which isn't updated

so the problem is that a file has been updated and that file is a graphical Dll and doesn't supports

XP Manifests any more but which file is it i didn't know yet but working on it

cause that really bothers me alot when the xp manifest doesn't work

so i'll have to use flat buttons and so for a better appearence :)

Link to comment
  • 5 months later...

Please not that invoking the function InitCommonControls() and linking the lib comctl32.lib is very important if you are not using MFC... I had a simple Win32 application that used to create its main window with DialogBox(), and without these 2 things it was just exiting immediately when it started if added only the manifest file.

Link to comment

you must call InitCommonControls so that the manifest will work properly and you know in MASM the included manifest must have the ID set as 1 only else it won't work......... these days i don't have any problems with manifest i just add the file to resources and never even remain the app's name in it "useless" i set the ID = 1 then just have a call to InitCommonControls now it works perfetly without any problems at all and on all XP's too !!

Link to comment

InitCommonControls is actually just a RETN in comctl32.dll (talking about XP SP2 here, havent checked others)

Calling it only makes your exe/dll import the dll so it is loaded.

I guess that calling LoadLibrary("comctl32.dll") also does the job ;)

Link to comment

For mslink, when using windows.inc, you must use 1 24 "manifest.xml" instead of the defines, because the compiler will insert them as strings, instead of looking to windows.inc for their values.

Ehtyar.

Link to comment

i didn't try loading that module KillBoy :)

still it could be done easly but what for InitCommonControl one line doesn't kill us ;)

it's easy to use although many doesn't use buttons these days most of the releases depend on GFXers arts and so

even Ziggy uses GFX's except in tools ;) that ****y problem is easly fixed i don't define a damn thing except adding the XML as a resource and setting the ID == 1 i don't even edit the XML for the file's name then a call to InitCommonControls fixes things up and it's tested on all PC's updates, none, crap, anything that is an M$ OS can show it correctly that is the main thing of it.............why setting it by hand ? that 24 means the resource is an XML so if you add it to resource and define the XML type in the filter it works fine and no need to edit it manually :D lol

cheers bro'

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...