Thứ Ba, 28 tháng 6, 2016

How to change boot animation in Windows 7 part 3


win7expert

Does it work or do you search testers for your tools?



marcusj0015

he is still working on it,

and he figured out a big part of why it wont work

now he is gonna do some testing then hell relase it for us to test

BUT HE HAS COLLEGE AND OTHER THINGS HES DOING SO IT WILL TAK EHIME SOME TIME TO GET ALL THIS STUFF DONE.

IDK HIS Release date but i wouldnt assume it will be out by the end of 2010

prolly early 2011 but im not sure im just makeing an educated guess

win7expert

Sorry

I didn't know that he's a student.

You'll do great work, Thaymin... Don't stop with your great work...

marcusj0015

Has anything been done thaimin? How close is it to being ready for beta? John

Bohne

i talked to him a little while ago

hes cleaning everything up and getting it ready

but with his schedule he dosent know when it will be done becuase of him being so busy

jacobf16

Hi,

wow, great tool, exactly what I was looking for! Thank you very much!
It works fine for me in testing mode. However I cannot get it to work with testmode switched off. Am I doing something wrong?

I downloaded CoderForLifeCA.cer and CoderForLifeCA.crl and executed the two commands

certutil -f -v -addstore ROOT CoderForLifeCA.cer
certutil -f -v -addstore ROOT CoderForLifeCA.crl

Updating the files workes but then I get the message that signing failed... I am running Win7 Professional 32bit.

Can anybody help me? What am I doing wrong?


Thanks!

jacobf16

I run the tool but when i want to select a file,
the tool crashes any solution for that?

thaimin

ok now I can select a file but now when i restart my windows crash :S
I have tried it a few times now but each time I have to do system recovery

Guest

Okay all, the tool is in "Alpha" which is before "Beta". It doesn't really work. There are things you can do to make it work, however I still recommend waiting for my next version. I have time this week and plan to get it released by the weekend. To clarify in the future I will label the version number I am using as 0.0.0.9 alpha...

@win7expert
My tools become part of my program. Testing the tools will accelerate testing the real program.

@marcusj0015
Thanks for the defense!

@RBCC
You will be told. Don't worry.

@Bohne
The current Alpha 8 doesn't support testsigning being off. Next version will.

@jacobf16
What was the problem you had opening files? I would like to fix it for the next version.
If you change the text and do not run:
Code:
bcdedit /set {bootmgr} testsigning on
Like it says on the website, it will crash. Please read.

Guest

Many Thanks thaimin! Looking forward to beta!

jacobf16

Quote�� Quote: Originally Posted by thaimin View Post
Okay all, the tool is in "Alpha" which is before "Beta". It doesn't really work. There are things you can do to make it work, however I still recommend waiting for my next version. I have time this week and plan to get it released by the weekend. To clarify in the future I will label the version number I am using as 0.0.0.9 alpha...

@win7expert
My tools become part of my program. Testing the tools will accelerate testing the real program.

@marcusj0015
Thanks for the defense!

@RBCC
You will be told. Don't worry.

@Bohne
The current Alpha 8 doesn't support testsigning being off. Next version will.

@jacobf16
What was the problem you had opening files? I would like to fix it for the next version.
If you change the text and do not run:
Code:
bcdedit /set {bootmgr} testsigning on
Like it says on the website, it will crash. Please read.
I read that and i even used that, but it don't work :s
and the error was that the program must be closed.
I solved it by set the compatibility to vista.
oh, and i can't download the certificate on that site





thaimin

@jacobf16
You cannot change the "Starting Windows" text easily with the current version. With testsigning on for {current} and {bootmgr} the current version should be able to change animation and copyright text.

You do not need to download the certificate, it is included in the program (which installs it). It is only provided for use on other computers. It seems that you have to right-click and save it that way, the server thinks it should be a text file... The new version won't require any certificates or testsigning.

The error you are getting is very strange, and no one else has reported that. It may inadvertently be fixed in the new version. When I release the new version please test it out and report back to me. If it isn't fixed I will need to work with you to fix it.

thaimin

Is the alpha 9 going to allow pictures for the background? How many colours? John

joakim

Background pictures is currently completely hypothetical. I have written assembly code to do it, however it has not been at all tested. It is likely to need some fixes from what I wrote since I don't know what I am really doing. On the other hand I have built a lot of the framework for it in the program, once I get around to actually testing. Additionally, I have not even begun to think about translating it into 64-bit assembly.

One thing I can tell you though is that when it is working (if I and/or joakim get it to work) then it will support 24-bit images. So full-color or 16,777,216 colors. In fact I have no idea at all how I would do anything besides 24-bit images since the built-in code in winload.exe seems to only draw 24-bit images. My program already converts many image formats to the proper 24-bit image necessary.

thaimin

I am also very busy at the moment and haven't started testing the code yet. Realistically, support for background images will not happen this year. When I get the time, I will first study the code and implement it in winload.exe. Then lots of testing, tracing and rewriting of code will be required. I'm not sure either, how this will end. But I will give some feedback when I've found anything useful on the topic.

Joakim

win7expert

So it won't be implemented in the next release???

joakim

No, it won't be. However you will be able to see what it looks like it in the program and create the bootskins, but not actually apply.

Guest

The progamm alpha 9 is currently only a preview. But if thaimin release the 0.0.0.9 Beta (/Alpha) it will be possible to apply a custom bootskin, I think.

In the preview, you can only create new bootscreens but you can't apply them.

I hope, what I write was not wrong

Guest

Several Utilities turn on and off the Windows 7 watermark, is this the problem with NToskrnl.EXE? jOHN

Guest

The watermark is just something that is generated based on the TESTSIGNING configuration in the BCD store. As already discussed, there are several ways to prevent that from being present on your desktop;

1. You actually don't need TESTSIGNING at all (see first post patching instructions).
2. Put TESTSIGNING on, but remove the watermark (see first post for patching instructions).
3. A few other mixed derivatives of the above (see first post and the rest of the thread).

To keep it simpel, stick to either 1 or 2.

Joakim

thaimin

Put TESTSIGNING on, but remove the watermark (see first post for patching instructions).
How does this affect patchguard?



joakim

This has absolutely nothing to do with patchguard. The testsigning watermark is not done by the kernel, it is done far down the road.

thaimin

Yep, patchguard is about correctly signed drivers on 64-bit - only. The phrase "patching instructions" did not mean patchguard. Patching just means something like "modifying a file containing executable code" to alter its execution flow.

However, I thought patchguard was relevant to the challenges in this thread, though very early on in the duscussion. But that proved to be a wrong assumption on my side.

Maybe you (RBCC) mixed up with what I described about patching the kernel to jump back to non-TESTSIGNING right before ci.dll initialization.

Joakim

eetzi96

Joakim: Send me what thaimin has, is almost ready to test? He said the background wouldn't be implemented, john@golden-computers.net

thaimin

Good news everyone!

Alpha 9 is ready to be tested by you guys!

The only reason I am not posting it on my website at the moment is I am in the middle of doing a major overhaul to my whole website. It should be up there sometime tomorrow. I will also be spreading the news to many others once at least one person here tests this out and tells me how it goes.

So after waiting for 3.5 months, whats new?
  • Does not require testsigning. In fact the current version can turn off testsigning for you if it notices you have it on.
  • Should work for any language, instead of just English and a few others.
  • You can change the text without a bunch of extra work.
  • Tons of new little tweaks you can do: changing the colors, sizes, etc. There is no longer a cap on the length of either text.
  • Works for systems that have the hidden "System Reserved" partition.
  • No more certificates at all.
  • And the enhancements seen in the preview: save bootskins for sharing, preview the animation, easily restore backups.
I have tested in English Home Premium x64 and English Ultimate x86. Both were 100% clean installs on a blank hard drive. Both had the hidden partition.

The one major issue that I know about is that changing the text 2 color to anything besides white on x64 causes the bootup process to go nuts and doesn't even try to auto-recover it. Don't worry, in the version I have uploaded it prevents you from making this fatal mistake. On x86 this works just fine.

So here it is, the moment you have been waiting for (only available at this address until I update my website):

http://www.coderforlife.com/temp/Win7BootUpdater.exe
http://www.coderforlife.com/temp/Win7BootUpdater64.exe

Both files are ~1.7 MB.

eetzi96

Hi!, I've been waiting for the new alpha 9 and now it's finally here. But when I tried to change the boot animation and both texts I first got a message saying that original � Microsoft Corporation .... Could not be found. then I tried again but only changing text 2 I still got the same message. I changed my winload.exe to my backup windload.exe and then I got this message

Imageshack - desktopyw.jpg

I managed to change message 1 and boot animation in alpha 8 but again when I tried to change it to a different text I got the same message in alpha 8.

I'm using Windows 7 Home Premium 64bit Finnish language

rockyp

@eetzi96
The error you got the first time was expected. The program can only work on the original files. Under "Options" there is a "Restore Backups" option. That's an easy way to restore the backups that my program makes (especially since the new program changes 4 files, each in a different place).

The other error you got is not good. I have uploaded a new version that should have more information in the error message. Hopefully with that I will be able to fix the problem.

Do you have a hidden "System Reserved" partition?

@all
The new program I just uploaded fixes the issue with x64 and text 2 color.

GEORG

Okay, so I don't have hidden partition and now I restored all of the backups. Now i get this error

ImageShack� - Online Photo and Video Hosting


Guest

Great thanks to "thaimin"
can I use this in physical system or virtual system.

Guest

Hi i have testing Alpha 9 on my windows 7 64 Bit German Version SP1 BETA its no working see:

-bild-1.jpg

!!!

moinmoin

Many Thanks thaimin.
It works great.
I have test it on Win 7 x64 Home Premium (German Version)

For the german user a little tutorial on deskmodder.de Windows 7 Bootscreen �ndern



Bohne

Thaimin thank you very much!! Your tool is working great here without any problems, I run Win7 Prof 32bit english here.
This was just in time. I was looking for such a tool last week and now you just released your first working alpha! Great!!

rockyp

Sorry for me its not working,
I changed the animation & text but when restart it automatically goes to starup repair & after that it comes to original boot screen. Please Help.
Windows 7 64 bits Ultimate

skyli

It's not working on Hungarian x64 SP1 too

thaimin

Thank you all for testing! Here is a list I have put together based on what people have said:
  • Works
    • x64 Home Premium English (no updates)
    • x64 Home Premium German
    • x86 Professional English
    • x86 Professional Italian
    • x86 Ultimate English (no updates)
    • x86 Ultimate English
    • x64 Ultimate English
  • Fails to 'Apply'
    • x64 German (SP1 BETA)
  • Startup repair
    • x64 Professional English (7600.16385)
    • x86 Ultimate English
    • x64 Ultimate
  • Just 'not working' (PLEASE BE MORE DESCRIPTIVE!)
    • x64 Hungarian (SP1)
    • SP 1 RC1
So the trend here is that 32-bit is less sensitive (and less popular). Also, at the moment no hope for anyone running any version of SP1... I am getting the SP1 files now so I will check out why this is. I will update the above list as more reports come in.

On another note my website is running so I am taking down the temporary files. You can get the files at:

Coder for Life - Project - Windows 7 Boot Updater

On another note, I fixed the x64 problem with text 2 color.

marcusj0015

Thaimin, I will test on my sister's x86 windows 7 laptop

im too lazy to get on the x64 desktop

do you mind if i link to your site on my DeviantART Account?


~EDIT~

it works fine for text on Windows 7 Ultimate x86

but the image looks smeared into a wierd color glump picture

the animation is displayed as a single image

Cooperdale

Windows Professional x86 Italian language, works like a charm.

I had the files modified from the previous version, what I did was remove testsigning, reboot, restore backups, reboot and then proceed with the changes.

Thanks for this work of art!

rockyp

Hi Thaimin,I made a simple animationfor quick test ,the animation works fine & text too.. Thanks again it worked fine un till updated windows.
I made clean install of win7 Ultimate 64 English bits & worked fine, but afterwindows update & restart it automatically goes to starup repair & after that it comes to original boot screen.Even I tried it SP1 RC1 also & same result.Is there any solutionsfor this Pls .

thaimin

@rockyp

My guess is that one of the Windows Updates changes one of the files I need to modify. I will have to research it and see what can be done. There is no solution at the moment.

thaimin

@marcusj

How are you setting the image? What is your original picture type / size? Or are you using a folder of images? If using a folder, what types of images (BMP, PNG, ...)? Does the preview look fine?

marcusj0015

idk if i load the individual frames it works fine,

and if i load a bootskin it also works

it says it cant apply Winload.exe patches because of a windows update?

Windows 7 x64 Ultimate



thaimin

@marcusj

There are 2 causes of that error:
  • You modified winload.exe (using any of my programs or manually). Use Options > Restore Backups. Repeat until it says it didn't restore anything.
  • There actually is a difference due to a Windows update. This is true for SP1. There is nothing you can do at the moment about this, but I am working on finding the patches for SP1.

win7expert

Thanks very mutch to thaimin for his work.

@thaimin: Can you host my custom animation on your website?

@all: It's time to create some animations, we can host it on my servers or on yours, thaimin.

thaimin

@win7expert
I plan on making a system for uploading bootskins (even directly from within the program) to my website, but this will be in a little bit. I would like to make it nice.

fritz

Just wanted to throw in that everything works perfectly on x64 Enterprise (English)

skyli

Sorry that i didn't specify the problem. I can't aplly due to windows update(SP1) too :/

eetzi96

Hello again Thaimin, I'm back with my problem. Now I got pass the "original microsoft corporation text could not be found" just did what you said so I restored untill it says nothing restored. now I get this strage message when it's finishing Bootmgr

Just for making sure that you understand what it says, all those "Kohteessa ..." means located in what ever it says. Don't know if you understand

Imageshack - qwertyv.jpg



marcusj0015

Here Are My Version Numbers For Winload and Bootres



Winload.exe Version 6.1.7600.20770

Winload.exe.mui 6.1.7600.20770

Bootres.dll Version 6.1.7600.16385

GEORG

Hi update for #430

Here Are My Version Numbers For Winload and Bootres Files:

Winload.exe + Winload.exe.mui + Bootres.dll Version 6.1.7601.16562 !!!

skyli

Mine is 6.1.7601.17105 (newer :P) 2010.09.30

marcusj0015

but what did they change in the updated winload?

probably some bug fixes and performance fixes

so can we hack those or do we need to restore the original ones?



Mayoral

Hi! I try to modify winload.exe text "Starting Windows" with windows7updater, but didn`t works

Error in winload.exe, stop installation before the first reset.

Why? Is possible a tutorial... or is possible modify manually winload, only to changue the text?

Thanks a lot! Sorry for my english, i'm spanish, version of my windows 7 to modify 7.600 spanish es-ES

bye!

marcusj0015

you DONT want to manually mod winload

that would take forever

just let Thaimin fix the bugs, he is really busy so be patient

thaimin

@marcusj
Likely almost nothing changed, but a little change and a recompile could make everything not work... I am working on a system now that will allow it to use the file version number to apply the proper patches.

@Mayoral
What didn't work?
Did it go into System Recovery when you restarted? Are you using version Alpha 9?
Was there an error running the program? If so what was the error? (just type it and I will know whats going on)

rockyp

Hi Mayoral,
I had the smae problem with my 2nd system,if you updated win it will be restored to original.
First reinstall windows7 & use windows7updater to change. It works.

Mayoral

@Mayoral
What didn't work?
Did it go into System Recovery when you restarted? Are you using version Alpha 9?
Was there an error running the program? If so what was the error? (just type it and I will know whats going on)[/QUOTE]

Not works the version Alpha 9 in windows 7 7600 es-ES. I need the certificate to modify winload? I want to change only text in winload.
http://www.sevenforums.com/attachmen...1&d=1293467292

http://www.sevenforums.com/attachmen...1&d=1293467292

This is the error in the install.

Thanks!!!

joakim

Quote�� Quote: Originally Posted by Mayoral View Post
Is possible a tutorial... or is possible modify manually winload, only to changue the text?
Read post 1. It is supposed to be a tutoral on how to do this manually. It's not hard if you're familiar with hex editors and disassemblers.

Joakim

Mayoral

Quote�� Quote: Originally Posted by joakim View Post
Quote�� Quote: Originally Posted by Mayoral View Post
Is possible a tutorial... or is possible modify manually winload, only to changue the text?
Read post 1. It is supposed to be a tutoral on how to do this manually. It's not hard if you're familiar with hex editors and disassemblers.

Joakim
Hi Joakim thanks! I modify manually winload.exe. I changue starting windows to "windows 7 lite" but error when reset the installation.
I don`t find this to hack winload for the checksum
at VA 428DC5 change 7418 to EB18
at VA 428DE3 change 0F8400010000 to 909090909090
at VA 428DF6 change 0F871CFDFFFF to 909090909090

Where is this part? I use HxD hex program.

Thanks again

joakim

