Windows 10 Login Screen Background Changer! [Uploaded to GitHub!]

Discussion in 'MDL Projects and Applications' started by Krutonium, Jul 13, 2015.

  1. labvxe

    labvxe MDL Expert

    Mar 24, 2015
    1,375
    163
    60
    I'm gonna get to my laptop in an hour or so to try this out. I've never worked with pri files either. I work lots more with dlls
     
  2. labvxe

    labvxe MDL Expert

    Mar 24, 2015
    1,375
    163
    60
    Let us know how it goes :) thanks
     
  3. Krutonium

    Krutonium MDL Senior Member

    Aug 27, 2013
    409
    285
    10
    #23 Krutonium, Jul 14, 2015
    Last edited: Jul 14, 2015
    (OP)
    I've got it dumping...

    Where do I specify Detailed?

    Never mind, re-read the help.
     
  4. labvxe

    labvxe MDL Expert

    Mar 24, 2015
    1,375
    163
    60
    I'm so lost with this :weep:
    I don't get how we would edit a xml file so we can insert new wallpaper.
    I'm trying to interpret the syntaxes for makepri right now and it's really confusing
     
  5. sevenacids

    sevenacids MDL Addicted

    Aug 17, 2012
    667
    231
    30
    Okay, after looking quickly over the documentation and the file layout, it's not going to be so easy.

    1) The pri file format is undocumented, so one would need to reverse engineer it to work with it directly. It's dumped as XML, but you cannot create a new pri out of it as far as I can tell.
    2) makepri is obviously designed to be run when an app is compiled, it's indexing all the resources within a Visual Studio project and compiles them into the binary pri package. Maybe it's possible to fake this folder structure to create a matching pri, I don't know.
     
  6. Krutonium

    Krutonium MDL Senior Member

    Aug 27, 2013
    409
    285
    10
    I think what we need to do is edit the XML and replace the Base64 Images with our own - Shouldn't be too hard. I'm already writing a program to do it no less.


    Aaaand nope.
     
  7. Hadron-Curious

    Hadron-Curious MDL Guru

    Jul 4, 2014
    3,730
    603
    120
    If you are able to open the file try to locate the links in the NameResource tags. That would help you see where the images are hidden.
     
  8. labvxe

    labvxe MDL Expert

    Mar 24, 2015
    1,375
    163
    60
    So basically your saying it's possible to open it in visual studio...






    How's the program coming along... What's the timeframe for release
     
  9. Krutonium

    Krutonium MDL Senior Member

    Aug 27, 2013
    409
    285
    10
    I have no idea for time frame. At the moment it dumps the xml using makepri, then parses and extracts the images, converts them back to images from base64, and saves them. So far it hasn't made it through parsing :(
     
  10. sevenacids

    sevenacids MDL Addicted

    Aug 17, 2012
    667
    231
    30
    Well, you could open the pri in hex format :D no, what we'd need is the Windows Logon UI project, replace the resources, and recompile it to change the pri.
     
  11. Hadron-Curious

    Hadron-Curious MDL Guru

    Jul 4, 2014
    3,730
    603
    120
    #31 Hadron-Curious, Jul 14, 2015
    Last edited: Jul 14, 2015
    I have been acting lazy with the process of finding a way to change the logon screen image. I will download the visual studio and try my best. We aren't doing it right from what have been posted so far because it is data-only file as the resource format for Windows.
     
  12. Krutonium

    Krutonium MDL Senior Member

    Aug 27, 2013
    409
    285
    10
    Okay, so I converted the XML to json because json is usually easier to work with, but it leaves me with variable names I can't use :/
     
  13. alexwilson

    alexwilson MDL Junior Member

    Oct 8, 2014
    86
    34
    0
    #33 alexwilson, Jul 14, 2015
    Last edited: Jul 14, 2015
    You can dump with makepri but it's of little use here as you want to edit the existing pri without creating a completely new file. What you can do is replace the known contents of the logon images in the file directly by new images. This should work as long as your new images are not bigger than the ones in the file. If you want to replace them with bigger images it gets harder but not impossible. Problem is there are no tools yet to edit pri files in any way and the format itself isn't even documented.

    Edit: In this case it's actually pretty easy as there is no data after the wallpaper in the file. So one can include arbitrary big files at the end.
     
  14. Krutonium

    Krutonium MDL Senior Member

    Aug 27, 2013
    409
    285
    10
    According to the XML there is multiple embedded images, wouldn't that all break?
     
  15. sevenacids

    sevenacids MDL Addicted

    Aug 17, 2012
    667
    231
    30
    I'm not sure if it's so easy. For example, if you read through the XML dump, you'll find that there are checksum values reported, so I guess you'd have to figure out how they are calculated and where they are stored; otherwise, I guess it won't load the images or even reject the PRI as invalid at runtime. Another point is the actual file size, if the exact size of the source image file (number of bytes) is stored within the PRI (I assume it is), you'd have to adjust that too, at least for files that are bigger than the original.
     
  16. dummekuehe

    dummekuehe MDL Senior Member

    Jan 11, 2009
    493
    112
    10
    thanks for all you hard work
    just to make it possible for users to change the login screen image
    makes you wonder if those MS developers are just stupid or assholes on purpose
     
  17. dummekuehe

    dummekuehe MDL Senior Member

    Jan 11, 2009
    493
    112
    10
    i just had a look into the systemresources folder of 10147.
    could it be possible to overwrite the contents of the pri by placing resources in folders like when modding some games?
    because some of the resource folders like windows.ui.shell have a subfolder "images".
    i'm just guessing here, but maybe it is possible even if doubt that MS would make it so easy for us
     
  18. dummekuehe

    dummekuehe MDL Senior Member

    Jan 11, 2009
    493
    112
    10
    i replaced the pri file and the language file for it with versions from 10147 and 9926
    could not log on
    i guess the resources don't match with the corresponding exe or dll, or whatever loads the logon screen
    switching to the older logon screen via the testhooks threshold:0 registry edit did not work either


    i' be fine with restoring an older version of the logon screen, that didnt have a background image
     
  19. dummekuehe

    dummekuehe MDL Senior Member

    Jan 11, 2009
    493
    112
    10
    I was right.
    System32/logonui.exe, system32/windows.ui.logon.dll and the .pri (plus en-us.pri) need to be the same version.

    I replaced them with the 10074 versions and I could log on. 10147 worked too.


    When I only replaced the pri files and the dll file i was surprised to see that logonui.exe presented me a fallback logon window which looked like a command prompt window where I could select a UserAccount and enter a password
     
  20. alexwilson

    alexwilson MDL Junior Member

    Oct 8, 2014
    86
    34
    0
    No, because you could append your new image at the end of the data section ("[mrm_dataitem]") and then simply adjust the offset and length in the file to the new position. It would be harder if there were other sections after the data section, but there aren't.
    You're right about the checksums. But I could imagine that they are not verified because of performance reasons (there do not seem to be individual checksums for each resource, so in order to verify it, the entire file would need to be processed, even if you load only one single resource). Resource length and offset are stored in the file, but it should be possible to simply adjust them.