Welcome to HBH! If you had an account on hellboundhacker.org you will need to reset your password using the Lost Password system before you will be able to login.

Help: windows xp logonui.exe


ghost's Avatar
0 0

So, i found a registry key that points to logonui.exe as the logon menu for windows xp.

i copied logonui.exe inside the system32 folder to logonui2.exe.

then i changed the registry key to point to c:/windows/system32/logonui2.exe

now i started messing around the resource portions of logonui2.exe. i changed all the graphics to warcraft screenshots and whatnot, but now i want to redesign the whole login page entirely.

i found a "UFILE" that contained something that looked similar to html? some markup language for windows apps?

heres a snippet:

<style resid=framess>
    element
    {
        background: argb(0,0,0,0);
    }
    element [id=atom(contentcontainer)]
    {
        background: rgb(90,126,220);
    }
    button
    {
        background: rcbmp(112,6,#FF00FF,0,0,1,0);
        borderthickness: rect(8,8,0,8);
    }
</style>

and another snippet:

<element resid=passwordpanel id=atom(passwordpanelayer) sheet=styleref(passwordpaness) layout=borderlayout() height=80rp>
    <element layout=borderlayout() layoutpos=bottom>
        <edit id=atom(password) layoutpos=left width=163rp/>
        <element id=atom(keyboard) layoutpos=left/>
        <button id=atom(go) layoutpos=left accessible=true accRole=43 accName= rcstr(100)/>
        <button id=atom(info) layoutpos=left accessible=true accRole=43 accName= rcstr(13)/>
    </element>
    <element id=atom(instruct) layoutpos=bottom content=rcstr(6)/>
</element>

so can anybody help me identify this language? and some way to generate this like a WYSIWYG for html? thanks


What_A_Legend's Avatar
...Legend?
0 0

If you know the launguage well enougth you shouldn't need a WYSIWYG you would be able to write the code and just keep checking it has updated.


ghost's Avatar
0 0

What_A_Legend wrote: If you know the launguage well enougth you shouldn't need a WYSIWYG you would be able to write the code and just keep checking it has updated.

That is true. But as i dont know what the language is called, I cant find any documentation on it. And i have spent a few hours editing it and seeing the outcome, but as it is the logonui page, when you fuck it up (which is extremely easy to do) you now how to turn off your computer manually, slap in a linux cd, boot it up, find the logonui.exe backup, replace it, then turn off the comp again, boot up windows, fire up all the applications you need, remember where you were (and what you did to fuck it up), and then you get to keep working. About a 5-8 minute break.

Im positive their will exist WYSIWIGs for this, I tried extracting something like this from visual basic but i could not find a UIFILE.


ghost's Avatar
0 0

Looks like XML to me.


ghost's Avatar
0 0

its css and xml ..Duh


spyware's Avatar
Banned
0 0

That being said, coding in XML is quite fucked up if you don't know the interpreter. But whatever, go in blind, edit & view all the way.


korg's Avatar
Admin from hell
0 0

@DigitalFire> Got your Pm. I'll Post the way to do this tomm. I'm too Fuck up and tired to type that much tonight.


ghost's Avatar
0 0

DarkMessiah wrote: Is this any good to you? http://www.johntp.com/2007/04/28/how-to-change-logon-screen-of-windows-vista-and-xp/ I googled what i thought you meant but i'm not entirely sure.

thanks for the effort, but i was attempting to do this by hand, and the link there is a tool used to accomplish this.

lesserlightsofheaven wrote: Looks like XML to me.

thanks dude :happy:

spyware wrote: That being said, coding in XML is quite fucked up if you don't know the interpreter. But whatever, go in blind, edit & view all the way.

i would like to do this in a less blind way. anybody have any tips on working in XML for something like this? A way i could render the xml without actually compiling the app each time with the possibility of the logon screen failing and me having to linux-fix it?

korg wrote: @DigitalFire> Got your Pm. I'll Post the way to do this tomm. I'm too Fuck up and tired to type that much tonight.

awesome. i await your reply :D


korg's Avatar
Admin from hell
0 0

Shit forgot about this, Told I was wasted friday night, Give me 5 - 10 minutes I pull out my binder and type something up.


korg's Avatar
Admin from hell
0 0

I'm going to start from the beginning so everyone can have some insite on changing the logon screen. This is long so bear with me.

This is how I've done it, Copy your logonui.exe to another folder usually the desktop we'll tear it up anyway. Copy it so you don't lose the original! I always copy 2 just in case, one to the desktop and one to c:drive. We all have bad days.

Open the resourcehacker, Open your COPY of the logonui.exe.

Go to the bitmap>100>1033. That is your background, Now to change it go to "Action"(top pane) replace bitmap. Click on 100 in the bottom, Then click "Open file with new bitmap". Navigate your way to your new bmp and click open, Then "Replace".

Go back to bitmap>100>1003 You'll see your new image.

Some things you can play with are: Bitmap>102>1033 Change borders on password box or the box itself. Bitmap>104>1033 The logon arrow styles. Bitmap>123 & 127 The xp logo. Etc,etc look at all of them and mess around a bit.

Next we'll play in the String Table>1>1033. You can change messages in here, Like instead of "did you forget your password?. I use "Quit Fucking with my computer damnit". Change any of the text to what you like.

Next you want Open the UIFILE>1000>1033 and look around at the code you can change lot's of stuff here, You gonna need to make some changes in the background and contentcontainer for your new image to display right otherwise it will only appear in the left corner, This took me FOREVER to get right so since I'm a nice guy I'm gonna post my UIFILE and you can use it if you like, Or compare mine to your original windows. Hopefully by comparing the two it can give you some insite on how to change things. Otherwise this is not a course in xml. Just paste this in your UIFILE: (Here comes the big one)

<style resid=framess> element { background: argb(0,0,0,0); } element [id=atom(contentcontainer)] { background: rcbmp(100,6,#FF00FF,0,0,1,0); } button { background: rcbmp(112,6,#FF00FF,0,0,1,0); borderthickness: rect(8,8,0,8); } </style>

<style resid=toppanelss> element { background: argb(0,0,0,0); } element [id=atom(toppanel)] { fontface: rcstr(2); } element [id=atom(options)] { padding: rect(10rp, 5rp, 5rp, 0rp); } </style>

<style resid=bottompanelss> element { background: argb(0,0,0,0); } element [id=atom(bottompanel)] { fontface: rcstr(2); } element [id=atom(options)] { padding: rect(25rp, 0rp, 5rp, 5rp); } button [id=atom(power)] { padding: rect(0rp, 0rp, 5rp, 15rp); content: rcbmp(107,3,-1,26rp,26rp,0,0); fontsize: rcint(45) pt; fontstyle: italic; fontweight: bold; foreground: white; cursor: hand; } button [id=atom(power)] [mousefocused] { content: rcbmp(121,3,-1,26rp,26rp,0,0); foreground: rgb(241,185,102); } button [id=atom(power)] [keyfocused] { content: rcbmp(121,3,-1,26rp,26rp,0,0); foreground: rgb(241,185,102); } button [id=atom(undock)] { padding: rect(0rp, 0rp, 5rp, 15rp); content: rcbmp(108,3,-1,26rp,26rp,0,0); fontsize: rcint(45) pt; fontstyle: italic; fontweight: bold; foreground: rgb(255,255,255); cursor: hand; } button [id=atom(undock)] [mousefocused] { content: rcbmp(122,3,-1,26rp,26rp,0,0); foreground: rgb(241,185,102); } button [id=atom(undock)] [keyfocused] { content: rcbmp(122,3,-1,26rp,26rp,0,0); foreground: rgb(241,185,102); } element [id=atom(instruct)] { contentalign: wrapright; padding: rect(0rp,0,5,5); fontsize: rcint(47) pt; fontweight: bold; foreground: white; } </style>

<style resid=leftpanelss> element { background: argb(0,0,0,0); fontface: rcstr(2); } element [id=atom(product)] { animation: alpha | s | mediumslow; } element [id=atom(leftpanel)] { foreground: rgb(255,255,255); } element[id=atom(help)] { fontsize: rcint(46) pt; fontweight: bold; contentalign: wrapleft; } </style>

<style resid=msgareass> element { fontface: rcstr(2); fontsize: rcint(44) pt; fontweight: bold; contentalign: middleright; } element [id=atom(welcome)] { foreground: rgb(252,253,255); padding: rect(0rp,0rp,22rp,50); } element [id=atom(welcomeshadow)] { foreground: rgb(247,107,32); padding: rect(2rp,3rp,20rp,50); } </style>

<style resid=rightpanelss> element { background: argb(0,0,0,0); fontface: rcstr(2); } scrollbar [vertical] { layoutpos: nineright; background: rgb(115,146,231); } viewer { layoutpos: nineclient; } thumb { background: rcbmp(111,6,#FF00FF,0,0,1,0); borderthickness: rect(3,3,3,3); } repeatbutton [id=atom(lineup)] { content: rcbmp(110,3,-1,sysmetric(20),sysmetric(20),0,0); } repeatbutton [id=atom(linedown)] { content: rcbmp(109,3,-1,sysmetric(20),sysmetric(20),0,0); } </style>

<style resid=hotaccountlistss> element { background: argb(0,0,0,0); fontface: rcstr(2); } selector { padding: rect(0rp,60rp,5rp,50rp); } logonaccount { cursor: hand; foreground: rgb(0,0,0); background: argb(0,0,0,0); animation: alpha | log | fast; alpha: 255; } logonaccount [logonstate=1] { animation: rectangle | s | fast; cursor: arrow; alpha:255; } logonaccount [mousewithin] { cursor: hand; alpha:255; } logonaccount [selected] { cursor: hand; alpha:255; } element [id=atom(userpane)] { padding: rect(2rp,2rp,14rp,2rp); fontsize: rcint(42) pt; } element [id=atom(userpane)][selected] { background: rcbmp(112,6,#FF00FF,0,0,1,0); } element [id=atom(pictureframe)] { background: rcbmp(113,7,255,0,0,1,0); borderthickness: rect(5,5,5,5); margin: rect(0,0, 7rp,0); } element [id=atom(pictureframe)] [mousefocused] { background: rcbmp(119,7,255,0,0,1,0); borderthickness: rect(5,5,5,5); margin: rect(0,0,7rp,0); alpha: 255; } element [id=atom(pictureframe)] [keyfocused] { background: rcbmp(119,7,255,0,0,1,0); borderthickness: rect(5,5,5,5); margin: rect(0,0,7rp,0); alpha: 255; } element [id=atom(pictureframe)] [selected] { background: rcbmp(119,7,255,0,0,1,0); borderthickness: rect(5,5,5,5); margin: rect(0,0,7rp,0); alpha: 255; } element [id=atom(username)] { foreground: white; contentalign: endellipsis; fontweight: bold; } element [id=atom(username)][mousefocused] { foreground: white; contentalign: endellipsis; } element [id=atom(username)][keyfocused] { foreground: white; contentalign: endellipsis; } element [id=atom(username)][selected] { foreground: white; contentalign: endellipsis; } button [class="status"] { background: argb(0,0,0,0); foreground: rgb(255,255,255); fontsize: rcint(47) pt; fontweight: bold; } button [class="status"][mousefocused] { foreground: rgb(255,255,255); fontstyle: underline; } button [class="status"][keyfocused] { foreground: rgb(255,255,255); fontstyle: underline; } button [class="status"][selected] { foreground: rgb(255,0,0); } </style>

<style resid=accountlistss> element { background: argb(0,0,0,0); fontface: rcstr(2); } selector { padding: rect(0rp,60rp,5rp,50rp); } logonaccount { cursor: hand; foreground: rgb(0,0,0); background: argb(0,0,0,0); animation: alpha | log | fast; alpha: 255; } logonaccount [logonstate=1] { animation: rectangle | s | fast; cursor: arrow; alpha:255; } element [id=atom(userpane)] { padding: rect(2rp,2rp,14rp,2rp); borderthickness: rect(0,0,0,0); bordercolor: rgb(43,102,159); fontsize: rcint(42) pt; } element [id=atom(userpane)][selected] { background: rcbmp(112,6,#FF00FF,0,0,1,0); } element [id=atom(pictureframe)] { background: rcbmp(113,7,255,0,0,1,0); borderthickness: rect(5,5,5,5); margin: rect(0,0,7rp,0); } element [id=atom(username)] { foreground: rgb(255,0,0); fontweight: bold; contentalign: endellipsis; } button [class="status"] { background: argb(0,0,0,0); foreground: rgb(255,255,255); fontsize: rcint(47) pt; fontweight: bold; contentalign: wrapleft; } </style>

<style resid=passwordpaness> element { background: argb(0,0,0,0); } element [id=atom(passwordpanelayer)] { padding: rect(71rp,0,0,0); } element [id=atom(instruct)] { fontface: rcstr(2); fontsize: rcint(47) pt; foreground: rgb(253,245,255); padding: rect(3rp,0,0,3rp); } edit [id=atom(password)] { background: rcbmp(102,6,#FF00FF,0,0,1,0); borderthickness: rect(3,3,5,5); passwordcharacter: 9679; fontface: "Arial"; fontsize: 16pt; } button [id=atom(go)] { margin: rect(5rp,0,0,0); content: rcbmp(103,3,-1,24rp,24rp,0,0); padding: rect(0rp,2rp,0,2rp); } button [id=atom(go)][mousefocused] { content: rcbmp(104,3,-1,24rp,24rp,0,0); } button [id=atom(go)][keyfocused] { content: rcbmp(104,3,-1,24rp,24rp,0,0); } button [id=atom(info)] { margin: rect(5rp,0,0,0); content: rcbmp(105,3,-1,24rp,24rp,0,0); padding: rect(0rp,2rp,0,2rp); } button [id=atom(info)][mousefocused] { content: rcbmp(106,3,-1,24rp,24rp,0,0); } button [id=atom(info)][keyfocused] { content: rcbmp(106,3,-1,24rp,24rp,0,0); } element [id=atom(keyboard)] { cursor: arrow; margin: rect(1rp,1,1,1); } </style>

<style resid=scroller>

scrollbar
{
    layoutpos: ninebottom;
}

scrollbar [vertical]
{
    layoutpos: nineright;
}

viewer
{
    layoutpos: nineclient;
}

thumb
{
    background: dtb(handlemap(1), 3, 1);
    content: dtb(handlemap(1), 9, 1);
    contentalign: middlecenter;
}

thumb [mousefocused]
{
    background: dtb(handlemap(1), 3, 2);
    content: dtb(handlemap(1), 9, 2);
}

thumb [captured]
{
    background: dtb(handlemap(1), 3, 3);
    content: dtb(handlemap(1), 9, 3);
}

repeatbutton [id=atom(lineup)]
{
    background: dtb(handlemap(1), 1, 1);
    width: sysmetric(2);
    height: sysmetric(20);
}

repeatbutton [id=atom(lineup)][mousefocused]
{
    background: dtb(handlemap(1), 1, 2);
}

repeatbutton [id=atom(lineup)][pressed]
{
    background: dtb(handlemap(1), 1, 3);
}

repeatbutton [id=atom(linedown)]
{
    background: dtb(handlemap(1), 1, 5);
    width: sysmetric(2);
    height: sysmetric(20);
}

repeatbutton [id=atom(linedown)][mousefocused]
{
    background: dtb(handlemap(1), 1, 6);
}

repeatbutton [id=atom(linedown)][pressed]
{
    background: dtb(handlemap(1), 1, 7);
}

repeatbutton [id=atom(pageup)]
{ 
    background: dtb(handlemap(1), 7, 1);
}

repeatbutton [id=atom(pageup)][mousefocused]
{ 
    background: dtb(handlemap(1), 7, 2);
}

repeatbutton [id=atom(pageup)][pressed]
{ 
    background: dtb(handlemap(1), 7, 3);
}

repeatbutton [id=atom(pagedown)]
{ 
    background: dtb(handlemap(1), 6, 1);
}

repeatbutton [id=atom(pagedown)][mousefocused]
{ 
    background: dtb(handlemap(1), 6, 2);
}

repeatbutton [id=atom(pagedown)][pressed]
{ 
    background: dtb(handlemap(1), 6, 3);
}

</style> <logonframe resid=main id=atom(frame) sheet=styleref(framess) layout=borderlayout() layoutpos=client> <element id=atom(contentcontainer) layout=borderlayout() layoutpos=client>

&lt;element id=atom(toppanel) sheet=styleref(toppanelss) layout=borderlayout() layoutpos=top height=0rp&gt;
    &lt;element id=atom(options) layout=borderlayout() layoutpos=top&gt;
        &lt;element layout=filllayout() layoutpos=right&gt;
        &lt;/element&gt;
    &lt;/element&gt;
&lt;/element&gt;

&lt;element id=atom(bottompanel1) sheet=styleref(bottompanelss) layout=borderlayout() layoutpos=bottom height=25rp&gt;
    &lt;element id=atom(options) layout=borderlayout() layoutpos=bottom&gt;
        &lt;element layout=filllayout() layoutpos=right&gt;
        &lt;element id=atom(instruct) content=rcstr(25) width=200rp/&gt;
        &lt;/element&gt;
    &lt;/element&gt;
&lt;/element&gt;

&lt;element id=atom(bottompanel2) sheet=styleref(bottompanelss) layout=borderlayout() layoutpos=bottom height=85rp&gt;
    &lt;element id=atom(options) layout=borderlayout() layoutpos=bottom&gt;
        &lt;element layout=filllayout() layoutpos=right&gt;
            &lt;button id=atom(power) layout=borderlayout() layoutpos=bottom accessible=true accRole=43 accName=rcstr(11)&gt;
                &lt;element layoutpos=left height=26rp/&gt;
                &lt;element id=atom(label) layoutpos=left margin=rect(30rp,0,0,0)/&gt;
            &lt;/button&gt;
            &lt;button id=atom(undock) layout=borderlayout() layoutpos=bottom accessible=true accRole=43 accName=rcstr(14)&gt;
                &lt;element layoutpos=left height=26rp/&gt;
                &lt;element id=atom(label) layoutpos=left margin=rect(30rp,0,0,0)/&gt;
            &lt;/button&gt;
        &lt;/element&gt;
    &lt;/element&gt;
&lt;/element&gt;

&lt;element id=atom(contentcontainer0) layout=filllayout() layoutpos=client&gt;
   &lt;element id=atom(contentcontainer1) layout=filllayout() layoutpos=left width=484rp&gt;
      &lt;element id=atom(leftpanel) sheet=styleref(leftpanelss) layout=filllayout() layoutpos=left&gt;
        &lt;element layout=filllayout() layoutpos=bottom&gt;
          &lt;element id=atom(logoarea) layout=verticalflowlayout(0,3,3,2)&gt;
            &lt;element id=atom(product) contentalign=topright padding=rect(0rp,0rp,0rp,0rp) content=rcbmp(123,0,0,0,0,0,0) 

background=argb(0,0,0,0)/> <element id=atom(help) contentalign=wrapleft padding=rect(100rp,0rp,0rp,100rp)/> </element> </element> </element> </element> <element id=atom(contentcontainer2) layout=flowlayout(1,3,2,3) layoutpos=left width=512rp> <element id=atom(leftpanel) sheet=styleref(leftpanelss) layout=borderlayout() layoutpos=right width=384rp> <scrollviewer id=atom(scroller) sheet=styleref(scroller) layoutpos=top xscrollable=false margin=rect(26rp,26rp,0rp,0rp)> <selector id=atom(accountlist) sheet=styleref(accountlistss) layout=verticalflowlayout(0,3,3,2)/> </scrollviewer> </element> </element> <element id=atom(contentcontainer3) layout=filllayout() layoutpos=left width=500rp> <element id=atom(msgarea) sheet=styleref(msgareass) layout=filllayout() layoutpos=right width=300rp> <element layout=filllayout() layoutpos=client> <element id=atom(welcomeshadow) content=rcstr(7)/> <element id=atom(welcome) content=rcstr(7)/> </element> </element> </element> </element> </element> </logonframe>

<logonaccount resid=accountitem id=atom(accountitem) layout=filllayout() accessible=true accRole=43> <element id=atom(userpanelayer) layout=borderlayout() height=80rp> <element id=atom(userpane) layout=borderlayout() layoutpos=top> <element id=atom(pictureframe) layout=flowlayout(0,2,2) layoutpos=left width=58rp height=58rp> <element id=atom(picture) /> </element> <element id=atom(username) layoutpos=top/> <button id=atom(status0) class="status" layoutpos=none/> <button id=atom(status1) class="status" layoutpos=none/> </element> </element> </logonaccount>

<element resid=passwordpanel id=atom(passwordpanelayer) sheet=styleref(passwordpaness) layout=borderlayout() height=80rp> <element layout=borderlayout() layoutpos=bottom> <edit id=atom(password) layoutpos=left width=163rp/> <element id=atom(keyboard) layoutpos=left/> <button id=atom(go) layoutpos=left accessible=true accRole=43 accName= rcstr(100)/> <button id=atom(info) layoutpos=left accessible=true accRole=43 accName= rcstr(13)/> </element> <element id=atom(instruct) layoutpos=bottom content=rcstr(6)/> </element>

<When your done compile the script> Like I said go over the code you can change fonts,size,colors etc,etc. Move the logon box from left to right. This would take forever to explain so have fun.

If you want you can change the version info>1>1033. Edit it to your name, company, Mickey mouse whatever you want.

When your all done click on file>save as> "logonui.exe" and save it in my documents or somewhere for now NOT the system32 folder.

Reboot in safe mode and replace your original logonui.exe with the new one.(system32 folder) Or navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon. Find the UIHost and change the path to where your new logonui.exe is saved. Restart and we are done. Make sure you keep that extra copy hidden incase you want to change it back someday. Save it on cd. I did just in case. Have fun and change as much as you can it get's fun.

Or you could be a pussy and download StyleXP or Stardock LogonStudio.


korg's Avatar
Admin from hell
0 0

Here's a shot of my logon using that uiscript, and a matrix bmp. By the way I have more scripts, That Ive done this is my favorite.


ghost's Avatar
0 0

all hail korg!

ill have fun reading that sir. thanks :D


ghost's Avatar
0 0

i got a few questions for ya:

does every executable have a UIFILE that can be fucked with so easily? i cant seem to find others. is that just the logonui.exe being nice and letting us mess with it?

my other question was gunna be what would happen if i threw explorer.exe or cmd.exe or warcraft.exe in place of the logonui.exe? but i guess ill have to give it a shot ;)


korg's Avatar
Admin from hell
0 0

Most exe,do have thier own uifiles.Not that easy to fuck with though. I played with these quite a while.

Wouldn't go replacing your logonui.exe with anything, Unless you like booting from linux.


ghost's Avatar
0 0

For some reason, my UIFILE - 1000 - 1033.. Is empty.


What_A_Legend's Avatar
...Legend?
0 0

I used to change all the things on my machines, but they kept crashing. So my advice would be not to screw with somthing untill you know how it works, as it may turn out not to be worth the hassle.


korg's Avatar
Admin from hell
0 0

@-Tov- Your Ui file is not empty scroll down it's starts about halfway down to right pane. If been changing files in xp for ever and never had a crash. Take your time and back things up.