Quote�� Quote: Originally Posted by Mayoral View Post
I don`t find this to hack winload for the checksum
at VA 428DC5 change 7418 to EB18
at VA 428DE3 change 0F8400010000 to 909090909090
at VA 428DF6 change 0F871CFDFFFF to 909090909090

Where is this part? I use HxD hex program.
The translation from va to raw offset becomes;
Code:
va 429612 = raw offset 28a12 va 428dc5 = raw offset 281c5 va 428de3 = raw offset 281e3 va 428df6 = raw offset 281f6
It depends on what kind of program you're working with. A pure hex editor will read raw offset whereas a combi tool like hiew will let you patch by using any of the two.

Joakim

SystemUser

Hi guys, i'm new here.

I don't know if it's already been fixed, but i had some trouble with Windows 7 Boot Updater 0.9.
The problem was with the signature of winload.exe, it either failed to boot or got into recovery mode and restored an SRP. I got this issue fixed with the following commands before rebooting

bcdedit.exe /set nointegritychecks ON
bcdedit /set loadoptions DISABLE_INTEGRITY_CHECKS
this way bootmgr skips the Winload (and other files) integrity checks and boot windows successfully. And got an nice Animus bootscreen.

thaimin

@Mayoral
None of us have tried to install with these modified files only modify them after install. My eventual goal is to install with them, however I haven't gotten that far yet. You may need to update something else to get them to install right.

@SystemUser
The new version is supposed to not require any bcd changes. Although you are right that with a little help the new version still does work.

@all
I have been working on a bunch of new code. Instead of hard-coding all the hacks, I have made a updatable patching system that is version-based (so it applies the proper patches to the proper version files). So far I have made it reproduce the hacks included in Alpha 9. It automatically checks for updates on the web, so this will help in the future when the program is working but needs to adapt to new file versions.

With this system in place I will soon do more testing to find why many pre-SP1 versions are failing and entering System Recovery. I have a system here that exhibits that behavior so I can test. I may be able to figure out the SP1 hacks as well. At some point during this I will release an Alpha 10.

Beta 1 will come eventually, and I am planning to have it working for nearly everyone (up to and including SP1) with the fancy background image. I then plan on working on an installer, the sharing website, winresume.exe correctly working, and efi.



GEORG

Thanks for info you are the best !!!

marcusj0015

thanks Thaimin,

if you need anything ill be glad to help

i have a little side project too hopefully it will come to fruition soon.

eetzi96

Hi Thaimin, Could I get a Download Link for alpha 8 because alpha 9 is not working for me right now and I accidentally deleted the one I had.

blkwlf

@thaimin:

Did you get busy again? Are you going to do anything with using custom fonts?

RBCC

thaimin

This is great stuff!

Thanks for all your hard work thaimin

eetzi96

@GEORG, marcusj, blkwlf
Thanks for the support!

@eetzi
I would prefer not to go backwards... However the new version will actually work if you turn on "no verify" like in a previous post in this forum (by SystemUser I believe). If that doesn't work I can look for my copy of it and upload it.

@RBCC
I am always busy since this isn't my job. However I am not always as busy as I was before. I am working on this in my freetime so development will be slow.

Custom fonts were becoming a mess so I decided to remove them as long as the full image background works because then you could use any font at all (and not just specific types with specific names and tons of internationalization issues).

Background images have not been tested at all. I just upgraded my laptop to Windows 7 (it's my primary computer and was still on Vista). I also am building a new desktop which is where all my testing happens (it runs VMs great). So basically I haven't been able to work on it. The dynamic patching system was important and big and is working so it's not like I haven't done anything.

maherDP

Tried turning on "no verify" thing but still not working I allways get the same message as before


joakim

I have the same problem

Guest

Just letting you know that I've started testing code to draw bitmaps with winload.exe. Does not currently work, but at least some progress have been made.

Joakim

marcusj0015

how much longer Thaimin?

ill test the latest version ASAP, just tell me when there is a new build



joakim

Just had a look at the sp1 (x86), version 6.1.7601.17124, files and almost nothing has changed. The security of winload.exe is still the same, meaning the same hack will still work. It will have a slightly different offset though. VA 00429684 or raw offset 0x28a84.

@thaimin1
Your bmzip tool does not work on the new bootmgr. However since the security of bootmgr and winload.exe is almost identical, I would assume bootmgr's hack also still works. Actually there is no need to have the new version. Just replace with the old one, if you can't it going.

@thaimin2
The bitmap drawing development has now halted completely. Whenever you're ready, I'll send you my current implementation and the notes. I think we need to add our own code to load bootres.dll, instead of depending on the existing (this is what I think is the current issue).

Joakim

thaimin

@joakim

I have been busy, although I have read all of your personal message joakim, so I have been following, just haven't been able to think about them and respond. I have finally setup my virtual machines on my new computer so I can start testing again!

The SP1 also has a change in winload.exe, as I can see in the picture given by GEORG in post #430: How to change boot animation in Windows 7. The change is with one of the background / text / color properties. This should be fairly easy to find knowing that. With my new patching system it should also be very easy to make the change in the program (just have to say for version 6.1.x.x do this hack instead). I actually don't use offsets at all, so we'll see if it even needs to be updated!

Sad to hear that bmzip doesn't work anymore. I will have to do a brief investigation, and maybe revert to copying the old one (although I would prefer not).


@marcusj
Soon, hopefully. I have a bit of time now, and I have finished transitioning to new computers, so I can work on it.


@eetzi96 and maherDP
That is a serious problem. It looks as though the decompression of bootmgr is failing with and access violation (attempt to read or write protected memory). If you have SP1 then the issue may be the same as what joakim was talking about. Otherwise, I will have to do some further studies. Can you send me your bootmgr file so I can investigate?

When Reporting Errors: please copy the output from my boot-versions program: Coder for Life - Project - Win 7 Boot Updater: Extras. It will tell me a lot about the system and files you have and help me fix the problem. Most people will probably want the GUI version.


@GEORG
I hope to start testing SP1 soon. Thanks for the link!


@all
I have revamped the core of the program separating the 'core functions' and the GUI. They are separate programs now which means in the future I will be able to make different interfaces easily (like an installer, command line, etc). It also helped with my organization, it was getting a little difficult with 65+ source files... with that task out of the way I can focus on fixing the issues.

eetzi96

What's happening with the boot updater! John

GEORG

@for all who had the same problem as I

I found out that the bootmgr file in my case was not located on hiddenpartition. I just changed the location in bootupdaters options from hiddenpartition to C:\Windows\Boot\PCAT\bootmgr

Now i succesfully updated animation and both texts.

marcusj0015

Quote�� Quote: Originally Posted by thaimin View Post
@joakim

When Reporting Errors: please copy the output from my boot-versions program: Coder for Life - Project - Win 7 Boot Updater: Extras. It will tell me a lot about the system and files you have and help me fix the problem. Most people will probably want the GUI version.
Hi here my Boot Info for you !!!

Windows Version: 6.1.7601
Service Pack: 1.0
Product / Type: Home Premium / Workstation
Platform: x64

bootmgr
----------------------------------------
Path: C:\Windows\BOOT\PCAT\bootmgr
File Version: 6.1.7601.17514
Product Version: 6.1.7601.17514
Platform: x86

winload
----------------------------------------
Path: C:\Windows\system32\winload.exe
File Version: 6.1.7601.17514
Product Version: 6.1.7601.17514
Platform: x64

winresume
----------------------------------------
Path: C:\Windows\system32\winresume.exe
File Version: 6.1.7601.17514
Product Version: 6.1.7601.17514
Platform: x64


joakim

Thaimin, you should patch BOTH bootmgr,
in hidden partition, and at C:\Windows\Boot\PCAT\Bootmgr

to cover all bases

GEORG

OK so I just noticed you had recompiled a new version on 12.01.11, and it works with newest bootmgr. I'm sorry for running the test on old version of bmzip. Some strange things about bootmgr. There appears to be 2 different versions of 6.1.7600.16385, one dated 13.07.09 and the other one 01.04.10. The have the same version number as well as the same internal compiler timestamp in the pe header (13/07/2009 23:11:27). However, they are signed on different dates (and have a 2 KB size difference). Is this an April joke? Or is it me running Embedded (but sp1) that is the cause? Anybody have a new (non-Embedded) bootmgr to send me?

Regarding bitmap drawing:
Could it be easier to embedd the bitmap inside winload.exe itself and rewrite a modified copy of the function ResFindDataEntry (instead of BlResourceFindDataFromImage). I also notice that bootmgr is not happy with the way certain pe (resource) editors add a resource to winload.exe (good old reshacker still works though).

Joakim

joakim

Hi

Here my original files from Windows 7 Service Pack 1 64 Bit (bootmgr + winload.exe + winresume.exe = 6.1.7601.17514) for you:
Standard.ZIP


Guest

Thanks, I'll take a look.

joakim

Decompression works perfect on version 6.1.7601.17514 (win7sp1_rtm.101119-1850). The same signature hack still applies, but now at VA 00421ec7 (replace 7416 with 9090).

But something went wrong in the recompression, as the stub complained about the checksum. A bug or did I misunderstand how the stub and "frames" where supposed to be reassembled again? Anyways, just deactivate it by changing 7403 with eb08 at offset 0x105e, and you will get no more complaints.

Joakim



GEORG

Hi

make it in the next Alpha version for testings ???

thaimin

I am still working on trying to identify the issue that causes half of the people to go into Windows Recovery...

In the mean time though I have been adding some SP1 stuff. I have done my initial testing with 64-bit SP1 and it can successfully run the program and apply, now I just need to run it in a VM to see if it works. Also I need to find the 32-bit SP1 differences and test them.

I have also started to add winresume code. It took a bit of restructuring of my code but I believe the code is in place. I just need to find the hacks now (I need to convert the hacks from winload to winresume, they should be nearly identical, but likely there will be a few differences).


I plan on finishing the above (half of people in Windows Recovery, SP1, and winresume) soon (a week or two?) and releasing the next alpha. If the majority of people say that it is working, I will probably add a few tweaks/fixes and release a beta, with confidence that it will work for most people.

I will release a couple of betas, adding extra features such as boot skin sharing and installers, along with fixing any issues that come up. Since the patching is now separate I can update those at any time as new versions of the files are made available.

thaimin

@joakim
Awesome that the newer bmzip worked (some very minor tweaks that I guess were important!). Weird about the checksum thing, and that certain resource editors cause problems. Also, I noticed the two 'versions' of bootmgr as well (when just go through the update files). In fact there are also bootmgr.exe files (2, identical)! Already decompressed! They are the same as the 2 KB larger bootmgr final program, decompressed. So my guess is that the larger bootmgr is the right one.

I am sorry that I haven't been able to provide any feedback with the image stuff yet, but hopefully this weekend.


@GEORG
Thanks for the info, it tells me yours isn't working because you have SP1. Now I need the info from the people that aren't using SP1. They are the mysterious ones.

@eetzi96
Glad you figured it out. It is weird that you have a hidden partition with bootmgr (that doesn't seem to be a valid bootmgr) but the important bootmgr is on your main drive. Do you have anything special with your boot setup (e.g. dual boot, WinPE, PXE, ...?).

@marcusj0015
Many people don't have the hidden partition (the choice is obvious in those cases). However for eetzi96 it seems as though I was unable to patch the hidden bootmgr and it freaked out, thus patching both would also freak out. But maybe I can work something out.

marcusj0015

What is the difference between Windows 7 and Windows 7 SP1 besides having all the updates? Is there a difference? John

GEORG

what exactly do you mean RBCC?

with SP1 almost all areas of Windows has been updated.

there is a vast amount of differences.

try to narrow it down and ill try to help, but i can't help without knowing exactly you mean.

eetzi96

Ok thanks for info you are the best !!!

marcusj0015

Quote�� Quote: Originally Posted by thaimin View Post
@eetzi96
Glad you figured it out. It is weird that you have a hidden partition with bootmgr (that doesn't seem to be a valid bootmgr) but the important bootmgr is on your main drive. Do you have anything special with your boot setup (e.g. dual boot, WinPE, PXE, ...?)
No I don't have anything special. Bought an OEM version of finnish windows 7 allmost right away when it was released.Sure I have modified logonscreen and themes but I don't think it should effect anything.

Guest

How do I go about applying the Service Pack like the Visa sp1? Or can I slipstream it ?
can I download it then slipstreamit? John

Guest

i peronally think slipstreaming is a bad idea, and can lead to windows just not working right.

if you slipstream it, what's to say that the program you slipstream it with added the registry entries properly?

that's exactly what happend with Vlite.

if i were you i would install regular windows 7 on a seperate partition, adn install all patches and then SP1, then capture the image, then burn.

that way everything is installed right.

adn while your at it you can update DirectX, and make it so you can install it and jump right into using it after, without having to set everything up!

thaimin

@RBCC
If you have questions about SP1 then either search Google, search this forum, or start a new thread. This thread is about changing the boot animation in Windows 7 and at least slightly related things. Slipstreaming is not related.


A brief update on my progress. I have have found all the hacks and done my initial testing. I am working through the following problems:
  • The Windows Recovery issue that happens to a random set of people in Alpha 9
  • Winresume:
    • My testing might be wrong because its in a VM and those don't fully support hibernation but here goes:
    • 32-bit original/SP1: Worked the first time (original), although I had a different issue which caused no messages to show up. After that it only got to showing the messages and doesn't show the animation, and freezes.
    • 64-bit original/SP1: after animation, black screen, and freeze
I still need to test long copyright notices in all (32/64 RTM/SP1) otherwise the tests above include all features in the program.



GEORG

Nice info thanks thaimin im waiting for testing !!!

thaimin

Are you working on the Background? Also changing of fonts in copyright? Or is that all but forgotten? RBCC

marcusj0015

@RBCC

READ THE THREAD or the emails I send you personally! Below are quotes that I have said before, some directed at you when you previously ask similar questions. We are working on this, but this is not our job, so it doesn't get priority. If you need something like this done on your schedule, then hire programmers. You are already on my email list, I will inform you of major updates and major updates will be posted here. I even regularly post minor updates to my progress here (in fact two entries above I have some things I have been working on). If you would like me to start submitting progress reports and time-sheets to you I will require a paycheck.

Quote�� Quote: Originally Posted by thaimin View Post
Custom fonts were becoming a mess so I decided to remove them as long as the full image background works...
Quote�� Quote: Originally Posted by joakim View Post
Just letting you know that I've started testing code to draw bitmaps with winload.exe
Quote�� Quote: Originally Posted by joakim:1191121
Regarding bitmap drawing
Quote�� Quote: Originally Posted by thaimin View Post
I am sorry that I haven't been able to provide any feedback with the image stuff yet, but hopefully this weekend

thaimin

Thaimin, i tried again using YOUR animation.bmp and i saved it in photoshop as 24 bit BMP and loaded it and the animation IS NOT curropt, like it was a while ago.

here is my .bs7 file with all my settings so you can see.

hopefully it helps!

MEGAUPLOAD - The leading online storage and file delivery service

marcusj0015

What is the issue though? There is nothing wrong with what you have done.

thaimin

no, there is no issue, remember when i showed ou how the animation looked like smeared and everything?

it works now, i'm now sure what's different, but it works.

marcusj0015

Oh yeah, that was fixed awhile ago. I made the system much more robust. The issue that you had before was the file had a DPI specified (whereas most files don't have any DPI). I corrected that among many others.

marcusj0015

oh ok, i thought it was still being worked on,

and what is DPI?

like dots per inch?

and did you correct the actual file, or did you make your app adjust those settings automagically?

Guest

am i like, the thread killer?

or something?

thaimin

No you aren't. I am just busy...

DPI is dots per inch. I made the program automatically use straight-up pixels and ignore the DPI (which it uses by default if the file includes it).



thaimin

Sorry I am bugging you too much!

thaimin

I would like to announce that I have done the first successful full-background image! I was able to have a 24-bit BMP image drawn instead of the text and then the animation is drawn on top of that. I will not be including this in the next version of the program since it still needs much work, but the one after should have it.

The holdups for the next version are (in order of importance):
  • Winresume locking up
    • 32-bit locks up right after text is draw, before animation
    • 64-bit locks up after the animation and it is done resuming, on a black screen
  • Need to fully test long copyright texts
  • The problem that causes random people to enter System Restore

joakim

@joakim
This message will be quite technical, so I decided to separate it out.

The tests were done in Windows 7 32-bit, pre-SP1, with TESTSIGNING enabled on both {bootmgr} and {current} and boot debugging on {current}. I used no other hacks besides the new function.

As you suggested, I switched the whole function over to using RC_DATA 1 in winload.exe instead of RC_DATA 2 in bootres.dll. The changes here were to use "and eax, 0; and ecx, 0" instead of "mov eax, ...; mov ecx, ...". And changing the id to 1 instead of 2. This will have the added benefit of allowing different images for boot-up and resuming.

I found that there were numerous issues with the code I sent you since I didn't understand how to write a function from scratch in assembly. What I did to make the function work properly was continually change the bytes, have IDA re-deassemble the file, and then use Hex-Rays to decompile my function. I tweaked it until the decompiled function looked as expected.

There is still one major issue however. The call to the new function is "messed up". But it shouldn't be... In the file it looks fine (and I checked the actually file being run) [E8 87 5F 05 00] but while debugging it changes to [E8 87 2F 18 00]. No other function call is doing weird things. I finally got around this by using WinDbg to change the code back to [E8 87 5F 05 00] while it was already running and it worked.

What do you think about that last issue? Is it something with re-basing the code when it is loaded? The base specified in the file is 0x400000 but the file is loaded at 0x52D000 when actually run. The difference there (0x12D000) is the exact difference that is introduced... The reason it may only be affecting that one spot is that the code it is replacing is an absolute memory reference. So maybe the relocs table has to be updated...

thaimin

@thaimin: I am inquistive are the holdups for the next version should be ironed out if one thing is working then all should work?
Good job, thaimin!

joakim

Quote�� Quote: Originally Posted by thaimin View Post
I found that there were numerous issues with the code I sent you since I didn't understand how to write a function from scratch in assembly. What I did to make the function work properly was continually change the bytes, have IDA re-deassemble the file, and then use Hex-Rays to decompile my function. I tweaked it until the decompiled function looked as expected.
Thanks for giving such an utterly excellent example of a trial & error method. I never thought of this.

Quote�� Quote: Originally Posted by thaimin View Post
What do you think about that last issue? Is it something with re-basing the code when it is loaded? The base specified in the file is 0x400000 but the file is loaded at 0x52D000 when actually run. The difference there (0x12D000) is the exact difference that is introduced... The reason it may only be affecting that one spot is that the code it is replacing is an absolute memory reference. So maybe the relocs table has to be updated...
I also ran into this issue and ended up hardcoding the "rebased" memory location at certain places (not all of them actually). I never really understood why only certain parts needed this, but I managed to get it work, at least in terms of making the call to the right location, and continue execution as expected. It certainly looked weird. However my code (or mostly yours) about the bitmap drawing didn't work at the time, so no image was drawn. But the system booted fine anyway. If you can send me a sample with a working bitmapdrawing, I'll try to fix the adresses. But believe me, it is not difficult, and I feel you are way more skilled than me.

I will also be extremely busy at work in the next days, but I will try to squeze in a few minutes. If not tonight, then it must be next week sometime.

Joakim

thaimin

@joakim
I did just a little bit of additional research and got it to not relocate it! The PE file has a section called ".reloc" and a data directory IMAGE_DIRECTORY_ENTRY_BASERELOC (both should point to the same place in the file). It lists all the places where relocations need to occur. Very near the beginning was the one we were looking for. Changing it to 0s made it ignored (whenever the first 4 bits are 0, the entire relocation entry is ignored).

You can read more about them at Peering Inside the PE: A Tour of the Win32 Portable Executable File Format in the section "PE File Base Relocations" and Inside Windows: An In-Depth Look into the Win32 Portable Executable File Format, Part 2 in the section "Base Relocations". I used PE View (WJR's PEview(PE/COFF File Viewer), xlatHinc, M(Mandelbrot Set), Awpm) to look at the file and find it.

I zeroed it out, retested, and voil� it works! I will have to add a little something to my program to automatically search for and zero out overwritten relocations.

I will send you an updated document soon with how this all finally worked. As a note there will likely be some changes to get it to work in 64-bit.

Quote�� Quote: Originally Posted by joakim View Post
Thanks for giving such an utterly excellent example of a trial & error method. I never thought of this.
Thanks! I thought it was pretty clever too, and actually went pretty quickly. Some changes I could do right in IDA without re-disassembling (as long as they were the same length assembly instructions).

@RBCC
Each one is its own thing. I may have fixed the 32-bit winresume issue just I haven't tested. I have no idea about the 64-bit winresume issue at the moment. The long copyright testing I am quite certain works, I just haven't tested it since I changed my patching system and got SP1 working. The last one I have one idea left to test, and hopefully that will be it! Otherwise I will release it with that issue still there. All in all, this isn't too big of problems to work out, and hopefully this weekend, time permitting, I will release it.

Guest

Very nice! Thanks a lot! I've read the book/article more than once in the past. But I guess it helps to re-read it at certain intervals whenever your knowledgebase has increased and you're able to digest more of the info.

Could you also attach a sample winload.exe at the same time (I barely have any time left at all, and will thus not have time to implement the new code before debugging)?

Joakim

Guest

Thaimin:

Will this be in form of a alpha ie alpha10? Or could you release as a patch for 9? RBCC

Guest

@RBCC
This will be a new program: alpha 10. Alpha 9 (the current) and before have no means to be 'patched'. Alpha 10 has minimal means of being patched (only its knowledge of where to look to replace things in the system files). Any additional work (many of the things I am and will be working on) will require completely new programs. If you haven't noticed you download a single program file, it does not install anything... Please think about things before you ask.

marcusj0015

RBCC, chill out a little man, it will be done when it's done.

and you will be sure to know.

it will probably be all over the internet.



xxrazor

While i have managed to get the boot animation to work, i am trying to find all the files to batch into a new OS.

What i need to know is the Director path of each file required to load in the new OS, especially Winload.exe, in which i have signature issue when booting to New OS.

I am trying to get the animation to work on new install and when loading in the New OS.

Thanks for the help

cheers
xxrazor

marcusj0015

open up the boot animation app, click the options tab.

it will list all the hacked files, with the path to said files.

thaimin

@xxrazor
Some of the files may be in the boot.wim. You probably need to replace the files in boot.wim entry 1 and 2, and the entry in install.wim that you want to modify. The "Options" menu lists their actual locations (Windows\...). No one has really tried to get this to work by modifying files pre-install. Please tell me how it goes since that is my eventual goal.

yuri0510

very good job thaimin and all the others hope you get the risult very soon

marcusj0015

Thaimin, we have a problem.

someone ripped off our work (by our i mean everyone that contributed.)



link to infringing work: My7Vision.Fr - My 7 CustoBox v1.1.2.0

i don't know what you want to do about it, it is only your decision, as you wrote it.

thought i would tell you.

i would be pissed.

thaimin

There are a number of works I have seen that include my EXE. Many on deviantART. This is why the current and future versions all include my information, links, yours guy's names, and the license embedded in the program, accessible in the About menu. Its not ripping off my work, it is disseminating it.

The things that I am worried about is a company like Dell using it to brand every machine they sell. That's why I am forbidding commercial use. I am working with a few companies that want to brand their machines.

I want to make an installer for those people that want to spread their designs using my software. That was there is a consistent and 'controlled' installer that uses my software. I am getting close to being able to do that, although I am working on many little bugs that are being a b**** to track down. I hoped to release awhile ago, but its taking longer than I would have hoped.

rockyp

Greate Thanks thaimin
waiting for your new release.

marcusj0015

ok, it's fine if i make my Cloud7.bs7 on my DeviantART right?

and thanks for including my name in the about menu, i never noticed that!

thanks!

if i knew how to code i would help with that,

what language is it written in?

my twin sis is taking a programming class, so i might be able to help.

thaimin

It is a bit, and I must agree that most people on deviantART do give me credit. But for those people who don't want to, the program gives me credit.

It is written in multiple languages: C, C++, C++/CLI, C# and assembly. Very convoluted. However there may be something you can help with soon. I have separated the interface from the core. The core can be in a stand-alone DLL file, with everything required to modify the system, and even load and save BS7 files.

One thing that would be great to have as a new interface is an installer. I think using NSIS would be a good way to go. Here are some of my initial thoughts on it:
  • There is an NSIS plugin to use functions in CLR (.NET) DLLs like the one I have created: Call .NET DLL methods plug-in - NSIS
  • The installer would have to have the BS7 file within it
  • It would possibly have an "Advanced Options" page to set the destination files
  • The uninstaller would restore the files
The NSIS has its own language, and I would prefer not to have to continue learning new languages...

xxrazor

Quote�� Quote: Originally Posted by marcusj0015 View Post
open up the boot animation app, click the options tab.

it will list all the hacked files, with the path to said files.
Thanks mate, that may help.

Since i was unable to get the new beta version to work for me, i have been using the older Alpha version which does not have the Option selection.

In saying that i do have the beta version, and will check out the option selection for all the paths within.

Quote�� Quote: Originally Posted by thaimin View Post
@xxrazor
Some of the files may be in the boot.wim. You probably need to replace the files in boot.wim entry 1 and 2, and the entry in install.wim that you want to modify. The "Options" menu lists their actual locations (Windows\...). No one has really tried to get this to work by modifying files pre-install. Please tell me how it goes since that is my eventual goal.
No problem mate, this has been my ultimate goal, i will be in touch when it is successful.

Happy to pass on the info.

cheers
xxrazor



marcusj0015

lol about learning the new languages,

i think your best bet, would be simular to the 7-Zip self extracting archive.

it could hold the 7boot app inside the bs7 and somehow run it from within the archive, and extract itself and the resources.

oh, no effence,but could you put my full name in the about tab, Marcusj0015 you forgot the 0015 part.

or you could put in my deviantart account which is more important to me, BumbleBritches57

thaimin

@xxrazor
The old version (Alpha 8) requires testsigning to be turned on which you can't do for a new install. You must use at least version Alpha 9 which attempts to work around the testsigning requirement.

@marcusj
The problem with a 7-zip self extracting archive is it provides no method for uninstallation. If someone wants to try out the animation then try another it will complain that the files are already modified. If the want to remove it or whatever they would be lost. Also, apparently these modifications interrupt some Windows Updates so uninstallation and reinstallation may be required just to install some Windows Updates.

I will correct your handle for the next version. Sorry for the oversight.

xxrazor

Quote�� Quote: Originally Posted by thaimin View Post
@xxrazor
The old version (Alpha 8) requires testsigning to be turned on which you can't do for a new install. You must use at least version Alpha 9 which attempts to work around the testsigning requirement.
I was unable to get Alpha 9 to work at all, on reboot it goes to startup recovery every time.

Alpha 8 is the only one that would change boot animation.

cheers
xxrazor

thaimin

@razorxx
The with issue Alpha 9 seems to only shows up when you don't have the hidden partition. The default for a new install is to have that hidden partition, so it should work. I can assure you that Alpha 8 will fail when integrating it into a new install.

marcusj0015

ok thanks Thaimin,

for the windows update problem, do you know HOW it throws off Windows Update?

what are you thinking on how to make the installer?

thaimin

Windows Update supposedly fails with errors 80070643 and/or 80071A91 only with certain updater. This was reported to me by someone. I haven't experienced it.

As I said previously, I believe that NSIS would be a great way to make an installer.

xxrazor

Quote�� Quote: Originally Posted by thaimin View Post
@razorxx
The with issue Alpha 9 seems to only shows up when you don't have the hidden partition. The default for a new install is to have that hidden partition, so it should work. I can assure you that Alpha 8 will fail when integrating it into a new install.
You may need to explain this comment

"The with issue Alpha 9 seems to only shows up when you don't have the hidden partition"

Can you explain what i need to do to get Alpha 9 to work base on the comment above please.

I have a patch that enables you to install Windows 7 without being forced to create the hidden partition.

You need to mount boot.wim image 2 and substitute "sources\winsetup.dll"

When you boot from the dvd and you get to the "Where do you want to install Windows?"
screen, If you choose next you will get the normal partition layout with the hidden partition.
But if you click "Drive Options (advanced)" you can create a partition using the whole disk and the hidden partition will not be forced upon you. Thank To Neuropass

Thanks Mate
cheers
xxrazor

marcusj0015

what that means, is if you DON'T have the hidden partition, it won't work right now, and Thaimin is trying to work out the bug and it will take some time.

marcusj0015

Thaimin, what is NSIS?

thaimin

thaimin

what about inno setup? NSIS is another installer that is free! Please explain something, if you do have a hidden partition it works? Isn't about everybody who haven't used @xxrazor's patch?

RBCC



GEORG

@RBCC
Many people do not have hidden partitions, xxrazor's case is a very special one in that from an unattended install on a clean computer there will be no hidden partition.

The other ways to get no hidden partition is to be installing Windows onto a computer that already has an OS (Linux, Mac OS, Windows XP or earlier, ...). This is likely the most common way to have no hidden partition, initially I thought it was the dual-boot setup itself that caused the issue.

The last way I know (which is how I did my testing) is to use a utility to partition the drive before installing Windows. Some manufactures use a system similar to this so that the end-user machine has no hidden partition. When I ran into a person with this situation it is when I knew that it was the absence of the hidden partition causing the problem.


@RBCC
I am new to this whole installer thing, and my initial (very brief) search turned up NSIS. Inno Setup looks promising as well. Seeing that I haven't actually started making the installer, I can still change which one I will use. Thanks for the input!


@marcusj0015
NSIS is a script language that can be compiled into an installer. Inno Setup is the same idea.


@all Important!
I am proud to announce that I have successfully fixed this bug that darn bug causing problems with people who didn't have a hidden partition. In fact it uses a very smart system now to find the exact bootmgr that you are using (even if you have the hidden partition with a bootmgr but use one on your main drive, it should still work!). I plan to use this smart system for the other files (winload, winresume), but that will come in a later version so I can release the current one.

I have also added complete winresume support. You can edit the resume screen completely independent of the boot screen!

It also has complete SP1 support!

There have also been other numerous, less obvious, changes as well.

I will hopefully release the new version tomorrow, I still want to run one last set of tests on all systems (x86/x64, RTM/SP1, with and without hidden partitions).


Hopefully this next release will have no big hang-ups, and I will release the first beta with a full-image background support.

moinmoin

Good news thaimin thanks !!!

marcusj0015

Wow great, thaimin. Many many thanks for your work.

for those, looking for a boot screen: Deskmodder.de - Windows 7 Boot screens - Boot animationen

Unknown ID

Thaimin, IExpress, will add modded files and a cmd script to move the modded files to there correct locations. i think this is perfect.

just another idea, and it's built in, so you should check it out.

and i find CMD files easier to write, becuase i know the scripting language.
and if you want me to write a big cmd file with variables i would love to help, it's the only programming thing i can help with.


Great job Thaimin!
sounds like your app is finally coming together, like we all have been hoping and working for.


@Moinmoin,
that is pretty awesome, too bad it isn't Optimus Prime, Or BumbleBee From Transformers doing that.

that would be AWESOME!

marcusj0015

Cool bro

thaimin

Has anybody figured out how to "shut down" patchguard on a file by file basis? Is there a way so winload.exe can be altered or do you alter winload.exe.mui instead?

thaimin: Sounds great I see you finally got some thing to work on it, things must have busy for u!

RBCC

joakim

i don't have much info about patchguard, but you can't turn it off.

he just patches winload.exe, as winload.exe contains the program code, and winload.exe.mui, only contrains the resources contained in winload.exe, but no code.

Guest

@all
I accidentally deleted the entire project (using shift+delete so it skipped the recycle bin). I was able to recover most of it, but since then I have been busy restoring files. I have got everything back, but this has delayed my testing. So still stay tuned!

@RBCC
I have told this to you before. Patchguard only protects files after the main kernel (ntoskrnl) takes over. bootmgr and winload are their own kernels (technically bootmgr is a kernel and winload is a library it loads). This means I need only disable the security of them checking themselves. I do this already in Alpha 9! I disable all checks on bootmgr, bootmgr.exe.mui, bootres.dll(.mui), winload.exe(.mui), and winresume.exe(.mui). The winresume checks are only disabled in the upcoming version since it is the first to support modifying winresume.

Guest

@RBCC
Whatever security mechanism you want to alter, a file by file basis must be a pain to implement. All (files) in one is a lot easier, usually.

marcusj0015

glad you got everything back thaimin, you might wanna make a backup.

and you should look into IExpress.exe for your patcher



thaimin

It's up! v0.0.0.10 Alpha is up!

Coder for Life - Project - Windows 7 Boot Updater

I tested it the best I could in VirtualBox, however I found out that Windows 7 x64 can NEVER resume in VirtualBox, so I had to skip all 64-bit winresume tests.

Hope that this version is much more successful overall. I will be emailing everyone who emailed me through my website tomorrow, so you guys get a "sneak peak".

A couple of major notes about this version:
  • It now requires .NET Framework 4.0 (unless you download a version built for .NET Framework 2.0 which I will be fading out)
  • The BS7 format changed so old boot skins won't work. If you want yours converted, I can do it for you.
If this version is working well, I will try to release a beta soon, marking the fact that it isn't unstable anymore. My next planned features are:
  • Better defaults for winload/winresume based on BCD data (I can find out exactly the winload and winresume you are using)
  • Full image backgrounds
  • An installer system and a sharing website

If anyone is looking for a good read, look at this: FGA: The Windows NT 6 boot process


@marcusj0015
I had an old-ish backup (approximately right before Alpha 9 was released). I just made a backup and will be setting it up to do automatic backups from now on... I learned my lesson.

@marcusj0015
Due to "TrustedInstaller" owning all the files I need to modify, CMD scripts don't really work. My program does a bunch of work to make the file accessible. Additionally, just providing modded files means that as soon as a Windows Update comes along, everyone has to make a new installer! Seeing that I now have a DLL version of my program, and a single call can do the update, I just need to make the right package!

xxrazor

Thanks mate, i will let you know how i go.

cheers
xxrazor

GEORG

Hi
the Win7BootUpdater.exe no starting in my Windows 7 64bit sp1 no starting when i starting the exe file !!!

marcusj0015

@georg, check your "Windows 7 SP1"

the REAL SP1 gets released today on MSDN.

@Thaimin,
that's true, you could have the takeown command in the cmd file that gets deployed, but it's best you have an actual patcher patch the actual files that are already installed.

@Thaimin,

thank you SO much for writing this app, back when i was thinking about it, and trying to get this project off the ground, you came along, and made my dream come true, thanks.

@Thaimin, you said that you were working with business's like dell, that win7 animation in there comercials, is that your app doing that?

@Joakim
thanks for finding some/all the hacks, you also helped make my dream come true.

marcusj0015

DOUBLE POST!

Admin, please remove

GEORG

Quote�� Quote: Originally Posted by marcusj0015 View Post
@georg, check your "Windows 7 SP1"

the REAL SP1 gets released today on MSDN.
Hi my Windows 7 64 Bit SP1 (6.1.7601.17514) working fine !!! When i starting the older version 0.0.0.9 then see the GUI the new version not ???

marcusj0015

well, the new version takes like 2 minutes to load for me, but i have aero disabled on this installation.

and,no you probably DO NOT have Windows 7 SP1 RTM.

the version you have is a leaked version, the final version isn't out yet.

the FINAL SP1 comes out today, on technet/MSDN and on 2/22/11 on Windows Update/Microsoft.com

GEORG

Hi marcusj0015 have you 64Bit ???

Here my PC Windows:
Name:  Bild 1.jpg  Views: 5  Size:  24.8 KB

xxrazor

Well i have had many goes at this, and i am unable to get the application to start.

This is the first error
Name:  MSVCR100.dll.PNG  Views: 7  Size:  42.1 KB

As this is Visual basic 2010 file, i have managed to place this file in the correct path only to get application error when trying to start application.

I have tried this in VM Ware and a normal OS as well as SP1

In a nut shell, i can not get the app to start

keep up the good work

cheers
xxrazor

marcusj0015

@Georg, i DO have 64 bit, do you?
and that screenshot dosen't mean anything, you have to match the build number with the build number MS releases later today, until then, the LEAKED copy, IS NOT confirmed



@XXRAZOR

i had the same problem with that dll

download the C++ 2010 x64 redist HERE: http://www.microsoft.com/downloads/e...F-9350143D5867

C++ 2010 x86 Redist HERE: http://www.microsoft.com/downloads/e...displaylang=en



GEORG

Hi

I have new installed C++ 2010 x64 and started COOOL im so happy i have a new Boot animation !!!
BIG BIG BIG THANKS marcusj0015 + thaimin !!!

thaimin

I didn't realize that the .net framework 4 did not come with the Visual Studio 2010 redistribtable (3.5 came with the 2008 redistributable, why wouldn't they give you the 2010 redistributable?). I will add the info to my site.

@marcusj
I have been testing with the leaked copies, and they should be quite close since those were the copies released to major manufactures. Thanks for pointing out the VS 2010 thing. I actually did all my testing with the special .net 2.0 version which only requires VS 2008 stuff and can be run on a clean Windows 7 install.

@marcusj
Your welcome! I was waiting for someone to make this program and got fed up. I am glad I met joakim and worked on this because it still wouldnt exist otherwise.

@marcusj
I haven't worked with Dell, but I am working with much smaller companies. What commercial are you talking about?

marcusj0015

i don't know the "name" of the commercial, but i seen a dell commmercial and at the end, they show the windows boot flag but it's going like twice as fast as the normal boot flag, and it's surrounded by banner ad's on the tv, so somthing special is going on there, it might be a recording and sped up, idk but it's not the normal win7 boot.



and, to be honest, i thought someone else would make this app too, pretty awesome that i'm in the middle of it though!

xxrazor

@marcusj0015
Thanks mate, that got it going

@thaimin
Mate the app works fine, no problem at all getting the boot to work when changing within the OS

But you did ask about batching files into a new OS, well i did get a error


Now i only copied the files within the option tab, maybe i have missed something?

Your thoughts?

Thanks again

Cheers
xxrazor

joakim

Quote�� Quote: Originally Posted by thaimin View Post
If anyone is looking for a good read, look at this: FGA: The Windows NT 6 boot process
I have also found this excellent (if not the best) book to be of good help:
Code:
Windows� Internals: Including Windows Server 2008 and Windows Vista, Fifth Edition
But it is a very techinal and detailed book though, which may work as a great substitute for sleeping pills for most people.

marcusj0015

@Joakim, have you read the entire book and been interested enough to continue reading the whole thing?

becasue, i am a nerd, but some things I don't even want to read throught, becasue there too boring!

Greifi

hi,
i tested Win7BootUpdater and everything worked!
but Win7BootUpdaterCmd crash on startup

Your thoughts?

Thanks

PS:I'm sorry for my bad english I'm Italian

joakim

Quote�� Quote: Originally Posted by marcusj0015 View Post
@Joakim, have you read the entire book and been interested enough to continue reading the whole thing?
No, I can assure you I haven't read the whole book. But chapter 13 Startup and Shutdown has definetely been read.

kbronski

@OP: I would love to change my boot logo. However, I haven't the knowledge necessary to do this.

marcusj0015

@kbronski,

have a little respect man, "you havent the knowledge" you can;t download and run a simple program?

@Thaimin,
when you get the final version out the door, you should make a new thread, becuase this dev thread, is apperantly attracting and confusing n00bs.
and, is there any way to keep the n00bs out?

@greifi,
did you download the .net 2.0 version of win7bootupdater cli or the .net 4.0 version of win7bootupdater cli

@greifi,
have you downloaded and installed C++ 2010 redist?



Greifi

yes!! net 4.0 and c++2010 are installed! "Boot updater" work...but "boot updater ccommand line" don't work
Trascrizione fonetica

Traduzione da Italiano verso Inglese

marcusj0015

Greifi, try THIS version

http://coderforlife.com/projects/win...UpdaterCmd.exe

do you have Windows 7 x86 or windows 7 x64

do you have Windows 7 SP1

Greifi

does not work! after I open the bootupdatercmd.exe reports "the program has stopped working"

marcusj0015

right click, go to properties, click compadibility tab, check the run as admin box.

then type in CMD into the start menu, click on CMD.exe, drag win7bootupdaterCMD.exe into the cmd.exe window and hit enter.

Greifi

Quote�� Quote: Originally Posted by marcusj0015 View Post
right click, go to properties, click compadibility tab, check the run as admin box.

then type in CMD into the start menu, click on CMD.exe, drag win7bootupdaterCMD.exe into the cmd.exe window and hit enter.
did ... But this error always

marcusj0015

@Greifi, it looks like were gonna have to talk to Thaimin about this, sorry it will be a little bit of a wait, sorry.

@Greifi, download the x64 version of the cmd app link: http://coderforlife.com/projects/win7boot/x64/Win7BootUpdaterCmd.exe


@Thaimin,
check out Greifi's screenshot, he apperantly is using Italian, idk if it's not compadible with Italian or what, becasue your instructions are displayed in english, I think you should include translated instructions with your app.

but anywho, idk how to help him so, your the dev, you know more about your app than i do.

Greifi

to ensure that the problem is win7 ITA I can install win7 ENG in virtual machine...

Greifi

I installed windows 7 x64 ENG
I installed net 4.0 and c + + redist

.... but the problem remains.

thaimin

@greifi / marcusj
This was a mistake on my part! One stupid line I left out of the command line version. DOH! I have uploaded a new version of the command line that now works.

@kbronski
The first post is quite intense, its more of a reference if you want to understand how it actually works. I have developed a program that does it all for you, and a bit more!

@marcusj
I would be happy to include translated instructions, however I only know English and some Spanish and German, but not nearly enough to translate my instructions and error messages. If anyone would like to contribute languages I would be grateful! In fact I am planning on making my program able to automatically take up other languages as translations are made.

@joakim
Book purchased!

@xxrazor
Thanks for this input. I think I know what is going wrong, but I will have to get back to you with a solution in a little bit.

Greifi

yeah!

now works correctly!!!
thanks!!!!!



nighthawk507

well i am sort of new around here i am tring to make a boot animation that is automaticaly in stalled in the windows 7 disk any ideas

thaimin

@nighthawk507
That's still not quite possible. I am working on it.

marcusj0015

@Thaimin, use google translate to translate.

it may not be 100% perfect, but alot better than displaying the error messages in a completely different language

kbronski

Quote�� Quote: Originally Posted by thaimin View Post
@kbronski
The first post is quite intense, its more of a reference if you want to understand how it actually works. I have developed a program that does it all for you, and a bit more.
Really? Can I get a download link for that?

joakim

Link to thaimin's application is in the first post (now both at the start and end of it).

DreamsOfAnarchy

i'm new to the forum but have been following this thread and trying out the alpha's and just wanted to say the Alpha 10 works great on my Ultimate x64, great job Thaimin

rockyp

Thanks thaimin
every thing works fine.

xxrazor

@thaimin
Thanks mate, i guess the end result is that it works with Boot.wim and install.wim.

Boot.wim the first choice but Install.wim would be really cool

Thanks again
cheers
xxrazor

P.S, i have something else you might be interested at looking at, lets say a half completed project that needs a good ending.

nighthawk507

i found a way to make boot though a bootskin with the help of winrar in the $oem$ but i would prefire it in the setup but it works for now but it works great cant wait to see what you come up with next

marcusj0015

and what did you do to get the Windows 7 DVD Boot Animation working NightHawk507?



nighthawk507

marcusj0015 i didnt get a dvd animation yet maybe when a better version comes out i will but right now i just use the cmd line to add it when it is installed with the use of winrar

marcusj0015

how do you use winrar, to install a custom boot screen?

i don't get what your saying

nighthawk507

i rar the boot skin and the Win7BootUpdaterCmd.exe and in cometlines i have it say
;The comment below contains SFX script commands
Text
{
Setup=Win7BootUpdaterCmd boot.bs7
TempMode
Silent=1
Overwrite=1
}
and in autounattend i have it run

marcusj0015

oh, ok i thought you extracted PREPATCHED Files.

kbronski

Quote�� Quote: Originally Posted by joakim View Post
Link to thaimin's application is in the first post (now both at the start and end of it).

Thanks

kbronski

It gave me a missing file error. :/

thaimin

You need to install Visual C 2010 libraries. There is a link on the page under "Prerequisites".

joakim

@thaimin
I see in your Todo list "Work with Windows 7 Embedded". I still have no time for testing, but cannot see any reason why 7 Embedded shouldn't work. It is still Windows 7, just componetized. As a matter in fact, I usually run 7 Embedded in VMware for all my W*7* testing. And the early tests of mine with your program was in fact performed on 32-bit 7 Embedded system (rtm).

thaimin

@joakim
That should be removed. It was actually tested recently and worked without incident. Someone reported the problem to me, but it was probably the same issues that 50% of non-embedded people were running into.

@all
On the other hand, I have been working on many little things:
  • Sharing service:
    • I have made a Flash app that can show the preview of a BS7 file (the BS7 file must be slightly modified due to Flash's refusal to load images > 2880x2880, but that modification can be done by a server-side PHP script I have already made). The Flash app has many playback features.
  • Localization:
    • I have made the entire core (where most error and progress messages are made) localized, next is the GUI. If anyone would like to contribute a translation, please tell me! The 10 most popular non-English languages for my website are:
      • German (6518)
      • Russian (6446)
      • Portuguese (3952)
      • Spanish (3940)
      • Italian (2781)
      • French (2185)
      • Chinese (1029)
      • Polish (927)
      • Dutch (894)
      • Hungarian (770)
      Compare the numbers to English at 30377 visitors since mid-September.
  • Installer:
    • I have also been putting some thought into this, although no concrete progress yet
  • Integration with install.wim/boot.wim:
    • Once again, thought but no concrete progress
  • NTOSKRNL changes:
    • These allow you to change position, size, number of frames, and loop back frame of animation
    • However changing NTOSKRNL is much more 'risky'. However, I had the idea that some fancy stuff could be done to patch it in-memory from winload.exe
      • I have done something similar with my expstart program which patches Explorer.exe in memory and doesn't invalidate the Microsoft certificate.
      • This case is definitely more complicated, but it is just an idea

marcusj0015

@thaimin, i forgoet, are we able to edit the frame rate? alot of posts across two threads, alot easier to ask, than to try to find it.



thaimin

I believe it is technically possible, I haven't tried any of the NTOSKRNL hacks, joakim and AlexYM have. However, I don't think changing that would be good (at least changing it to a higher value) since it will take much longer to load the image. I also wouldn't recommend making the animation longer or larger for the same reason.

moinmoin

Hello thaimin! We (together with our community at Deskmodder.de) would like to translate this into german. So if this is ok for you, please contact me via pn - thank you.

moinmoin

nighthawk507

well i love alpha 10

thaimin

@nighthawk
Thanks!

@moinmoin
I am now ready to have you start translating! Please see Coder for Life - Project - Windows 7 Boot Updater: Translation for details. There are currently 173 phrases, although about half of them are only one or two words. I may have more for you as I create the installer and boot skin sharing system, although those should be the last two things with any significant amount of text.

When you look at the document, at the moment there is a German column (de-DE), however it is filled entirely with "x". I was using it to make sure my program could actually change language.

Thank you so much for assisting!

djpatch

Hello thaimin! If you agree I can translate in Italian ...

thaimin

@djpatch
That would be great! The information is all online at Coder for Life - Project - Windows 7 Boot Updater: Translation

moinmoin

Ok, thaimin. We starting the german part.

shaunp

Howdy, I was just hoping someone could give some advice, I'm trying to replace the Boot ani. and boot text. This is is fine using the Winupdate7 tools. So I have successfully replaced the winload.exe, winload.xxx.mui etc on the Windows 7 DVD and this works fine.

Iam trying to replace the winload(s) bootres.dll etc in the Wim's so that upon first boot (after first reboot) will display the Modded Boot Ani(pic). So far i have discovered that replaceing all of the winload.exe, .mui, bootres.dll etc all works fine until first(just after completing first stage of setup) reboot then displays the Old "Windows could not verify digital certificate crap", "error 00000xf <- not right".

Now i gather this is because of the the patched or modded bootmgr. So i have also tried to replace this with the patched version(in the install.wim) all goes well in the install until first reboot complains about can't prepare drive.

So is there anyway to get around replacing the files in the install.wim (and Boot.wim) and get this to work. Or should i run a script to run the Winupdate7cmd. I would very much prefer to not have to install VC libs and .net 4.

thaimin

@shaunp
I am working on this problem. You have given some very detailed information and it will hopefully help me. I plan to have these integrated into the boot.wim / install.wim eventually for my own purposes.

In the mean time, you will need to do it with a script. You however don't really need .NET 4 and VC 2010 libs. There is a special .NET 2 version which works identically and doesn't require any extra libs. Look under the standard download links.

shaunp

Cheers thaimin, I will continue to trial and error it. Let me know if ya want me to send some screenshots, etc. also could you point me in the right direction of which mui contains install billboard text(ie. windows is copying blah. I can't remember which file it was..argh..been to long..



xxrazor

@thaimin
I am pretty sure that shaunp and i are working on the same thing
Quote:
@shaunp
Howdy, I was just hoping someone could give some advice, I'm trying to replace the Boot ani. and boot text. This is is fine using the Winupdate7 tools. So I have successfully replaced the winload.exe, winload.xxx.mui etc on the Windows 7 DVD and this works fine.

Iam trying to replace the winload(s) bootres.dll etc in the Wim's so that upon first boot (after first reboot) will display the Modded Boot Ani(pic). So far i have discovered that replaceing all of the winload.exe, .mui, bootres.dll etc all works fine until first(just after completing first stage of setup) reboot then displays the Old "Windows could not verify digital certificate crap", "error 00000xf <- not right".

Now i gather this is because of the the patched or modded bootmgr. So i have also tried to replace this with the patched version(in the install.wim) all goes well in the install until first reboot complains about can't prepare drive.

So is there anyway to get around replacing the files in the install.wim (and Boot.wim) and get this to work. Or should i run a script to run the Winupdate7cmd. I would very much prefer to not have to install VC libs and .net 4.
But i did notice that in your reply below,
Quote:
@shaunp
I am working on this problem. You have given some very detailed information and it will hopefully help me. I plan to have these integrated into the boot.wim / install.wim eventually for my own purposes.
That you made mention
Quote:
integrated into the boot.wim / install.wim eventually for my own purposes
Are you going to share this once completed or will it be commercial use only?

cheers
xxrazor

thaimin

@xxrazor
I will share it, however it hasn't been the top of my list so I haven't worked on it yet.

@shaunp
Sorry, I haven't modified the text ever, so I don't know.

xxrazor

@thaimin
Thats cool, so you know there are many modded OS's with sp1 on there way, adding Boot Animation to this would be a great addition.

Quote�� Quote: Originally Posted by shaunp View Post
Cheers thaimin, I will continue to trial and error it. Let me know if ya want me to send some screenshots, etc. also could you point me in the right direction of which mui contains install billboard text(ie. windows is copying blah. I can't remember which file it was..argh..been to long..
@shaunp ,the info you are looking for can be found HERE and much more on Modding your OS.

cheers
xxrazor

GEORG

Software TIP

I have found a little tool for Vertical BMP AniTuner 2.0.0 ---> AniTuner - Animated Cursor Software: Create, Convert ANI Cursors

Name:  Bild 1.jpg  Views: 27  Size:  86.7 KB

joakim

Quote�� Quote: Originally Posted by thaimin View Post
NTOSKRNL changes:
    • However changing NTOSKRNL is much more 'risky'. However, I had the idea that some fancy stuff could be done to patch it in-memory from winload.exe
      • I have done something similar with my expstart program which patches Explorer.exe in memory and doesn't invalidate the Microsoft certificate.
      • This case is definitely more complicated, but it is just an idea
Actually, something similar came to my mind too some time ago. My thought was to borrow code from a bootkit, and modify the ntfs bootsector (like the $Boot metafile) and thus no need to modify bootmgr and winload.exe on disk (at least the stuff concerning security). Now, I never got any further than installing the stoned bootkit (v2) in a vm and debugged it once a couple of months ago using BOCHS. It probably will remain as nothing but yet another interesting thought (as often). At least for me.

marcusj0015

It didn't work when I :

(1) Copyied the files that boot updater uses to a partition and a directory in that partition. ie K:\bootfile.
(2) Then I used bootupdater on those files with my animation. Which it created backup files.
(3) used gimagex to mount the install.wim file, and replaced (by copying) the files that bootupdater created (which are the files that non backup files).
(4)then i unmounted install.wim with read/write and commit changes checked.
(5) then I create an iso with vlite ( because I used it originally to copy the windows 7 setup files.
(6) tested it with VMWare and got the picture I have enclosed.

Where did I go wrong?

Where should I have copyied the bootmgr file? Is this in the install.wim file?

John

sexus

how did you guys get this to work?

Guest

@RBCC, get what to work?

Thaimin's boot updater?

download the app for your archeticture, if you have x86 download x86 if x64 download x64

then right click the app and click properties > click unblock > click Apply.

right click the boot updater and click Run As Admin.

then do what you want.

Guest

helpppp!!!got a problem i updated to sp1 lately as of a couple days and noticed after a reboot my beutiful custom boot is gone!!!!...now i tried the new alpha 10 and it sez something about not being able to change the security of my bootmgr.exe ....huh?...-,-'...helpppp!!!!!!


btw im on x64 and yes i installed the framework 4 and the libraries too and yes i downloaded the x64 version and havent had any probs with it before the sp1 ....-,-'..

thaimin

@sexus
You are in a pickle of a situation. Apparently some of the files you modified were not changed when you updated to SP1. It should say exactly what file it is having a problem with in the first line. Find that file manually, delete it, and change the name of the backup file to the original file (don't actually delete until the backup is in place and working).



sexus

no you dont understand i clicked on my animation file clicked on appy and it was almost finished till this damn popup cam up telling me about the file not being able to be changed because of bootmgr.exe safety....huh

thaimin

Actually I completely understand.

What is the first line of the error message? I can help you from there.

sexus

ok one sec let me repeat the applying..lol

sexus

it says in the program when i try to apply it : there was a problem updating the files. failed to disable bootmgr.exe security, this is likely due to using a modified version of bootmgr.....

weird

thaimin

Okay, the bootmgr your computer is using is probably already modified. What does the bootmgr option same under "Options"?

sexus

update : it says on hidden system drive

thaimin

Okay, here is what you need to do:
  1. Download my hidden system drive opener (http://www.coderforlife.com/projects...denSystemDrive) and use it to open the hidden drive
  2. Then show all hidden and system files (http://www.bleepingcomputer.com/tuto...torial151.html)
  3. You should now see a file name "bootmgr" and one named "bootmgr - Backup"
  4. Move "bootmgr" somewhere (like you desktop) and delete it from the hidden partition
  5. Rename "bootmgr - Backup" to "bootmgr"
  6. Restart and hope it all works now.
Before using the Boot Updater again, I recommend deleting the following files (if they exist) since they are pre-SP1:
  • C:\Windows\System32\bootres - Backup.dll
  • C:\Windows\System32\winload - Backup.exe
  • C:\Windows\System32\winresume - Backup.exe
  • C:\Windows\System32\LOCALE\winload - Backup.exe.mui
  • C:\Windows\System32\LOCALE\winresume - Backup.exe.mui
Where LOCALE is your locale (en-US, de-DE, it-IT, ...)

Note to others: This is NOT the standard restore procedure. The standard procedure is to use "Restore Backups" from the "Options" menu. You only need to do the above if you used the Boot Updater, then installed SP1, then need to restore. In this case if you restore backups from within the program it will revert some files to pre-SP1.

sexus

well we got a prob i cant delete the bootmgr.exe it says open in another program , help


btw it shows bootmgr.exe backups 16 of em and one file named bootsect.ixe.file.bak and all of em has the same date and time...hmmmmm

thaimin

16 backups! You must have run my program a lot. It's supposed to cleanup a bit, but I guess not completely... The times are all the same since my program copies the times when it makes the backups. Bootsect.ixe.file.bak is a file used by the system, don't touch that. Use the first backup, not 2 through 16.

The file is not in use, however Windows Explorer is confused. The file is heavily locked down by TrustedInstaller. Deleting it becomes a bi tricky since the file is on the hidden partition so using takeown / calcs like most online methods state is difficult. The easiest way is to probably download my xdel program (http://www.coderforlife.com/projects/utilities/#xdel) and click and drag the bootmgr file onto the program.

sexus

ok will do give me a sec here...



sexus

not working still there


-,-'

btw theres as follows in the folder:

bootmgr, bootmgr backup 2, bootmgr backup 3, bootmgr backup 4, bootmgr backup 5, bootmgr backup 6 , bootmgr backup 8, bootmgr backup 9, bootmgr backup 10, bootmgr backup 11, bootmgr backup 12, bootmgr backup 13, bootmgr backup 14 , bootmgr backup 15 , bootmgr 16, and of course the bootsect.ixe.bak....weird theres no nr.7 or nr.1...hmmm very strange.....

win7expert

Hi joakim and thaimin

i'm back and now ready to help you with translating your tool to german (it's been wished a lot since alpha 7/8)

do you already opened a lib who we can start uploading boot animations?

thaimin

@sexus
The #1 (actually no number) and #7 may be completely hidden (make sure protected system files are being shown). If you have a #7, that is what you should use to restore as bootmgr. Look up guides on deleting files owned by TrustedInstaller. The only methods that won't work are command line methods. You can do it through the file properties.

@win7expert
moinmoin has already provided a translation, however if you want to check over the translation see Coder for Life - Project - Windows 7 Boot Updater: Translation

It will be available soon, I will be releasing a minor update soon, which will include German and Russian, and many other smallish updates (faster, some bugs fixed, ...).

xxrazor

Has anyone work out how to increase the frame size, i want to keep the images 200x200, but i want to double the amount of frames, instead of 105, i want 300. Yes this would make the vertical image big in MB and longer.

cheers
xxrazor

sexus

ok ill give it a try bro hope it works....

sexus

nope still no 7 or bootmgr backup without number to see

thaimin

@xxrazor
I believe AlexYM figured this out, but it requires editing NTOSKRNL.

@sexus
Well, then "bootmgr backup 2" is the one you want to restore. You still need to work on deleting and renaming the other files.

sexus

yep im about to check how to actually delete em except for nr.2....hmmmmm

sexus

ok just deleted all,except renamed bootmgr to bootmgr original and made bootmgr backup 2 into bootmgr ...thanks to a google search on trusted installer deactivation..now up to restart and rerun the app hope it works...-.-'..

update: not working same now i only have one bootmgr file and the .ixe or whatchamacallit file and i run the bootupdater nothing still the same security error shit ....ever since i updated to sp1...damn..-.-'..

just restarted now it got a nr.2 bootmgr backup file...lol...mindboggling indeed

sexus

cant there be a simple winbootupdater made that doesnt give two sacks about bootmgr.exe security like simply overwrite ...would be tons appreciated



marcusj0015

Thanks Thaiman:
I'm gone sorry to bother you!
Most of my questions are follow-up questions!
If I had a $50,000 I'd hire you but right now I don't have it.

John

thaimin

I am using Reverse Integration to integrate sp 1 into Windows 7. can I use boot updater on the integration partition and then manually put the files back into the original DVD and will the boot animation that I created work on the new install?

John

sexus

dude, do yourself a favor and download the official Windows 7 SP1 ISO, hell if you have to torent it, but make sure the hashes match the official hashes

this will save you ALOT of time and effort.

thaimin

@sexus
The problem is that the bootmgr "security" it is talking about is the security the bootmgr imposes on winload.exe and it must be removed to allow winload.exe to be modified. However there is a way around it. In the "Options" menu select a different bootmgr, you can select C:\Windows\Boot\PCAT\bootmgr. That file is a copy of the original that isn't used. And, by the way, it is "bootmgr" not "bootmgr.exe"

marcusj0015

@marcusj0015:

they do,

marcusj0015
BumbleBritches57




Join Date: Jul 2009

Windows 7 Ultimate x64
229 posts








I was wondering if I was to use the boot updater to modify the boot screen on the partition of the reverse integrated and copied that boot folder to the copied partition?

I have a partition that I have installed my sp1 integrated windows 7
Ihave another partition that I have a copied WIndows 7 source
where I take out the install.wim file and copy the new install.wim file from the integrated install.wim to the source files.
Then copy the boot.wim files likewise!

John

Guest

xD...sorry for not being mr. perfect thaimin and btw thanks will try asap ...damn we ought to get this workin ...huzahh!!!...here goes nothing..


update: it worked id be damned shouldve said so in the first place ....hell yeah !!!!


btw cant wait to see what updates are to come to our beloved bootupdater ...perhaps background pictures instead of plain black ...lol...rock on !!!!

Guest

@sexus

That's what I have been saying , is that we should get this **damn** thing running with the background but I have been told to fork over money or keep quiet!

John

Guest

@RBCC

I am working on it. However your persistence to remind me that you want it every other day is EXTREMELY annoying. Reminding my every other day does not make me go faster or make it more of a priority. So far you haven't contributed a single thing, you just bitch that it isn't up to your standards and isn't being made fast enough. The only time someone gets to talk that way to me is if they are hiring me. I am just trying to put it into perspective, you are treating me as your employee, not someone who is just making a program for fun that you get to use for free. Everyone else is GRATEFUL for the progress that I have made, and their grievances are stated once, not continuously.

Guest

well, i havent gotten that far in my image, but there are two methods, you could pre patch the files, easiest method, or you could patch them while Windwos is being installed. with a script and using Thaimin's command line switches, and a premade bootskin

marcusj0015

@RBCC, i agree with thaimin, either STFU, or join in programming,

granted Thaimin even allows you access to HIS source code, which i doubt.

we get that you are having problems, you have stated your ideas, you know NOTHING about programming, scripting or anything of the sort, it is NOT easy, thaimin how many lines of code you got?

10-20 THOUSAND?

yeah, its diffucult

so STFU, or get banned, i personally am tired of your whining and bitching, bitch once more and the ban hammer is gonna have a few words with you.

and personally, i'm getting tired of the damn n00bs coming in here demanding info, when they won't even read the first page, we need to get this thread locked down, to only the essential people.

i, personally think backgrounds is a moot point, who cares about a single static image, when we have full blown ****ing animation?

and hell why dont you have one single frame duplicated for each frame of the boot animation?

its an optical illusion, that makes it appear as only one image, but its not, then you dont have to throw away the whole core of windows 7 that handles booting/resuming

we treat the programmers well around here, there doing the hard work for you, be apprecitiave



sexus

xD....rbcc you joker you!!!...xD....yeah i can imagine being pestered every other day about it thaimin but see it as a avid fan ...xD...thou i gotta admit id love to see it done too...huzahhh!!!


p.s: marcusj cut the guy some slack yall heres talking a long time lurker and fresh member as of late and i always been on this forum for a long time and i see all this hard work done...so we all know its not easy and sure as hell know how fn mindboggling coding can be so try going easy on the noobs ...xD...btw love the sevenforums ...rock on !!!!

thaimin

I like what you have so far, but I am researching the KPP and ways to circumvent it. I just started this, I am sorry I realize your job takes a lot of time. Just wondering at what point are you? I maybe taking testing a little seriously. But its the only I know.

As far as treating you as a employee I am sorry that you feel that way. We are all excited about this, and wish it would get done day before yesterday!

JTM

sexus

@marcusj0015
Very good guess!

I just counted the lines (with a program I made quite some time ago). It is currently at 22414 lines (18774 not including empty lines and comments). This included:
  • .h: C/C++ headers
  • .c: C code
  • .cpp: C++ code
  • .cs: C# code
  • .resx: managed resource files that I have typed myself, using the resource editor I couldn't do some things
  • .rc: (Unmanged) resource files that I have typed myself (as above)
  • .manifest: had to make these myself do make sure certain things happend
  • .xml: my patch description and the documentation I have typed up
  • .xsd: for describing the bs7 file format
  • .bat: my compiling scripts
There were 139 files counted, taking up 1.046MB (that is 1,096,530 TYPED characters, some copy and pasting in there, but still >1 million!). This does not include some accessory programs that I made (xml-compact: 60 lines, patch-compiler: 759 lines, flash previewer: 791).

The project takes up 335MB on my computer, not including the 4 virtual machines I use to test, their hard drives (~50GB), and ISOs of the installation media (~20GB). So overall about 75GB, not including the numerous backups I am using now.

I have had to teach myself many things I had never used before this project:
  • x86 assembly (and translated many things to machine code BY HAND for the patches)
  • x86-64 assembly (in fact it has many differences from x86 and I am struggling a lot with this right now)
  • C#
  • XML Schema (W3C)
  • An understanding of the entire boot sequence
  • How to use WinDBG to debug the boot process
  • How to use IDA
  • Flash (re-teach, I did use it about 6 years ago with ActionScript 1, now using ActionScript 3)
Since starting this project, I have purchased legitimate (at a reduced, student rate) copies of Visual Studio 2010 and Adobe CS5 Design Premium. I definitely will be using those outside of this project, but so far they have been nearly exclusively used by this project.

@marcusj0015
I will not be releasing my core source code. However I am making the core available as a DLL so others can make interfaces as they see fit.

The background is actually really cool. It takes up the entire screen, allows you to essentially add any text in any font you want to the boot up screen around the animation. I must say that its fairly impressive booting up and having a full image with the middle of it animating. I sure designers can do a great job at making the viewer not even realize that only the center 200x200 animate.

I find that many of the people who have been posting have legitimate problems. @sexus for instance has a very strange issue. However I wish once he had our guidance I wouldn't have had to help on how to delete those files.

joakim

exactly!!!! thaimin thats what i was thinking as he wrote it ...i was like wtf!!...surely as i myself knew its not just making the background whatever pic you want but adding a background all while running youre animation file ...damn bring it!!!...

p.s thaimin if you wouldve told me about the other bootmgr file it wouldve been no prob at all thou you never said it untill like 10 posts and tries of applying my new bootscreen...lol...i posted that already like 6 posts up ...xD..but ill rewrite it just for you ...peace

thaimin

Preview of full backgroung image with modded animation on top (in the middle);




I'm sure thaimin is working hard enough on it, so don't ask when the functionality comes. It will come!!

@thaimin
Do you mind if I update the first post with technical details on how it works?

joakim

@joakim
You can post the details. The main reason I wasn't sharing them was they were not quite finalized, and they are daunting. Writing a function from scratch in assembly with no real prior knowledge in assembly is a lot to take in!

@everyone
On that note, I have now completed my first successful test of the background image on 64-bit. I was struggling with it for a good portion of the last week. 64-bit functions are even trickier. I did use NASM for a bunch of it, but still knowing where all my pointers are, where the need to be when I call a function (64-bit function calls use shadow space and other confusing stuff). In addition, the 64-bit winload does not have a nice "BgpGxDrawBitmapImage" function, instead you have to call 3 different functions, all with not necessarily intuitive arguments.

@joakim (and anyone else interested)
All notes that I have about the background image can be downloaded at http://www.coderforlife.com/projects...mage-notes.zip. This includes 32-bit, 64-bit, winload, and winresume stuff. Note that I started leaving stuff out as I developed a system within my Win 7 Boot Updater to handle some situations. For example, my program automatically clears any entries in the reloc table that need to be cleared and it takes an absolute address for the function calls and converts them into relative addresses. In fact, I have not done a 64-bit file by hand, my program did it for me.

@everyone
I have done preliminary tests with using my program to apply on 32-bit and 64-bit, without SP1. I have not tested any resume stuff. I have, however, found all the hacks necessary for everything besides 64-bit SP1.

I believe I will be able to release in a week, and the following changes have already been made:
  • Program can run in different languages and the language can be changed at run-time
    Includes translations for German, Russian, and Italian
  • Reverted it to use only .NET Framework 2.0 and not require MS Visual C 2010 library.
  • Much faster startup and checking of bootres.dll
  • Can now create a standalone installer
  • Improved transparency support
  • Improved update checking
  • Slightly improved backup system
  • Smarter default winload and winresume paths using BCD data
  • Numerous other minor changes and fixes
And one other thing I hope to complete in the next week is smaller boot skin sizes (when you have 2 different animations and 2 different background images, the sizes right now are about 3.5 MB for a boot skin, I believe I can shave off a megabyte by using a better PNG compressor).

thaimin

The link http://www.coderforlife.com/projects...mage-notes.zip does not work.

joakim

Problem fixed. It thought you were hot-linking the files, but those should be hot-linked!

Guest

Nothing advanced but if you wondered if it was possible to boot with different image backgrounds and different animations on the same system, you can do so by having several sets of winload.exe and bootres.dll. The point is you can specify which winload.exe to use by configuring the "path" in your BCD. For instance you may have an entry that among other things says;

Code:
path    \WINDOWS\system32\winload.exe
and another that specifies;
Code:
path    \WINDOWS\system32\3d_back.exe
Now to specify a different bootres.dll you must change 1 unicode string (bootres.dll) inside winload.exe/3d_back.exe and replace it with the one you want to load.

thaimin

@joakim
I am subvertly using that technique now. When changing the the resume animation differently than the loading animation, I change that string and create "bootrs2.dll". Another trick you can do is add the animation to bootres.dll.mui and change the locale of the boot entry (which only effects the booting message languages, not the Windows language).

In the next version my program by default selects the winload etc files based on BCD data and doesnt assume they are the normal ones.



joakim

Ok, must admit I haven't used your program in a while now..

I'm sure you already know this too, but having several animations inside bootres.dll also works fine. Obviously name them differently and the string (activity.bmp) in winload will determine which one to pass along to the kernel. I just tried with 3 different ones in the same file, and worked fine. However I never manged to use several wims in RCDATA (like 1,2,3 etc). As I just recently got back into debugging, you can tell me if there's anything specific you want me to look at regarding bootmgr, winload, kernel etc.

Btw, the link still don't work.

AlexYM

Hi, guys! I'm glad thaimin's project is developing so well, just read a few last posts and this came to mind: you may put the wim resource with animation bmp right in winload.exe and edit that unicode string to point to winload.exe itself, although it'd be more proper to edit code somehow so that there wouldn't be a need to load it second time as it is already loaded, sorry "load winload" sounds funny, huh? Thaimin, it's great you managed to implement background image code, it reminded me that Vista's winload can do this from wim resourse, and i think Vista's winresume does just what we want - animation over a static image (with all pictures also in wim resource), so looking in their code might be of some help probably if it is even needed now...

thaimin

thaimin:

Excellent work on the background, hope it fills the whole screen. Can hardly wait to see it. Then I'll leave this forum.

RBCC

joakim

@joakim
Its okay! You can actually do it yourself, although as things are becoming more advanced, it will be harder and harder to do it by hand (as I said a couple of posts ago, my program now does so many things automatically when patching, its so much more convenient - like remembering to clear the .reloc table entries and calculating relative offsets).

I just tried to get the file again, and it didn't work! I fixed another issue on my server, and it seems to work now. A lot of this has to do with the fact that I now use a content management system and it likes to take over URLs.

@AlexYM
I don't know how far you read back, but awhile ago I had this idea of patching ntoskrnl in memory (instead of on disk) to adjust the X/Y position, frame rate, size, etc of the animation. I haven't done any research to see if it would even be possible, but its an idea. The in memory change would keep the digital signature and all security in place. I have done something similar with my expstart program which modifies explorer.exe in memory, making it keep its signature and then (if you have UAC enabled) not causing these nasty warnings when you copy/move stuff.

@RBCC
It does cover the entire screen. It is a 1024x768 image, which is the resolution at that point. Look at joakim's movie using it (which was done in a VM, I presume, which is why it takes so long for the animation to come up). You don't need to leave the forum, just don't 'bug' (me/others) as much.

thaimin

It seems kind of funny I have been around computers for 34 years and I am a noob, because I never learned how to program. I mostly set them up and was a consultant! John

joakim

Just sharing my first windbg script ever. This one was made to move the animation to a different coordinate, without actually patching the kernel. It is done in memory by the debugger. Script name kernel.txt;

Code:
$$ $$ ================================================================== $$ Script to move animation to different coordinates $$ Made for version 6.1.7600.16385 $$ Will also work for SP1 when symbols are available. $$ $$ usage from within a running debug session; $$><kernel.txt $$ usage from commandline when launching windbg; -c "$$><kernel.txt" $$ $$ by Joakim $$ $$ ================================================================== $$ bp nt!ResFwpGetProgressIndicatorAnimation+0x2D g $$ Original machinecode c746049c010000 $$ 9c01 is little endian of 19ch which in decimal is 412 and  $$ specifies the x position (from left) eb eip c7 46 04 50 00 00 00 p $$ Original machinecode c746081c010000 $$ 1c01 is little endian of 11ch which in decimal is 284 and  $$ specifies the y position (from top) eb eip c7 46 08 50 00 00 00 g $$ ================================================================== $$ Animation now played in the upper left of your screen. $$ ==================================================================

thaimin

@joakim
Nice! Now we just need to convert that into something that doesn't require bootdebug or an external machine running windbg...

Guest

It was only meant like "hey I just realized windbg could take scripts".

That said, it is worth mentioned to those that don't do debugging yet, that some tests are a lot easier to perform in windbg. For instance the colour of the startup text needs code injected and execution redirected to test through an on-disk patch, which takes you a little bit of time to create. Instead you can just launch a vm in windbg and issue these 2 commands;
Code:
bp winload!BgpTxtCreateRegion+0xa5 "eb ebx+1c ff 00 ff 00;g" g
Now substitute the colour code "ff 00 ff 00" to test something different and launch again.

@thaimin
Have you implemented background colour for the copyright and/or startup text? If no, then look at va 00443A17. Again some stupid windbg cmds;
Code:
bp winload!BgpTxtCreateRegion+0x119 "eb eip b8 ff 00 ff 00;g" g
Next challenge would be to create a different colour for two messages..

Also, the alignment of the messages can be adjusted at va 0044382B. Test this command in windbg;
Code:
bp winload!BgpDrawCopyright+0x8 "eb 5ac7a8 50 00;g" g
Funny enough, when you increase the value to say 900 the message disappears partly on the right, and reappears on the left side.

Now to only adjust the alignment of the signature look at va 0044386C. In windbg I did a;
Code:
bp winload!BgpDrawCopyright+0x49 "eb ebp-18 00 02;g" g
All code for 32-bit. Tested on 6.1.7600.16385 but should also work on SP1 when symbols are available.

Anybody knows why scripts don't work when debugging winload.exe?

Guest

@joakim
My program currently can change the background color of the messages (however they need to be the same color). The program can currently set the color of both message texts separately though. I knew about alignment, but didn't bother adding it into the program. My assumption was that once the person could make a full-screen background the whole text thing would be nearly obsolete (my reasoning for font changing as well). In the full-screen background you will be able to write any text, in any font, anywhere. The ONLY thing that is lost is the easy to translate method of one of the messages.

joakim

Sounds good.

It would however, be cool if the SOS switch could be written with transparency on top of a background image. I'll see what I can find..



joakim

Hello all,

I am using Reverse Integration to install sp1 in Windows 7 x64 Ultimate using these instructions:

HTML Code:
http://www.techrepublic.com/blog/window-on-windows/use-reverse-integration-to-slipstream-windows-vista-sp1-and-sp2/1249
(instructions are for vista but they work in 7)

If I customize my bootscreen with bootupdater, on the customized Windows 7, and then copy them over to the windows 7 source will they work if I put them in boot.wim?


John

marcusj0015

I have not tried it myself, but I guess you will be facing a mui cache issue on the new system then (can not verify). Why don't you just try and report back? If it did not work, then you know which files to replace back to the fresh build.

marcusj0015

@RBCC, no one is sayin you have to leve the forum, just try to read the thread and if its a bug fix, make sure to use the latest version, and respectfully post the bug report, the thing that really nnoyed me, because i havent done coding like Thaimin, or debug stuff like joakim, but i was the one that really started looking into how to get this to work, but what annoyed me, waas your attitude about how no one is working fast enough/ implementing the features you want.

marcusj0015

@RBCC, personally i would download Microsft, prepatched SP1 iso of windows 7, then integrate why you need, that way you mke sure there isn;t any pre sp1 junk or anything else nasty in your image, thats the methon i'm using,

BTW, you should wait for IE9 final, i think its confirmed that there realising it march 14th aka in 3 days

@RBCC, it's not the non programmer that make you a n00b, its that you presumably havent really dug into the core of windows, and modified, or even studied windows.

joakim

@Thaimin, have you checked out al the winlod/winresume, and bootmgr switches/APIs? there might be n esy way to change the frmerate, without having to install some debug app, if theres UIFILE's in any of the files you mod, tel me about them, i'm making a windows 7 theme, so the UIFILE's are right up my alley

@Thaimin, about the background nd easy to tansate text, you could just presumably, make a background and use the text region for text, with no text in the background, i'm sure you have thought of that though.

thaimin

Not exactly what I wanted but worth a post anyway. It is possible to boot with the SOS on (drivers loaded are printed to screen), and have the animation played on top of the print afterwords. The print can also be moved to the title and/or footer, or have it present in title, body and footer at the same time. Or remove body, and keep title/footer with animation in middle.

But what I actually was trying to, was having the driver print (with SOS switch) on top of the background image. No luck so far.

@thaimin
I'll look at bootmgr.exe.mui for possible extra resources added. Thanks.

thaimin

@marcujs0015
There are no "switches" or "APIs" for anything related to the animation. It is all hardcoded, and most things are in ntoskrnl. And it isn't just installing a debug app, to debug the boot process you need an external machine to do the debugging (in my case I use the host to the virtual machine, but if the modified system is not in a VM you need another computer connected with serial, usb, or firewire). However, we hope to find a method that does the same thing the debuggers do, just without the debugger. Essentially modify ntoskrnl in memory from winload.exe instead of an external computer. This is all beyond what is covered in any UIFILE.

@marcusj0015
The problem with that is that the text-drawing in winload.exe is it always draws a big box behind the text which would disrupt the image. However the background color of text may support ALPHA channel, so that background box could be transparent. I may look into, or just say that for different languages, use different images...

@joakim
Another idea occurs to me about modifying ntoskrnl in memory. It is probably more code then wold fit at the end of any current section, but a new code section could be added. It is also WAY more code than I ever want to do in my life in assembly. The code could be made as a DLL, specially designed to not have any references to kernel32.dll or any other libraries (set the target as native Win32 which is what winload.exe is), the code then extracted and added to winload.exe. That would be a nice way I think to do this.

joakim

@joakim
More about what I was saying in the last post:
Inside Native Applications
I didn't know I could just make a program and have it run, which is another potential option.

Guest

@thaimin 1
Are you sure it is possible to run native applications before kernel is loaded? I think it is registry functionality inside of ntoskrnl.exe that will evaluate the key HKLM\System\CurrentControlSet\Control\Session Manager\BootExecute and thus make it impossible to put anything there to modify the kernel itself (not at all sure).

If, for some reason we are stuck with assembler code added to winload.exe, then some interesting stuff can be extracted from the source of the stoned bootkit; http://www.stoned-vienna.com/downloa...20complete.zip Actually they use plugins too, like externally loaded executables to handle different parts of the process. Basically it is "just" 63 sectors and a handful of executables put as plugins, that we have to deal with as code.

@thaimin 2
Transparent background is nice. I don't know about this, but is there any alpha channel colour code for transparncy? On the other hand, maybe it could be possible to specify the coordinates for the box drawn, and put it say in the lower part of the screen (just a thought). And then maybe substitute loaded drivers on the screen (when SOS is on in bcd or forced with hardcoding), with some other debug information (even more thoughts).

@thaimin 3
I think it is impossible to put the bcd store as a resource inside bootmgr.exe.mui since the information that the mui is needed is defined in the bcd store itself (not tested yet). But of course should work for anything other as a resource put there.

thaimin

@joakim 1
Yes, I realized this a bit after I posted the last one. So there is another level of program type (called subsystem in Windows API language). Here is the list:
  • BOOT_APPLICATION
    Programs during the boot process, including bootmgr.exe and winload.exe (actually a DLL) are this type. Cannot use any external libraries.
  • NATIVE
    Programs that run after ntoskrnl.exe and smss.exe are loaded, but before any other subsystem is loaded. Programs can only use the NTDLL.DLL external library. No file handles are created yet, thus even the system partition can be scanned and defragged.
  • WINDOWS (WINDOWS_GUI) / CONSOLE (WINDOWS_CUI) / OS2_CUI / POSIX_CUI / WINDOWS_CE_GUI / XBOX
    Higher level subsystems, these are programs you normally run.
  • EFI_APPLICATION / EFI_BOOT_SERVICE_DRIVER / EFI_RUNTIME_DRIVER / EFI_ROM
    EFI-related programs. I don't know much about these.
So I need to make a BOOT_APPLICATION and integrate that code into winload.exe. I have already tested it and I can compile C code into a boot application. I haven't tested anything with actually running it.

I will look at the bootkit.


@joakim 2
There is alpha. The colors are 4 bytes long, RGBA, the last byte is for alpha. We have always been leaving this as 0xFF (255) which is fully opaque. You can't move the box separately from the text. The way drawing works in winload.exe is it creates rectangles and draws those rectangles to the screen. Everything it draws is a rectangle. To draw text, it creates a rectangle with that text. The text must be in a rectangle.


@joakim 3
Makes sense. I didn't really consider that part of it...



joakim

@thaimin 1
Sounds good about the BOOT_APPLICATION.

@thaimin 2
I understand that for the rectangles like the copyright and the startup text. But I can't see where to specify such for the BlXmiWrite function that grabs the colour codes from inside the xsl resource.

AlexYM

@thaimin
About BOOT_APPLICATION just may be an examle - in XP or even Vista the old-style boot animation code and resources (progress bar and background images) are also stored in ntoskrnl, and Stardock's Bootskin installs some kind of a boot-time driver (vidstub.sys if i remember correctly), which apparently substitutes that code in memory... And about patching in memory idea... i think "ultimate solution" could be a boot application run before (or instead of) winload which would patch winload (and then load it) and kernel in memory, leaving all system files physically untouched... would be too complicated to make it though...

joakim

can someone show me in the forum where to change the size and position of the animation? which file? John

joakim

@AlexYM
I like the theory too, and think it is not impossible to do. Just very complicated.

@thaimin 1
I just did a few funny things. For instance I can draw driver printing (using SOS switch) on top of a background image, so that the image is visible in the background (ie we can have actually to a certain degree decide how big the text box should be, and let the rest of screen be filled by a background image.

@thaimin 2
The background image can also be of any size I think. Just verified with 600x800 and 400x1024, and is drawn perfectly. Can also overwrite the size as given in the edx register right before it's drawn. It will then be displayed, but with messed up pixels. Do you know if we can set the coordinates of where the background image is placed? For instance let the 400x1024 image be on the lower part of the screen..

@thaimin 3
I'm facing some difficulties with return codes. I can return to the correct esp value, but then at at a wrong eip. This is driving me nuts right now. Do you have a tip?

@RBCC
I've previously pointed you to the first post, for the instructions. Regarding the size of the animation, there is no known method of tweaking it (that works).

marcusj0015

Just showing a cool boot video;



I am tweaking this further and will post details when sorted out. The actual driver printing is located inside a minimal body template. (thaimin: don't bother with my previous question regarding return codes as I was doing a silly mistake).

thaimin

@Thaimin,
About the Animation size, is it possible to change the boot screen resolution?
If we could optionally change the resolution to say, 800x600, we could still use the exact same animations, but we would give the impression that the animation was bigger, without breaking anything, and with few code additions




@Joakim,
If you could somehow make the text background in that video transparent, that would be amazing, because I and a lot of theme designers, want constitency above all

marcusj0015

You guys have been busy!

@joakim - "BlXmiWrite function"
So you have to realize that two different drawing processes are going on here at the same time. The system is both in text/console mode and graphical mode. The sos information, and everything in the XSL is drawn in console mode. The background image (not background color), animation, and the two text boxes ("Starting Windows" and "(c) Microsoft Corporation") are drawn in graphical mode.

@marcusj0015 / joakim - "Background Color of Text"
The colors of the text-mode are limited to the colors you will find at http://en.wikipedia.org/wiki/Color_Graphics_Adapter. The background color is a solid color, and cannot be transparent. Even looking within the code at the OsxmlColorParse function, it does not support full colors (only single nibble (4-bit) colors).

@joakim - "Background Image Size / Position"
Yes, the size can be changed, but why? Any empty space is just the background color. And why change the background position? Just design the background image to use the background color. Since the text-mode stuff apparently draws on top of the background image, there is no problem. But technically yes. Look at my documents at these lines (from the 32-bit version):

Code:
; Set the position to draw at 0, 0 and get a pointer to the �POINT� structure     and     [ebp+EC], 0                ; 83 65 [EC] [00]     and     [ebp+F0], 0                ; 83 65 [F0] [00]     lea     eax, [ebp+EC]              ; 8D 45 [EC]
You would have to substitute the "and ..., 0" for a "mov ..., ##h", and remember to update the jump length if the new opcodes are shorter/longer.

@joakim - Assembly is tricky, ain't it?

@joakim - Cool Video! Maybe I will have to integrate an option for setting the SOS box area in my program... whats the snippet of XML you used for your video?

@AlexYM
Some issues I see, but apparently Stardock got around them. First, how do you get a program to go before winload? Bootmgr checks to see if it is signed by Microsoft. A video driver is an idea, winload loads a basic video driver pretty early on (thus the video driver could modify many things in winload.exe in memory). But then, I don't know the security requirements on that driver, or how to change it from the default. I will look into it.

thaimin

@Thaimin, you didn't address my question about the resolution change.

maybe using a 800x600 image, would make the screen display at that res?

which would also, fix our netbook bretheren's problem, with the vista boot screen, becasue of too low res display

Guest

@marcusj0015
I have no idea...

marcusj0015

Do u think it's worth testing? I don't know to test this sort of stuff, so I am at the mercy of you and Joakim



AlexYM

@marcusj0015
Main problem is that x,y position of animation in pixels is still hardcoded in ntoskrnl, thus if you'll want it to be not moved down-right with lower resolution and to keep it centered, you'll still need to modify ntoskrnl. I suppose this is the reason why MS disabled animation on 800x600 resolution mode (this mode can be force-enabled by bcdedit command, btw).

joakim

@marcusj0015
A smaller sized image will not affect the screen resolution, however I suppose the resolution should be able to be forced somehow, by modifying code. Just don't know how right now.

@thaimin
I think a forced SOS printing could be a nice addition. What I did:
1. Create a basic template like;
Code:
<xsl:template match="osload-sos"> <osxml:text-mode-ui> <body background-color="RXBI" foreground-color="XXXX"> <p pad-left="8" pad-right="8"> <textarea name="file-info" scroll="true" width="68" height="1"/> </p> </body> </osxml:text-mode-ui> </xsl:template>
2. At 004014CC write 90909090909090909090 (x10). This will force a spoofed SOS switch and display the driver printings. It will thus allow for the kernel to play the animation as well since the 26000091 parameter is not brought further to the loaderblock, unless you actually booted with the SOS on in your BCD (can be resolved though, but don't think it's necessary).

3. Next trick is to inject the background image after the first layer (background) of the xml stuff is drawn, so that the driver printing is on top of the image and not the boring xsl drawing. At 004014E0 (right after the call to BlXmiWrite in OslpMain) make a jump to your bitmapdrawing function. Since I also wanted a custom copyright message on top of the bitmap, a added code right after you bitmapdrawing function to first call bitmapdrawing and then the copyrightdrawing, before jumping back into OslpMain. Now the osload-sos template is shown only as specified with width and height in you body. For the sake of the test I also drew a custom startup text on an empty black screen before the background image, but the copyright/startuptext stuff was added after the video was uploaded..

But don't seem to get any transparency with the alpha channel on my copyright. It is like transparency don't work and FF is forced on.

joakim

If the resulution of the animation images went from 200x200 to 100x100 will that make the animation smaller or will it crash?

marcusj0015

Quote�� Quote: Originally Posted by RBCC View Post
If the resulution of the animation images went from 200x200 to 100x100 will that make the animation smaller or will it crash?
I don't know, only tried with bigger ones.

thaimin

@RBCC,
or you could just make a smaller animation on the standard animation strip, giving the impression the animation is actually smaller, but there would be no hacks nessicary, thaimin wouldnt have to add any more hacks, which would be easier in the long run

joakim

@joakim
I don't know about forced SOS, but make it so that if SOS is also enabled, it looks good. So no step 2, but I will have to reread your step 3 with the code in front of me to think about that more. In any case, not going to be supported for the next version (coming in a few days). Sad to hear about the alpha channel.

@rbcc
If you use my program, it will only save the "proper" animation size, regardless of what you give it. If you were to manually do it, and speculating from joakim's previous work with larger images, you would see four frames in a square for each 'standard' frame. Then at about frame 26 it would probably crash.

@everyone
I know people were having problems with integrating the modified files into install.wim / boot.wim. Well, if you could, I would like you to try out a new tool I made.

The tool allows you to self-sign things, generating a custom certificate for you. It then lets you install this custom certificate into the registry of the to-be-installed computer. I think that the installer just wants those modified files to be signed. If this is true, I will add a cleaner system for this situation, but for now, please test this out.

Download: http://www.coderforlife.com/projects...extras/#signer

To use it:
  • Download the signer (or signer64 and rename to signer)
  • Download the example script and extract it
  • Open the example script in Notepad
  • Edit the "locale" and "name" in the script (close to the top)
  • Set the "root" to the mounted folder of the WIM, or alternatively run the program from the command line with the mounted folder as an argument
  • Repeat last step for both boot.wim images and the desired install.wim image
  • Each time you should see 5 notifications that it successfully signed the files and 2 notifications that it installed the certificate
Please tell me if this makes it work! Thanks!

thaimin

besides the books aforementioned, could someone give ideas of any books that could help me get up to speed on this? There is no way to reposition the animation?

Is this doing this:

Set the position to draw at 0, 0 and get a pointer to the �POINT� structure
and [ebp+EC], 0 ; 83 65 [EC] [00]
and [ebp+F0], 0 ; 83 65 [F0] [00]
lea eax, [ebp+EC] ; 8D 45 [EC]
?

Or which file helps in this matter?

JOhn

Guest

Thaimin you are right. It is much better to not force it on, and let the user choose it in the bootmenu. Instead we can modify the code slightly inside OslDisplayInitialize (this is necessary), by changing this
Code:
.text:004061A6                 push    26000091h (68 91 00 00 26)
to something invalid like
Code:
.text:004061A6                 push    99999999h (68 99 99 99 99)
But we still need to make a jump to some custom code at 4014e0. Original code;

Code:
.text:004014E0                 lea     eax, [ebp+arg_0]  (8D 45 08) .text:004014E3                 push    eax               (50) .text:004014E4                 push    ebx               (53)
changed to;
Code:
.text:004014E0                 jmp     loc_4573B7 (E9 D2 5E 05 00)
and the custom code was placed right behind your bitmapdrawing function;
Code:
.text:004573B7                 call    sub_457370   (new bitmap function) .text:004573BC                 call    sub_443823   (copyright) .text:004573C1                 lea     eax, [ebp+arg_0] .text:004573C4                 push    eax .text:004573C5                 push    ebx .text:004573C6                 jmp     loc_4014E5  (back to OslpMain to load SYSTEM hive)
@RBCC
I don't know how many times I have to tell you this, but you have to read the first post. There you will find information on how to reposition the animation. The code you refer to is for the coordinates of the bitmap as drawn by winload.exe. You really need to do some studying to understand how reverse engineering works. Besides that you also might want to know the internals of the Windows boot process. Since you have recognized the links you also have a reference for the best book about that. Regarding reverse engineering, you really have to start learning using hex editors, disassemblers, debuggers, pe editors, and assembler. I am not at all a pro, but it still took me quite some time (years). It is simply not done over a weekend. For testing you need to start using virtualization like VMware Workstation or Player, else it will take about forever to test all mods on real hardware. Relevant part of first post;
Quote:
Animation parameters:
Some animation parameters can also be tweaked (thanks to AlexYM). As the actual animation is played by the kernel we must patch it to modify these values.
The relevant function is ResFwpGetProgressIndicatorAnimation and this how it looks like in IDA for ntkrnlpa.exe;
Code:
PAGEBGFX:00748C97                 mov     eax, 0C8h PAGEBGFX:00748C9C                 lea     edi, [esi+0Ch] PAGEBGFX:00748C9F                 mov     dword ptr [esi], 1 PAGEBGFX:00748CA5                 mov     dword ptr [esi+4], 19Ch PAGEBGFX:00748CAC                 mov     dword ptr [esi+8], 11Ch PAGEBGFX:00748CB3                 mov     [esi+10h], eax PAGEBGFX:00748CB6                 mov     [edi], eax PAGEBGFX:00748CB8                 mov     dword ptr [esi+18h], 0Fh PAGEBGFX:00748CBF                 mov     dword ptr [esi+1Ch], 69h PAGEBGFX:00748CC6                 mov     dword ptr [esi+24h], 3Ch
Explanation after converting from hex to decimal:

Code:
At 00748C97 we find the frame's width and height as C8 = 200. At 00748CA5 we find the x position of the frame as 19C = 412. At 00748CAC we find the y position of the frame as 11C = 284. At 00748CB8 we find the framerate (per sec) as 0F = 15. At 00748CBF we find the total number of frames as 69 = 105. At 00748CC6 we find the number of first unlooping frames as 3C = 60
So I made another stupid animation hack that is more annoying than elegant. Setting framerate to 78 (4e) and the number of first looping frames to 57 (39) will let you see the crystal balls start flying and when they are done (before they melt together) it will start over again. Really annoying to look at, especially when this repeates itself 19 times!
It is the stuff about x and y position you are asking about. If you have not figured out by now, you will need to modify the kernel, for instance ntoskrnl.exe. Good luck!

Joakim

Guest

@joakim
I just noticed something about that code. It may be possible to set width and height independent of each other.

Code:
mov     eax, 0C8h lea     edi, [esi+0Ch] ... mov     [esi+10h], eax mov     [edi], eax ...
which is essentially

Code:
... mov     [esi+10h], 0C8h mov     [esi+0Ch], 0C8h ...
Thus it looks like the width and height could be set separately from one another (although it isn't an easy drop-in replacement anymore).

joakim

I have done some tests and believe it is impossible to set screen resolution correctly to 800x600 and get animation at the same time. However I noticed it is possible to boot with 1024x768 and then force the kernel into believing the resolution is something different (must be smaller though, else it will crash) right before it will play the animation. With forced 800x600 it will look like flimmering stretched over the screen like this;


With 768x512 it looks like this;

To test this in windbg you can issue this command;
Code:
bp nt!BgpGetResolution "eb nt!BgInternal+0x8 00 03 00 00 00 02 00 00 00 03 00 00"
That is for 768x512 since 300h in decimal = 768 and 200h in decimal = 512.

So the animation is played, but with a very distorted look.

DO NOT TEST THIS HACK ON REAL HARDWARE!!



joakim

Just tried implementing the stupid hack into a patch. Now the code looks ok in IDA, and should work according to that;
Code:
PAGEBGFX:00749623                 mov     ecx, 300h PAGEBGFX:00749628                 mov     [eax], ecx PAGEBGFX:0074962A                 mov     ecx, 200h PAGEBGFX:0074962F                 mov     [eax+4], ecx PAGEBGFX:00749632                 mov     ecx, 300h PAGEBGFX:00749637                 mov     [eax+8], ecx PAGEBGFX:0074963A                 nop PAGEBGFX:0074963B                 nop PAGEBGFX:0074963C                 nop PAGEBGFX:0074963D                 retn
Machine code;
Code:
B9 00 03 00 00 89 08 B9  00 02 00 00 89 48 04 B9 00 03 00 00 89 48 08 90  90 90 C3
But while booting it seems that the code has modified itself slightly. Inside windbg I find this code at the same location;
Code:
nt!BgpGetResolution: 82f58623 b90003f080      mov     ecx,offset NETIO!NetioAllocateNetBufferMdlAndDataPool+0x34 (80f00300) 82f58628 0b08            or      ecx,dword ptr [eax] 82f5862a b9000200f0      mov     ecx,0F0000200h 82f5862f 09cb            or      ebx,ecx 82f58631 04b9            add     al,0B9h 82f58633 0003            add     byte ptr [ebx],al 82f58635 0000            add     byte ptr [eax],al 82f58637 79c9            jns     nt!GxpWriteFrameBufferPixels+0xa2 (82f58602) nt!BgpGetResolution+0x14: 82f58639 8a909090c390    mov     dl,byte ptr [eax-6F3C6F70h]
Roughly 50% of the code has changed..

Kernel base = 0x82c0f000.

(82f58623-82c0f000)+400000=749623

Code on the next boot (with different kernel base);
Code:
nt!BgpGetResolution: 82f49623 b900030080      mov     ecx,80000300h 82f49628 0b08            or      ecx,dword ptr [eax] 82f4962a b900020000      mov     ecx,200h 82f4962f 09cb            or      ebx,ecx 82f49631 04b9            add     al,0B9h 82f49633 0003            add     byte ptr [ebx],al 82f49635 0000            add     byte ptr [eax],al 82f49637 89c8            mov     eax,ecx 82f49639 8a909090c390    mov     dl,byte ptr [eax-6F3C6F70h]
Any ideas? Tricks present to fool disassemblers?

Joakim

thaimin

One thing that kept getting in my way is the relocations. Look at the relocations table (.reloc) and zero out any that are in the range you are editing. From my experience you can just put "00 00" for any relocation you want to skip, it doesn't matter that the "00 00" is in the middle of a list.

References:
http://msdn.microsoft.com/en-us/magazine/cc301808.aspx - "Base Relocations"
http://msdn.microsoft.com/en-us/library/ms809762.aspx - "PE File Base Relocations"

thaimin

Alpha v11 has been released.

Notable new features:
  • Allows changing the background to an image
  • Can run in different languages and the language can be changed at run-time, includes translations for German, Russian, and Italian
  • Reverted it to use only .NET Framework 2.0 and not require MS Visual C 2010 library - no more errors about missing MCVS100.dll!
  • Much faster startup and checking of bootres.dll - marcisj0015, no more 2 minutes to start the program!
  • Can now create a standalone installer - no need to create RAR installers!
Minor new features:
  • Improved transparency support
  • Boot skin files are smaller
  • Improved update checking
  • Slightly improved backup system
  • Smarter default winload and winresume paths using BCD data
  • Numerous other minor changes and fixes
Download: http://www.coderforlife.com/projects/win7boot/

GEORG

Danke (THANKS) for germany language !!!

phucduongqb

How to translate win7bootupdater to vietnamese language?

joakim

I got the code running by changing slightly on it. It had nothing to do with relocations as the code was still following the same order. Have no idea why it now works as it is essentially the same..
Code:
0073D61E  00030000                        dd 00000300h 0073D622  90                             nop 90h 0073D623  8B0D1ED67300                    mov ecx,[L0073D61E] 0073D629  8908                            mov [eax],ecx 0073D62B  8B0D3ED67300                    mov ecx,[L0073D63E] 0073D631  894804                          mov [eax+04h],ecx 0073D634  8B0D1ED67300                    mov ecx,[L0073D61E] 0073D63A  894808                          mov [eax+08h],ecx 0073D63D  C3                              retn 0073D63E  00020000                        dd 00000200h
Code for ntoskrnl.exe 32-bit version 6.1.7600.16385.
It may only work as a test on a WinPE based system. I tried on a normal system and got stop 0x7b (as expected). So only for the fun of testing it.

@thaimin
Just downloaded and tried alpha 11. Good work! A few things;
I noticed a misleading error message. Since I'm using a custom made bootmgr your program will not detect it, and that is ok. But first there comes 2 similar boxes saying;
Code:
Error While Getting bootmgr Path The bootmgr path in the BCD is invalid
and then a third one with "Unknown error (162)". Even when I revert to original bootmgr the same 3 error messages come. In my testsetup bootmgr is chainloaded by grub4dos. Could it be the device=boot configuration in BCD that messes up? I need to copy a fresh bootmgr to c:\ to get the program to add a static background to winload. Maybe we can have separated functions like;
- disable checks in bootmgr
- disable checks in winload.exe
- only modify background or animation or text or copyright
- allow files to be modified even if bootmgr/winload are already patched for security (ie search for the signature inside the file)
- give the user a listing of all modified files in the last message.

It also does not draw the background image correctly. I see that the bitmap is added to both winload.exe and winload.exe.mui. Necessary to add to the mui file? If I delete the mui, then the background image is drawn though.

Btw, cool with the frame counter following the mouse as you play an animation. And very nice have dotnet 2 back. Overall I'm very impressed by the massive amount of functionality, nice GUI and supported Windows versions.

Joakim

thaimin

@GEORG
And thanks to moinmoin and Tendririan at deskmodder.de who did the translations!
By the way, I just (like 5 minutes ago) updated the program again to include a more complete/correct German translation.

@phucduongqb
See the following page. It has all the instructions (although only in English) and includes a download for the text file to edit.
http://www.coderforlife.com/projects...oot/translate/

thaimin

@joakim 1
Yeah, it didn't exactly look like it was due to relocations, since the values added weren't equal to the base change, but its the only time I have seen the code change from what IDA shows and what windbg shows.

@joakim 2
It definitely is the device=boot in the BCD. I had no idea what this means, so I didn't implement it properly. So, what does it mean? How can I find out what is the path to the "boot device"?

The only device type my program knows how to handle properly at the moment is "partition". I would like to get the following to work as well: boot, file, ramdisk, qualified partition, and locate ex. Some I don't know how to get a path to (boot and qualified partition) others aren't things I can have normal paths to (file and ramdisk) and locate ex is just confusing.

You could have selected the bootmgr in \Windows\Boot\PCAT\bootmgr... but yes something needs to be done. Many people get confused when the second time they run the program it doesn't work (since I can't modify modified files).

I was trying to make it as simple as possible, but then you get problems like this.

I have been considering these changes though, but haven't thought too much about them until now:
  • Mark files in way so that I know it was modified by my program (maybe add something to the version information)
  • If the bootmgr file is marked, don't do anything to it
  • If the winload.exe file is marked, don't apply security modifications and use special versions of the patches to work with already-modified winload.exe
    • Some cases this won't work, I can't always modify a file that has been previously modified (e.g. the copyright string was long last time so I moved it to the end of rdata, and it has some random text now, I won't be able to find it)
    • In those cases I can automatically restore the backup and try again
      • This has issues if someone updated their boot animation, then applied SP1 (or any other update that changed winload.exe) and tried again. It gets confusing real fast.
Anyways, confusing. For the mean time I would like to make my program smarter about the BCD data (handle more of the device type) and handle the first 3 cases above, but none of the nested bullet points.

@joakim 3
It also does not draw the background image correctly".
In what way? Can you send / attach a picture of how it is and how it should be?

I see that the bitmap is added to both winload.exe and winload.exe.mui. Necessary to add to the mui file?
I use the same exact function to update the resources in winload.exe and in winload.exe.mui. Necessary for one of the texts and background color, and instead of making a separate function, I just decided it didn't hurt to add it to both.

Btw, cool with the frame counter following the mouse as you play an animation.
Thanks!

And very nice have dotnet 2 back.
The only drawback is that I can't it to compile correctly for .NET 2 and 64-bit (the EXE always comes out corrupted). However the 32-bit EXE works for both 32 and 64 bit Windows, with one minor problem. Open and Save Dialogs cannot select files in System32 on 64-bit Windows. However internally file paths work just fine wherever they are.

Overall I'm very impressed by the massive amount of functionality, nice GUI and supported Windows versions.
Thanks! I know that it isn't perfect, but I'm working on it. And it is the only tool of its kind in the world.

Thanks for all your feedback!

joakim

Strange as it is, the crazy hack I posted does in fact work for a regular Windows 7 install. As often happens with this sort of stuff, I was using the wrong file (kernel in this case) that produced crashes on non-WinPE. I verified on a SP1 build and it did not complain (but I would still not recommend it though). But still funny to see 5 animations (a little bit distorted) in stead of 1. The point is that the patched function is only read once prior to playing the animation, so it will not affect other things (I think).

I'm just throwing in some research notes here for future reference, and updated in first post whenever something interesting comes along.

Joakim

joakim

Quote�� Quote: Originally Posted by thaimin View Post
It definitely is the device=boot in the BCD. I had no idea what this means, so I didn't implement it properly. So, what does it mean? How can I find out what is the path to the "boot device"?

The only device type my program knows how to handle properly at the moment is "partition". I would like to get the following to work as well: boot, file, ramdisk, qualified partition, and locate ex. Some I don't know how to get a path to (boot and qualified partition) others aren't things I can have normal paths to (file and ramdisk) and locate ex is just confusing.
It makes no sense to evaluate the device for {bootmgr} in BCD. BOOTMGR must be placed on the partition marked as active on a mbr booting HDD (exception for other devices like usb, floppy, cd, etc). So basically it's the mbr that decides on what partition to find bootmgr (exception no 2 for chainloading setups). Regardless of that, my experience (and logic) says that it is pointless for bootmgr to retrieve information from the BCD store on where it is located (bootmgr is where it is loaded from and BCD cannot be on a different media than that). Simple verification can be done by deleting the device parameter from your BCD for {bootmgr}. Regarding ramdisk and file (vhd), I think it's also pointless because bootmgr itself cannot be on any of those media. Remember bootmgr is the one responsible for mounting the wim/vhd and pass execution over to winload.exe (inside the media). Hope it makes sense.

Regarding the actual BCD entry, you can find the disk signature of the bootable HDD specified in that given entry (when device=boot). But it's purpose is unknown to me, and appears meaningless (for {bootmgr}).

Joakim



joakim

Quote�� Quote: Originally Posted by thaimin View Post
@joakim "It also does not draw the background image correctly".
In what way? Can you send / attach a picture of how it is and how it should be?
I just reset my vm in target (sp1 x32 of Embedded) to a clean state and nothing happens. I started the program without complaints. Then chose background image as the only option and applied it. Finished with success. Result is black screen without background image. And additionally, the startuptext and copyright was also removed even though I did not touch those options.

thaimin

@joakim
I use the same techniques for bootmgr, winload, and winresume. device=boot has meaning for winload an winresume, along with file and ramdisk, although those are much harder to implement and are probably not worth it. I believe I found out how to find the boot device, if you could check it out for me. In a command line run:
Code:
wmic VOLUME WHERE BootVolume=TRUE GET Name, ID
Does the name match what you expect? (should be like C:\ or maybe \\?\Volume{...}\ if it is hidden)

@joakim 2
Let me try to understand your background image problem a bit more. Clean install of Windows 7 SP1 x86 Embedded in a VM. No background image. If you remove the .mui file it does work though? Or was that a different test? You seem to have many interesting things with your MUIs, maybe its just because it is Embedded. For example, you don't need to change your startup text in the MUI, whereas every system I have tested requires this.

The startup text and copyright don't show up in the preview either when you chose background image. My logic here was if you are setting a background image, you will just integrate the text into the image. Do you think this should be changed?

phucduongqb

Quote�� Quote: Originally Posted by thaimin View Post
@phucduongqb
See the following page. It has all the instructions (although only in English) and includes a download for the text file to edit.
Coder for Life - Project - Windows 7 Boot Updater: Translation
Thank! I have download, but do not know how to edit. And must use what software to edit?

joakim

@thaimin 1
The boot device can also be found by examining the mbr for what is marked as active (which I believe that command line essentially does). However it will still be prone to errors, as long as a user is using a different boot manager than bootmgr (like grub4dos/grldr). Because then bootmgr can be on any partition. Therefore I think there is no fool proof method of finding the right bootmgr which is in use. So I think the best you can do is assume that bootmgr is the one used. If it fails, then let the user choose where it is located (should cover for most setups I think). Just to show you how impossible it may be to correctly identify the bootmanager, you can install grub4dos to your hdd and then rename bootmgr to grldr. This way grub4dos's mbr code is loading bootmgr. And nowadays we have numerous different bootmanagers around.

But for the other files it certainly makes sense to evaluate the BCD.

@thaimin 2
I will need to to disassemble and debug the patched winload that alpha 11 generated to see what might be wrong. I'll check.

joakim

@thaimin
The reason why background image failed was because of 2 errors in your bitmapdrawing function. The 2 functions ResFindDataEntryFromImage and BgpGxDrawBitmapImage have new adresses in SP1 so you just need to correct the destination adress of the 2 calls slightly. On my 32-bit version 6.1.7601.17124 of winload.exe I corrected into this and it worked;
Code:
00457667 call 00426d19 [e8 ad f6 fc ff] and 00457680 call 00444261 [e8 dc cb fe ff]
Forget about what I said about the image present in the mui. It does not matter. It was tested on Embedded by the way.

The issue of new adresses in new versions of winload.exe might cause some work every time an update comes. But there is not much we can do about it, else than disassemble each new version and find out.

Joakim

thaimin

@phucduongqb
See the email I sent you.

@joakim 1
Well, truthfully, I thought with an invalid BCD path you would get only 1 error message, not continually, and when you select the right file, you should not get any other error messages. I will have to make sure that it only tells you once. If that issue is fixed, I believe you are right, I should have a best guess that works for many people, and then a single warning to others that they need to correct it. And maybe even have an option to not select one at all (and skip that step). I will have to make this whole skipping steps thing (because a file is already modified or the user doesn't want it).

@joakim 2
I do have a patch unique to x86 SP1 function locations, and I do believe it was used. Maybe the embedded files are slightly different? Maybe there are multiple SP1 files with different function locations? I have some files here I can check out, but if you could send me your winload.exe that would be great. Thanks!

AlexYM

@thaimin
joakim said his file's version is 6.1.7601.17124 and this is sp1 RC Escrow while the SP1 RTM is 17514...

joakim

Quote�� Quote: Originally Posted by AlexYM View Post
@thaimin
joakim said his file's version is 6.1.7601.17124 and this is sp1 RC Escrow while the SP1 RTM is 17514...
Thanks for clarifying. I was using latest Embedded platform and assumed it was RTM.

thaimin

@AlexYM
Thanks for noticing that!

@joakim
I have updated the patches online. You don't even need to download a new version of the program, it will update itself. I set it to use the SP1 patches if the version is 6.1.7601.16537 or greater. The problem with it complaining about the invalid BCD path won't be fixed automatically though. You'll have to wait for the next version.

By the way, the file you sent me, when loaded in IDA, it doesn't get any symbols loaded. Maybe they removed those symbols since it is the RC version...

shaunp

@thaimin I took your advice and had ago at signing the wims with your signing script...So I replaced all of the nessc. files (bootres.dll winload.exe etc) in both boot(1,2).wim and also in the install.wim(1234..) ran you script using the x64 version and all went well until first reboot. and this time got the unable to verify 000xxxx48 digital cert..on winload.exe.

Will try again win7x32.

I will not comment on an earlier posting...as at the time of reading was so disappointed at the attitude of some people when it comes to share and share alike...all I can say is that you would be better to offer a slab of beer and a pat on the back, and some thanks that people will share there knowlege (free in 99% of cases) so if it takes time..to arrive..be patient and thankful that it gets done at all.

Well done
thaimin on the updater(update)...and all other lines of code....



thaimin

@shaunp
Thanks for trying. I guess this isn't the solution... yet. I have some more ideas, it will take some time though.

thaimin

I noticed something that I'm not sure about, should this be like this? All in all this is a great package. Maybe I am the only one that noticed this. Ok then flog me.

John

thaimin

@RBCC
This is a good thing to bring up. This is productive.
First how did you generate the white box? Why do you think the white box is the right one? You Starting Windows text (and the Windows logo in the version you emailed me) look zoomed in.

joakim

@Thaimin:
The white square is the is the windows flag deleted and the background locked, oops sorry my mistake. But I did to install Windows 7 in VMware and capured the bootscreen. Then I put it into your bootupdater and showed where the flag was and where you placed the animation. If you can move it up there does these mean that this will be a feature of an upcoming version?

John

thaimin

I used photoshop.

joakim

The animation is NOT movable at the moment, it requires editing ntoskrnl, and that will take much more work on my part and won't be available for quite some time.

This is what the normal screen looks like:



However, it stretches over the entire screen, regardless of the resolution set in Windows or the recommended resolution reported by the monitor. So widescreens stretch the logo and make it look wider. VMs typically make the window the exact right size. I think you are only seeing the effect of your screen. The first picture you posted is way off. The preview in my program is accurate to within 1 pixel for the animation. The text may be off by many more pixels, and the background color boxes of the text are off by a few more than that. This is only in the preview, not how it applies it.

Guest

@thaimin
Quick question; How do you interpret the values found in the bcd under device/osdevice for partition=mountpoint. I see that 4 bytes which is the disk signature, may change. All other values seems constant, with the exception of another 4 bytes 20-24 bytes before the disk signature, which I cannot figure out. Do you know what these are?

Edit: Never mind, it's taken from MountedDevices key in registry..

Joakim

Guest

@joakim
To reply anyways, since you may want to use a more "official" method then reading the registry. I have the following method "GetWindowsDevicePath". It uses FindFirstVolume/FindNextVolume to iterate through all the Windows volume names (e.g. "\\?\Volume{43a03f10-1acd-11e0-964d-806e6f6e6963}\"), gets the DOS device name for the volume using QueryDosDevice, and compares that.

Code:
static string GetWindowsDevicePath(const WCHAR *dos) {     HANDLE sh;     WCHAR vname[MAX_PATH+1], dname[MAX_PATH+1];     size_t len;      string path = nullptr;      // Get the first volume (handle is used to iterate)     sh = FindFirstVolume(vname, ARRAYSIZE(vname));     if (sh == INVALID_HANDLE_VALUE)         return nullptr;      // Iterate through all volumes     do {         // Make sure the volume path is valid         len = wcslen(vname);         if (len < 5 || wcsncmp(vname, L"\\\\?\\", 4) != 0 || vname[len-1] != L'\\')             continue;          // Check the device name (which doesn't work with a trailing '\')         vname[len-1] = 0;         if (QueryDosDeviceW(vname+4, dname, ARRAYSIZE(dname)) && wcscmp(dname, dos) == 0) {             vname[len-1] = L'\\';             path = NicerPath(gcnew String(vname));             break;         }     } while (FindNextVolume(sh, vname, ARRAYSIZE(vname)));      FindVolumeClose(sh);     return path; }
The function NicerPath is a helper function I have to convert the long volume path ("\\?\Volume{43a03f10-1acd-11e0-964d-806e6f6e6963}\") to something nicer (e.g. "C:\") using GetVolumePathNamesForVolumeName. For the hidden system drive, the long form is all that is available.

Guest

Thanks for the code snippet. The answer to my question about the "mysterious" bytes, translated into human language is: simply the raw starting offset of the partition of target harddisk - given in little endian (ie reversed).

marcusj0015

@thaimin:
Ok now I understand, due to security concerns "user free movement" won't be availible am I right? But how the 'LOCKED' position of the flag? I assume your working on it!

Rbcc



thaimin

@Thaimin, is there anything you need help with?

or are you done?

MadShortCraze

I am still working on it, and it will probably never be "done". I am planning on a minor release soon that fixes many small issues.

Already done:
  • Includes translations for Spanish, Dutch, and Vietnamese
  • Improved language support including external translation loading
  • Improved BCD device detection and elimination of redundant error messages
  • Numerous other minor changes and fixes
Still working on:
  • Able to work with already modified files:
    • I have solutions to everything except for files that have had the background image added
    • Need to test the solutions I have made
  • Fixes to the installer which caused it to crash
    • Fixed many problems already, lastly I need to fix an issue where uninstalling crashes

thaimin

After using the program, I get something like "bootmgr image is corrupt. System cannot boot." I checked this thread and it was mentioned in 2010, the problem was about compression size or something. I am not an expert at all, I just wanted to know if I was missing something obvious or if I was wasting my time trying to look for a solution. I'm using Ultimate 32 bits.

Thank you.

EDIT: I'm not looking to fix the corrupted bootmgr per say, as I fixed it easily by repairing with my Windows installation disc. I just want to avoid getting that if I try again (I tried twice already).

HarbingerOHavok

Is the animation in the right place on the screen? John

100 Percent

@MadShortCraze
No one has reported this issue since the early versions of the program. Please email me (jeff@coderforlife.com) the bootmgr file after it is modified by the program.

To find the bootmgr file, in my program check its location in the "Options" menu. If it says "On hidden system drive" use the OpenHiddenSystemDrive utility (http://www.coderforlife.com/projects...denSystemDrive) to open the hidden system drive and get it.

@RBCC
An example of something annoying: asking a question that you already asked and received answer for. From a few posts ago I said:
Quote:
The preview in my program is accurate to within 1 pixel for the animation.
In that same post I mentioned that stretching effects of screen resolution may make it look a little off.

thaimin

can you send me what you have so I can test it?
John

Guest

hey guys, i just joined the site just so i could tell you how much i appreciate what you have been doing. i have been following you for a while, and testing or backtracking and trying to help, but you are way faster at this than i am lol.
i ran the program and while i did get a large amount of redundant messages, it ran perfectly.

Thanks for all the work you have put into this. if you need any help with any thing, just PM Me

thanks guys!!!

Guest

Excuse me can you make a video and post it on youtube please I can't really do things just with Pictures and steps.
When you made the video please send me the link to Please this will really be helpful.

Guest

@HarbingerOfHavok
Thanks! There should be many less redundant messages in the next version.

@100 Percent
Joakim may choose to do that, but unless you really want to understand the fundamentals of how this works, just use my program. There is a link in his post. The program is quite self-explanatory.

GEORG

Hi thaimin

Sorry please make update i cant no animation monthly microsoft update new files version 6.1.7601.17514 !!!



marcusj0015

that version number is SP1, it's not a recently released update, its the latest Service Pack, which should be supported, when was the last time you installed Windows 7?

how many programs have you installed?

if you installed windows 7 along time ago (3 months+) adn if you install alot of stuff, it's time to reinstall

GEORG

Soory its working fine !!!

Yesterday come 16 updates from Microsoft and reboot PC (I have Win 64 SP1) then original boot animation !!! I have repair winload.exe in the original and have new installed new animation working nice THANKS FOR ALL !!!

thaimin

One of the updates yesterday (KB2506014) did change winload.exe and winresume.exe for 64-bit versions. The new file version is 6.1.7601.17556.

You shouldn't restore the files! You are basically undoing part of the Windows Update, and other files were changed as well, so they could possibly no longer work together. The thing is to re-apply. Re-applying will be easier with the new version which can work on unmodified and modified files alike.

I will have to see if the new file is needs an update to my patching definitions. It possibly may, since the update is supposed to correct "an issue in driver signing enforcement" which is what my program utilizes a little bit.

References:
http://support.microsoft.com/kb/2506014 - General information about the update
http://www.microsoft.com/technet/sec...y/2506014.mspx - Slightly more technical document

GEORG

Thank you for info this is it i have the old version 6.1.7601.17514 over 6.1.7601.17556 copyed and working fine no problems !!!

thaimin

Will this work if I apply the update then use bootupdater ? John

xxrazor

For the Microsoft Update, for now the safest method is to just not install KB2506014 for now. I have not found the new patch definitions for them yet.

If you have already done the Windows update without restoring the backups first, this is a "pickle of a situation". You need manually restore the bootmgr backup file. Otherwise even my future version won't be able to work with it.

My next version will be able to modify files that have been modified BY IT. It adds extra information about reverting the file. It however CANNOT modify files that have been modified with the current or previous versions.

The next version is coming soon! All I have left is to find the new patch definitions for KB2506014 and to test everything. The new version has a very cool system for working with already-modified files, along with numerous other fixes (especially for the installer) and a couple of new languages.

armani077

@thaimin

KB2506014 - This patch fixes a problem where you would receive the error message �Error Code FFFFFFFE� when installing Windows updates. 1.8MB - 3.2MB

The second advisory, KB 2506014, hardens Windows against kernel-mode rootkits. This specifically breaks the hiding mechanism used by the current Alureon/TDL4 rootkit family. It is an update available on WU and WSUS, pushed out automatically to customers who have opt-in to Automatic Updates.

Still looking for a better definition, but check this out http://www.microsoft.com/technet/sec...y/2506014.mspx

cheers
xxrazor

AlexYM

Big time noobie here so I will just put it out. I am using the win 7 x64 Ultimate edition. I want to change my boot but scared I will screw something up. I am not in test mode or using what they call a virtual machine. Is there a set of instruction,,,,,,,,Boot changing for dummies. Thanks

Guest

@thaimin and joakim
A bit off-topic, but this could be quite interesting how things might change in Windows 8... Bootmgr from leaked build 7850 is significantly more "fat", stub was changed and apparently uncompressed bootmgr.exe is no longer limited to 512 KBytes, besides other innovations, in addition to already existed screen resolution modes of 1024x768 and 800x600 it now supports 1024x600 for boot menu's and dialogs, and there're some reports that in this build default win7 bootscreen animation works on displays that have lower max resolution than 1024x768... Same about winload.exe... Being x86 build, it supports efi boot...
BTW, Thaimin, win7 x64 also can use efi boot, so your tool may eventually need to modify winload.efi, winresume.efi and idk what file is used instead of bootmgr in efi boot scenario...there seem to be a few...

marcusj0015

i'm pretty sure bootmgr covers EFI as well



AlexYM

EFI boot is different as it doesn't use mbr->bootsector->bootmanager sequence, so bootmanager should be another...
Looks like one of these two:

bootmgfw.efi and/or bootmgr.efi


marcusj0015

i've open the bootmgr.efi file in the root of the windows 7 x64 DVD, and dude, it contains an exe file, and a bunch of resource files, take a look your self, open it with 7-Zip

armani077

Have file for you marcusj0015

armani077

Trying to upload

thaimin

@xxrazor
Thanks for the info. I believe everything will be worked out.

@sexus
I gave you the instructions for restoring manually before, but you weren't able to find the appropriate backup to restore. I am sorry that this has been causing you so much trouble.

@armani077
You found my bootskin program, and for the moment that is the safest / easiest method, although it still comes with risk. You made a bootskin, all you have to do is click "Apply".

@marcusj / @AlexYM
EFI files are 32-bit PE-format executable programs (EXEs) that expect to run in protected mode, using the flat memory model and without paging enabled.

@AlexYM
EFI support has been planned, but I have many other things to work on first. And until VirtualBox supports Windows booting using EFI I won't have a good testing environment (it supports EFI fully for Linux and Mac guests but not Windows).

Also, you are right. The boot order for the different setups are:
  • Standard: mbr > bootsector > bootmgr (16-bit) > bootmgr.exe > winload.exe > ntoskrnl.exe
  • EFI: efi > bootmgfw.efi > bootmgr.efi > winload.efi > ntoskrnl.exe
The ".efi" files are probably all located in the \EFI\Microsoft\Boot\ directory on the EFI system partition (at least bootmgfw.efi is). The following can be seen as equivalent between the two setups:
  • bootsector + bootmgr (16-bit) / bootmgfw.efi
  • bootmgr.exe / bootmgr.efi
  • winload.exe / winload.efi
The BCD data is also stored in different locations for each:
  • Standard: the \Boot\BCD file on the boot partition (partition with bootmgr)
  • EFI: a file in the \EFI\Microsoft\Boot directory on the EFI system partition

armani077

Thank you, but its not finished I want a blue flag.

thaimin

@armani077
None of us are in the 'business' of designing boot skins. This thread is about the methods to change the boot skin and the development of tools to do it.

marcusj0015

Thaimin, ive stumbled across alot of n00bs that are very confused

They dont know how to get the bmp, you should include a standard bmp with your app, like in the same downlOad

thaimin

@marcusj0015
I do have a separate download with both the full activity.bmp and as parts. Including it with the standard download would put a lot of strain on my server bandwidth since most people don't need it. People just need to read 2 lines further down to the other download.

thaimin

@sexxus
New idea. Try this:
  1. Remove KB2506014, see http://windows.microsoft.com/en-US/w...move-an-update
  2. Run Windows 7 Boot Updater
  3. Choose "Options" > "Restore Backups". Repeat until it says nothing is restored.
  4. Install KB2506014




EliteHacker

Unable to uninstall update

All I want is normal boot image now! I'm not concerned with the custom image I just want the default one with the dots meeting together to create the windows logo. Not the stupid vista basic. Is there any other way, without reinstalling???

marcusj0015

thaimin, why don't you just compress the app and the animation? into a 7z self extracting archive? it takes up 2.17 megabytes and it includes everything

just a suggestion

thaimin

@marcujs0015
I don't mean to sound like I am an asshole, but it's not going to happen...
  1. Most people don't want to just tweak the Windows flag, they start from scratch
  2. The program does not require you to use the 'activity.bmp' format, you can use 105 200x200px images - this is explained under "How To Use" on that page
  3. A very short distance below the Windows 7 Boot Updater download there are two zip file downloads with examples
  4. Right now the program is super-simple: it requires no extra unzipping, no extracting, no installing
  5. And the bandwidth issues - this program is downloaded 200-500 times a day from my site, and I have a cheapish server...
One thing that I may consider is an option in the program that extracts the image from your current bootres.dll. But so many people don't look in any of the menus.

@sexus / EliteHacker
Interesting. I can uninstall it just fine... Maybe because your files were modified initially it no longer wants to revert to them.

Another thing to try:
  1. Save the new files some where (winload.exe and winresume.exe in Windows\System32)
    (if you have already run a restore backups, then download them here: http://www.coderforlife.com/temp/x64-SP1-KB2506014.zip)
  2. In Windows 7 Boot Updater, run Restore Backups until it says it didn't restore any files.
  3. Copy the saved winload.exe and winresume.exe back to Windows\System32
I hope this works. For now wait till I publish the new version (hopefully this weekend) before re-applying any boot skins.

marcusj0015

Yeah i wasnt trying to be an asshole either, i think the extract animation in the file menu would be a decent compromise

Is there anything u need help with? U seem kinda stressed

Is it a bandwidth issue?

You should try out uploading your app to skydrive and hotlinking to it

Sky drive is free with a free hotmail account

thaimin

I am a bit stressed, but it isn't anything you can really help with. My work is getting busy again, and my sister has needed my help redesigning her website...

I have been trying to get the next version out (it has been nearly complete for a couple weeks). All that is left is my testing. I completed my first round of testing (the files when modified look like I expect). I need to complete the second round (actually using the modified files in a VM).

Along with that, I am tired of people having the same problem and not reading answers I have posted or not looking in menus...

EliteHacker

@thaimin

Thank you so much for your help worked like a charm!
Now have a semi-good-looking startup!
Cheers Mate

Tanauser

Is there a simple way to convert an image into .bs7 so anyone could use Win7BootUpdater.exe.

thaimin

@marcusj0015
Thanks for the link to the DeviantArt website. Thanks for all your continuous help!

@EliteHacker
Awesome!

@Tanauser
Use the Win7BootUpdater program to create a BS7 file. If you want the image to be the animation, select "Static Image" for the Animation type and it should allow you to select the file you want. If you want it to be the background, change the method to "Complete" and then "Select Background Image". After you are done designing the bootskin, make sure to do "File" > "Save boot skin as..."

Tanauser

Hello

I did so



What I need to know before PRESSING the APPLY button ( I already have my OS crashed with this yesterday) = I was lucky to recover ; but I don't give up

- So I made a file with this Static animation ( red Dragon) and the Background as you see

1) Is that correct ?

2) How to recover ?

last time I was very lucky to found a way to boot in safe mod ( pressing keybuttons) >>>> go to System32 and change the winload.exe for the old one ; after Reboot launch Win7BootUpdater.exe and restore Backups.

The Recovering tip that is given upon the site didn't work with my OS ; I just couldn' t a DOS window at boot time

my OS
Windows 7 64 bits Premium ( Dell Alienware)

Thanks for any Tips

joakim

First post updated with detailed information on how to implement driver printing on top of the bitmap (with SOS on), as well as distorted resolution hacks for the kernel (plus some windbg tricks).



thaimin

@joakim
Thanks! I will have to look at those for future versions.

@Tanauser
This may be due to the recent Windows Update which I haven't tested against yet. I will hopefully finish testing today or tomorrow (I started yesterday and found a huge problem and fixed it just now). So just wait. This wasn't yor fault. You seem to have done everything right.

armani077

@ Thaimin Program worked great Thank you so much for sharing your work.

thaimin

@armani077 - you're welcome!

thaimin

@Thaimin: This is an excellent Program, you're God Like!

John

GEORG

I know that I promised the next version awhile ago, but it has been running into problems. The good news is that I finally had the first successful run in an actual VM! So that hopefully means most of the things are now working, and just need to fix a few remaining things.

I test by doing the following:
  1. Apply a bootskin that changes the background image
  2. Restart and do a hibernation/resume and make sure that everything looks good
  3. Apply a bootskin that uses messages and not the background image, without restoring the backups
  4. Another restart and hibernation/resume to make sure that everything looks good
The testing status (I will update as I make progress):
  • 32-bit:
    • RTM: Success
    • SP1: Success
  • 64-bit:
    • RTM: Success
    • RTM+KB2506014: Partially tested and looks good
    • SP1: Success
    • SP1+KB2506014: Success

Poma

Good news thanks !!!

thaimin

What screen resolutions does the program support?

thaimin

The Windows boot screen is fixed at 1024x768. There is currently absolutely no way to change it. It has nothing to do with my program.

Guest

The tests on the latest all look great so I will publish tomorrow.

thaimin

And it is published. I have decided to make this Beta 1 since it seems to be fairly stable. I added no new features, just fixes and improvements. See the website for more information.



moinmoin

Great thaimin. I will test it immediately.

GEORG

Hello thaimin

Thanks for x64-SP1-KB2506014.zip in #754 and for the new BETA version i have tested perfect you are the best !!!

lastot069

@thaimin works with no problem for me on 64 ultimate, you are the man!

kamoteprotocol

nice work... sir... am gonna try this again... rework my old abstergo boot logo

thaimin

@all - Thanks!

@AlexYM and @joakim
I have been doing some snooping in ntoskrnl.exe with the animation stuff. I may be able to explain some problems that joakim was having. Note: all things are currently looked at in ntoskrnl.exe x86 RTM (v6.1.7600.16385)

The number of frames is hard-coded in a few other places within ResFwpGetProgressIndicatorAnimation:
Code:
PAGEBGFX:00748CFD   cmp     [ebp+index], 69h ; check if index is less than 105 PAGEBGFX:00748D01   jb      short loc_748CE4 ; if so, load another frame PAGEBGFX:00748D03   jmp     short loc_748D2A ; otherwise we are done
Code:
PAGEBGFX:00748D07   push    69h ; total number of frames to unload ... PAGEBGFX:00748D13   pop     edi ; save to edi ... PAGEBGFX:00748D27   dec     edi ; decrement number of frames remaining PAGEBGFX:00748D28   jnz     short loc_748D14 ; loop if more frames remaining
Also, I think it is possible to change width and height independently. Original code:

Code:
00748C97  B8 [C8 00 00 00]          mov  eax, 0C8h                 ; width/height 00748C9C  8D 7E [0C]                lea  edi, [esi+0Ch] 00748C9F  C7 06 [01 00 00 00]       mov  dword ptr [esi], 1 00748CA5  C7 46 [04] [9C 01 00 00]  mov  dword ptr [esi+4], 19Ch   ; X 00748CAC  C7 46 [08] [1C 01 00 00]  mov  dword ptr [esi+8], 11Ch   ; Y 00748CB3  89 46 [10]                mov  [esi+10h], eax            ; height 00748CB6  89 07                     mov  [edi], eax                ; width 00748CB8  C7 46 [18] [0F 00 00 00]  mov  dword ptr [esi+18h], 0Fh  ; framerate 00748CBF  C7 46 [1C] [69 00 00 00]  mov  dword ptr [esi+1Ch], 69h  ; total frames 00748CC6  C7 46 [24] [3C 00 00 00]  mov  dword ptr [esi+24h], 3Ch  ; loop frame
New Code:
Code:
00748C97  8D 7E [0C]                lea  edi, [esi+0Ch] 00748C9A  C7 06 [01 00 00 00]       mov  dword ptr [esi], 1 00748CA0  C7 46 [04] [9C 01 00 00]  mov  dword ptr [esi+4], 19Ch   ; X 00748CA7  C7 46 [08] [1C 01 00 00]  mov  dword ptr [esi+8], 11Ch   ; Y 00748CAE  C7 46 [08] [C8 00 00 00]  mov  dword ptr [esi+10h], C8h  ; height 00748CB5  C7 07 [C8 00 00 00]       mov  dword ptr [edi], C8h      ; width 00748CBB  C7 46 [18] [0F 00 00 00]  mov  dword ptr [esi+18h], 0Fh  ; framerate 00748CC2  C7 46 [1C] [69 00 00 00]  mov  dword ptr [esi+1Ch], 69h  ; total frames 00748CC9  C7 46 [24] [3C 00 00 00]  mov  dword ptr [esi+24h], 3Ch  ; loop frame
Only issue here is that the new code is 3 bytes longer. I am sure some solution could be developed though.

joakim

I am not 100% sure but I believe I've tried similar mods without luck. Meaning unsuccessful in regards to resizing of animation. I got several different stop messages. The code chunks look familiar though.. Did you manage to successfully boot with a resize?

alperuzi

JOAK?M Please

Can you upload the file to your bootres.dll, but it has to be certified, will integrate Windows 7 cd

joakim

Sorry, but you need to carefully read the first post. Then come back here and report in detail what you have done and what happened. Then you may get some help and pointers for your next attempt.

niceguy75

Has anyone managed to change the animation in pre-install? I have tried almost all the methods without any success.

alperuzi

Sign_pe.zip bootres.dll trouble me with the certification file, call file, I told you when I ran the downloaded file, but I like the image in the signer.bat bootres.dll file the certificate does not have the same directory dont need signer.bat? Where did I go wrong I wonder if you would to help me I will be happy to your help.



joakim

@alperuzi
It's a little bit hard to understand where you're at. I think it's best for you to go for thaimin's AIO tool; Coder for Life - Project - Windows 7 Boot Updater It is a wonderful app that will do the necessary stuff for you, except creating the actual animation (activity.bmp).

thaimin

is there a way reposition the animation? John

thaimin

I was looking on page 12, and found the write up on colours. But in the line <title color="XXXXRGBX"> what do I put in there for the colour gold? Gold rgb = #CD7F32? and in this line:font foreground-color="RGBI" what is I? IN Background color= "XXXX"?

John

Shaitan

@RBCC
About the colors in the osloader.xsl file, see the first post and post #103. As a reminder, all of the things in osloader.xsl are written using a fixed-width system font that you cannot change. These texts are for menus and errors during bootup.

The "Starting Windows" and "(c) Microsoft Corporation" texts are COMPLETELY different. That font can be changed, as I told you in the email (changing the string "\fonts\segoeui.ttf"). Their color is changed in a completely separate way. See the first post. The "Starting Windows" color is especially difficult to change manually.

And your question "is there a way reposition the animation?" has been asked and answered numerous times. If you truly have this bad of a memory and want to know all this, I suggest making yourself a document on your computer, reading the entire thread, and writing down all the important facts and post numbers.

thaimin

Here is a website that shows CGA Color codes, Would this work?
http://www.oldskool.org/pc/cgacal/
John

Shaitan

It looks fine. It's the same as the Wikipedia article I linked to. That website is mostly about the underlying hardware implementation and calibration, way more than you need to know. All you need to know is in post #103. There are 16 possible colors for colors in osloader.xsl. This does not effect the messages you normally see.

Guest

Hey there.
I'm trying to integrate my custom boot animation in Win 7 DVD.
I used Boot Updater to change the files and replaced the install.wim ones, but setup fails right in the 1st boot telling me to restart the setup.

So... What I must do? How?
Tks!

Guest

No one knows. That is being worked on. The only way at the moment is to apply it AFTER the install.

Guest

What about reverse integration? Much like the sp1 way?

thaimin

No one has succeeded yet. You can try.



niceguy75

Quote�� Quote: Originally Posted by thaimin View Post
No one has succeeded yet. You can try.
I don't think it is going to work; in reverse integration you only capture the install.wim, what about patching the boot.wim files?

thaimin

Does anyone know where i can find PEChecksum that works in Windows 7 SP1 x64 Ultimate??? John

claysoft65

XXXX RGBX Is 1 foreground and 2 background? John
^ ^
| |
1 2

joakim

@RBCC
I have a command line version: http://www.coderforlife.com/projects...es/#PEChecksum

Seeing that XXXX is white and RGBX is grey it seems the first one is foreground. You can test this yourself though, and if its reversed, well, then do one more test with it the other way.

Guest

Hi. I have removed the bootres.dll file and now, windows boots using the vista boot screen. I don't want to have any kind of animation.
Would setting testsigning on help or do I have to remove vista boot screen as well? If it's the last one, where do I find it?
Thank you

Guest

I don't think that you can totally remove it, it's hardcoded somewhere...
but i'm pretty sure that you can "cheat it"...
Just use bootres.dll and make a totally Black animation

Guest

That's a shame. I really wanted to make my install dvd as small as possible. By removing that I thought maybe I'll gain some more space and kill another slow factor. Thanks for the reply claysoft.

Guest

I am using reverse integration to create a SP1 DVD, I would like to use my bootscreen before setup, Upon bootup before setup. Now should I copy the "Patched" files into my image before I make an ISO? Would this work?
John

Guest

@RBCC
I never tried on a complete setup iso, but I've done most of my tests so far on WinPE (both flatboot and wimboot). So since setup is in fact winpe, I would assume it to work. But as I said I never tried it on a complete setup iso.

Give it a try and report back. Beware of which index in boot.wim you are putting the modified files (usually 2 slightly different ones on a standard setup iso - setup and recovery).

@AlexCeed
I can't remember exactly, but believe this can be done with a patched in winload.exe. I'm too busy now and have not got time to look it up. Sorry.

thaimin

@RBCC
No method of integrating a modified bootscreen into an install disk works.

@AlexCeed
As claysoft65 said, you can set the animation to something like a pure black screen. If you use my program, you can set it to a 1px by 1px transparent image. Since the animation is compressed, and solid color images compress much better than complicated images, using a solid color animation will greatly reduce it's size. The normal bootres.dll is like 2.5MB if I remember correctly. Using a solid color animation should reduce that to at most a few hundred kilobytes.



AlexYM

Is modifying a file and copying a file back into the image integration? I tried tried it once as part of of the install.wim file and it didn't work. John

thaimin

I tried it by copying them to the ISO and it didn't work. If I can figure out if I were to replace the files with the $OEM$ Folders and if that will work! Then I will let you know. I got a email from Thaimin and he said it has to do with security measures in Windows 7. John

thaimin

Some bad news here: looks like bootmgr from Windows 8 build 6.2.7989 uses another internal compression, at least thaimin's bmzip utility appears to be "frustrated" by it's compressed part...


bootmgr7989.zip

AlexYM

@AlexYM
I just looked into it, and yes, it is very different. I can't even find the proper "MZ" for the compressed program. I assume the compressed part starts at the offset #88B0, but there is no "MZ" near there, so it is not at all the same type of compression. It looks like it uses a static dictionary instead of (or in addition to) a dynamic dictionary like the previous version did.

It is likely that they are reusing one of their other compression technologies. I will check out if it uses one of the WIM compression formats (LZX or XPRESS). I have already written decompressors for those. Both use a static dictionary.

selyb

I was using index 2! John

speedgamer01

@AlexYM
I finally had some time and looked at the compression in Windows 8 bootmgr. It is compressed with "XPRESS" used in the WIM format. That compression is described at http://msdn.microsoft.com/en-us/library/dd644740(PROT.13).aspx however they only really describe decompression and not how to compress, although I think I can eventually come up with something after studying the algorithm. Additionally the psuedo-code they provide is quite slow so I need to come up with a faster system. One other road-block at the moment is determining the decompressed size before decompression starts. In the WIM format this is supplied for you, but I don't know where it is in the bootmgr file (yet).


Guest

@thaimin
That's very interesting, chances are they won't change compession method in later builds again. If this can be of any help, uncompressed bootmgr.exe can be located as usual inside winre.wim in PXE subfolder and it's size is 564104 bytes for build 7989, i think it should be coded in bootmgr's stub as reversed hex 88 9b 08, so i just looked there purely empirically it maybe right at stub's end - at offset 68a8.






Guest

Ok, thanks to this post
Quote�� Quote: Originally Posted by joakim View Post
Just sharing my first windbg script ever...
I finally found the values. ntoskrnl.exe from my Win7 x64 has
Code:
C7 42 04 9C 01 00 00 C7 42 08 1C 01 00 00
instead of
Code:
C7 46 04 9C 01 00 00 C7 46 08 1C 01 00 00
I want to modify the animation position. Can I hex ntoskrnl.exe or do I have to use IDA?

@thaimin: what method does your program use to allow the modified files?
What I really need to know is after I use Win7BootUpdater, then modify ntoskrnl.exe, what do I need to do to allow the modified ntoskrnl ?

Guest

Why don't you all use the software for this job? It's very reliable and has restore functions, you can determine the files manually if you want.
Coder for Life - Project - Windows 7 Boot Updater

selyb

Quote�� Quote: Originally Posted by speedgamer01 View Post
Why don't you all use the software for this job? It's very reliable and has restore functions, you can determine the files manually if you want.
Coder for Life - Project - Windows 7 Boot Updater
Because the software doesn't modify the kernel which is what determines the size, position, and number of frames for the animation.



thaimin

@selyb The values I modify only pertain to other boot files (boot drivers, winload, required MUIs). Ntoskrnl is a completely different beast. Besides being checked by winload it probably also checks itself, continuously (patch guard). Thus the only way is probably to just use testsigning and then you can patch a file to remove the watermark.

I don't use IDA to modify any of the files, only to investigate. I use a hexeditor to do modifications.

Cooperdale

So Thaimin, have you been working on this lately? Like, changing the size of the animation ?

joakim

Quote�� Quote: Originally Posted by Cooperdale View Post
So Thaimin, have you been working on this lately? Like, changing the size of the animation ?
I know I'm not thaimin, but we did some testing on this earlier on. And did not manage to change the size of the animation/frames. If thaimin have found new stuff lately, I would be happy to know the details.

thaimin

AlexYM successfully changed the size and location of the animation, however it requires modifying ntoskrnl which would open your computer up to all sorts of malicious stuff. I was working on a method of doing it in-memory to reduce security risks. However I haven't had time for this recently.

niceguy75

How about working on a unattended installation or Reverse Integration? John

joakim

Quote�� Quote: Originally Posted by RBCC View Post
How about working on a unattended installation or Reverse Integration? John
In reverse integration you can integrate the custom boot animation only in install.wim. What about the boot.wim?

Cooperdale

Quote�� Quote: Originally Posted by thaimin View Post
AlexYM successfully changed the size and location of the animation, however it requires modifying ntoskrnl which would open your computer up to all sorts of malicious stuff. I was working on a method of doing it in-memory to reduce security risks. However I haven't had time for this recently.
Then maybe thaimin or AlexYM would quickly describe what instructions to change and how. I knew about the positioning, but was thinking about the size-part.

thaimin

I'm glad there are still people thinking about this. I was wondering if movie duration would be tweakable somehow too?

Guest

@Cooperdale
One day it will hopefully be. Along with position, framerate, loop point, and size (if that was actually successful).

@RBCC / @niceguy
I haven't figured this out yet either.

AlexYM

Quote�� Quote: Originally Posted by joakim View Post
Quote�� Quote: Originally Posted by thaimin View Post
AlexYM successfully changed the size and location of the animation, however it requires modifying ntoskrnl which would open your computer up to all sorts of malicious stuff. I was working on a method of doing it in-memory to reduce security risks. However I haven't had time for this recently.
Then maybe thaimin or AlexYM would quickly describe what instructions to change and how. I knew about the positioning, but was thinking about the size-part.
@joakim
After some digging in my profile I think it was initially described here on page 25 in post #245 and #248.

In different ntoskrnl builds offset changes, but the function code remains the same, so newer locations should be easy to find. Width and height of a frame are tied in this function, but thaimin described in post #776 the modded function to separate them. And yes, back then i "played" quite a bit (on x86) with resized activity.bmp and accordingly modded ntoskrnl, and it all worked smoothly as long as values matched, just have to admit that increasing filesize of activity.bmp even twice increases the load-time of animation dramatically. Thus, if you'd like to keep this time in reasonable limits and make animation frame significantly wider (like 400x400), you may need to decrease the number of frames then.





thaimin

@AlexYM - Thanks for doing the digging!

Jaime74656

wow I just happened to stumble into this thread and on this program! nice work man!! is there and chance you could get this program to work with .AVI files as I have a few I would love to use for my start up screen! but im not sure if theres a way to properly convert them with out destroying the original files (I already have them backed up incase) but I think it would be nice to have the ability of using AVI files!

thaimin

SUPER video converter can:

SUPER &copy

Output to a PNG Image Sequence.

Jaime74656

cool ill give it a try, i would prefer to use 100% free programs also but ill see if i can get this downloaded thanks!

thaimin

SUPER is free, and it uses the ffmpeg libraries (open source) and DirectX to do the conversion. I'm sure there are other interfaces for ffmpeg that are completely open source, and if you find one, please tell me since the SUPER interface is actually pretty terrible and the website even worse.

joakim

Quote�� Quote: Originally Posted by AlexYM View Post
@joakim
After some digging in my profile I think it was initially described here on page 25 in post #245 and #248.

In different ntoskrnl builds offset changes, but the function code remains the same, so newer locations should be easy to find. Width and height of a frame are tied in this function, but thaimin described in post #776 the modded function to separate them. And yes, back then i "played" quite a bit (on x86) with resized activity.bmp and accordingly modded ntoskrnl, and it all worked smoothly as long as values matched, just have to admit that increasing filesize of activity.bmp even twice increases the load-time of animation dramatically. Thus, if you'd like to keep this time in reasonable limits and make animation frame significantly wider (like 400x400), you may need to decrease the number of frames then.

That's funny, because I have that described in the first post since long ago. Probably since when you posted that stuff you refer to. But I obviously must have done something wrong back then when I tested myself, since I think I managed to modify most parameters except the actual size related ones. Well, then I thought maybe there was something I had missed. If you have a windbg script to successfully change the size, then please post it, and I will link to it in the first post (I already have at least 1 such there). Thanks for the clarification.

thaimin

@joakim
I thought you were trying (and failed) to change the screen resolution.

@Jaime74656
I have made a simple batch file script that uses ffmpeg to convert any video file format it supports (which is nearly all) to a series of PNGs. It forces the output to conform to the necessary standards (15fps, 200x200 frames, and max 105 frames). You can download it from:

http://www.coderforlife.com/projects...ras/#video2png

Jaime74656

heres the link to super download that i found after some sifting through the horrid site...

SUPER � videos

www.erightsoft.biz/GetFile.php?SUPERsetup.exe

Edit: ok i am trying to install it, but after I select the language I just get a box that reads "Error: Access Denied" not sure whats going on, but i tried to run it in admin mode and compatibility mode...

joakim

Did anybody locate where the actual animation is stored in Windows 8 (Dev Preview)? I had a look yesterday and failed at identifying it. Well, I found bootres.dll, but it now only contains a few regular bmp's, so it must be stored elsewhere. I also opened up winload.exe and ntoskrnl.exe, but failed (without trying too hard) to find the relevant code..

Edit:
Forget about it. I was only looking inside boot.wim.. It is still where it's supposed to be.

dafmat71

Hi, it doesn't work for me, when i activate it, select a file and apply: nothing changes!!
I use a french version of W7!!



niceguy75

Quote�� Quote: Originally Posted by Jaime74656 View Post
heres the link to super download that i found after some sifting through the horrid site...

SUPER � videos

www.erightsoft.biz/GetFile.php?SUPERsetup.exe

Edit: ok i am trying to install it, but after I select the language I just get a box that reads "Error: Access Denied" not sure whats going on, but i tried to run it in admin mode and compatibility mode...
You can find some cool boot animations @ niceguy75 on deviantART

joakim

Does Windows 7 Pro have all the security around the bootscreen that Ultimate has? Can the OSXML be converted into XML ? Where did Thiamin get his info? hacking? John

thaimin

I just made my own compressor / decompressor for BOOTMGR; LZNT1 Tools (compression in bootmgr and ntfs) - reboot.pro and downloadable from; LZNT1_Tools.zip It uses winapi and works perfect both ways. Windows 8 up until 6.2.7955.0 are verified working. After that compression method changed, but I believe support for it is found in the same winapi (on that particular OS though). Sources included in download.

@thaimin
Do you plan on releasing your sources too? And have you looked at the latest Windows 8 version?

thaimin

Hi All! Apparently I stopped receiving emails about new posts...

@joakim - Funny thing about the compression. I just decided to write up LZNT1, LZX, Xpress (Lz), and Xpress Huffman compressors and decompressors and release the source (see Coder for Life - Microsoft Compression Formats for a summary of research I did).

The LZNT1 one is almost exactly what I have in bmzip, which provides that exact same compression ratio as RtlCompressBuffer but adds a single extra null byte as required by Windows 7 bootmgr - so no improvement from Winapi. BTW, my implementation is at least 25x as fast at compression but half as fast at decompression (working on that).

The Windows 8 bootmgr uses Xpress Huffman. I have a decompressor for this already, and am working on a compressor. Windows 8 does indeed include a Xpress compressor with RtlCompressBuffer however the decompressor always fails in v6.2.8102.0 x86 (even if I use RtlCompressBuffer then RtlDecompressBuffer).


Current status of compressors:
LZNT1: 50x faster than Winapi with identical compression ratio
LZX: No compressor yet
Xpress (LZ): No compressor yet
Xpress Huffman: Much slower than Winapi but comparable compression ratio (sometimes better, sometimes worse)

Current status of decompressors:
LZNT1: Half as fast as Winapi
LZX: Works, but no Winapi to test against
Xpress (LZ): Works almost as fast as Winapi
Xpress Huffman: Much slower than Winapi


I am thinking of releasing the source for the next version of my entire program. However it would be difficult for others to look at since it is written in C, C++, C++/CLR, C# and asm.

joakim

Also, I am almost ready to release an online animation sharing system.

joakim

Sounds very good. I'll have another look at the latest Windows 8 version and try something, hopefully this afternoon.

thaimin

@thaimin
Do you happen to know the values for COMPRESSION_FORMAT_XPRESS and COMPRESSION_FORMAT_XPRESS_HUFF?

joakim

@joakim - Yes I do! Found through IDA (although it ended up being obvious...).

#define COMPRESSION_FORMAT_XPRESS 0x0003
#define COMPRESSION_FORMAT_XPRESS_HUFF 0x0004

Both accept COMPRESSION_ENGINE_STANDARD or COMPRESSION_ENGINE_MAXIMUM as well (haven't tried COMPRESSION_ENGINE_HIBER since the MSDN says that doesn't work).

You need to use RtlDecompressBufferEx() with XPRESS_HUFF (and maybe XPRESS, I am now using the Ex version always). The workspace buffer I use is the maximum of both values for both engines given by RtlGetCompressionWorkSpaceSize.

Guest

OK, but I'm stuck now and will continue tomorrow night. FYI, I just noticed you can also use lznt1 on the newest Windows 8 if using this stub; LZNT1_big_stub.zip

Hmm, the 0x0003 seems mentioned here; http://undocumented.ntinternals.net/...essBuffer.html although with a different name.

thaimin

Yes, LZNT1 is #2 and is still around (NTFS still uses it among other things).

To load these functions I just use the header file at the end of this post (I stripped comments, but close enough) along with the "load_rtl_compression" function called from main. You can then use the functions normally even though they are dynamically loaded.

Code:
static bool load_rtl_compression()  {  #ifdef _WIN64 // compiling for win-64  	HMODULE ntdll = LoadLibraryW(L"ntdll-8-64.dll");  #else  	HMODULE ntdll = LoadLibraryW(L"ntdll-8-32.dll");  

Không có nhận xét nào:

Đăng nhận xét