Manually editing the picture in the "NTOSKRNL.exe" file.
The picture you see when you just start winXp in in 16 color it's a technical
limitation as before booting no graphics drivers are loaded the image must be in
16 color to be compatible with the vga mode for display. First of all backup
your copy of ntoskrnl.exe and the proceed. Open it using a hex editor I am using
Hex Workshop. You can use any other. For color editing if to write your costum
colors to the file search for the Hex value
00000000151A200046464600D23E2D00016553000535B2007E7E7E0000928900FC7F5E00206BF700FFA68D0004DC8E001BBCF300BCBCBC00FCFCFC00FFFFFF
in the file (this is the default value.)
The colors are hidden in this mess.
Now let's decode the above value. I'm writing the above long string like this:
000000 00
151A20 00
464646 00
D23E2D 00
016553 00
0535B2 00
7E7E7E 00
009289 00
FC7F5E 00
206BF7 00
FFA68D 00
04DC8E 00
1BBCF3 00
BCBCBC 00
FCFCFC 00
FFFFFF
Now it is a bit clear. The first six digits are the hexadecimal color code for
the particular color and the two zeros following them act like separator.
Now the next step is to understand the color codings. If you have ever written
any HTML code then you must be familiar with this type of color code. But this
code is not same as a HTML color code where each color is represented as its
Hexa color code. The above color code is produced by just reversing the HTML
color code. For example if the HTML Hexa code for some color is F76B20 then the
converted code will be 206BF7.That means swapping of the first two digits with
the last two ones.Ok then if you are thinking what the hell HTML means then
remember the science book you read in the school that said all possible color
combinations are possible by combining Red,Green And Blue in appropriate
proportion.simillarly the color of a pixel on your computer screen is determined
by the Red, Green And Blue Brightness of that pixel. In the digital world the
upper limit of the brightness of each type of color is 255 i.e. FF in Hexa and
lower is of course 0(also 00 in Hexa,somethings in life never change). So the
first two digits in a HTML(who cares) color code gives the Red brightness or the
Red value of the color and similarly the second two and the last two give the
Green and Blue value of the color. All the values are in Hexadecimal as writing
FFFFFF instead of 255255255 for the color white takes less memory. But here in
this case the HTML color coding sequence is just reversed .i.e. we represent a
color by its Blue, Green and Red value(just the opposite of Red, Green And
Blue).
You can use the following code in C to convert HTML color codes to this format
or can write a program of yourself in any language using this logic.
------------------------------------------------------------------------------------start of
code-------------------------------------------------------------------------------
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main()
{
printf("This program converts a RGB pair into GRB one\nWritten by
Lagnajeet Pradhan\n");
char colors[16][6],temp[6],tmpchar;
int i,j;
printf("\nPlease enter all the 16 colors one by one.\n");
for(i=0;i<16;i++)
{
scanf("%s",temp);
for(j=0;j<6;j++)
{
colors[i][j]=temp[j];
}
colors[i][j]='\0';
}
i=0;
for(i=0;i<16;i++)
{
tmpchar='\0';
tmpchar=colors[i][0];
colors[i][0]=colors[i][4];
colors[i][4]=tmpchar;
tmpchar='\0';
tmpchar=colors[i][1];
colors[i][1]=colors[i][5];
colors[i][5]=tmpchar;
}
for(i=0;i<=96;i++)
{
if((i>0) && (i%6==0) && (i!=96))
printf("00");
printf("%c",colors[0][i]);
}
getch();
return 0;
}
-------------------------------------------------------------------------------End of
code-------------------------------------------------------------------------------------
here in this tutorial I mentioned the default pallets.oops what the hell pallet
means. I means the set of colors. so i mentioned them so you easily found them
in the file NTOSKRNL.exe by hex editing it and searching the particular string.
but how to to do this to file you don't know what are the colors hidden in it.
Simple open it in any resource editing tool I am using PE Explorer from
www.heavenstools.com.
open it using this program an in the resource section. Under the bitmap type
resource right click on the bitmap numbered 100 and click save resource as then
save if in a appropriate location. now open it using Paintshop pro.It will show
the pallet used in the image file. now click on the foreground color and it will
open a color table consisting of the 16 colors used in the image upon clicking
on each color shows its HTML color code below. just note them down and use the
above program to convert it into something meaningful that we need. Now you can
search the output string in the hex edited file and change it as desired.
My Tip:- first write the Html codes in a file. Each code should be followed by
an Enter.
then use the pipeline operator to both input from the file you just created now
and also to output to a file so that you can copy
it from there.
e.g. I saved the HTML codes in a file named "codes.txt" and i want the output to
be written to a file "Reversed.txt" an the
name of the executable produced by
compiling the above code is "Reverser.EXE".
I use the pipeline operator Reverser.EXE<<codes.txt>>Reversed.txt in dos.
The file "Reversed.txt" will be automatically created if it doesn't
exist. However I only tested it in Win98.So please don't
blame me if it doesn't
work in WinXp.
Now give it a final touch .i.e. once you have edited the file and put the colors,
present in the picture that you will be using, in it double click on the bitmap
numbered 100 a dialog box for replacement of the existing bitmap will open.
Replace the bitmap and save. You can also replace other bitmaps but remember
the size of the bitmap must be same as the previous one. and it must be of 16
colors I use the paint shop pro 8 to reduce images to 16 colors go to the image
menu then decrease color depth then 16 color 4bit click on it. It'll open a
dialog box showing some parameters then click ok.This can also be done in
Photoshop go to image>mode>indexed color...A dialog box will open that will let
you set the number of colors that you want to use set if to 16 then from the
drop down combo box set a method for the application of color and that's it. You
have your image ready for use. save and do whatever you want.
That's all folks! Next time we will explore how to change the progress bar
position. Bye.
Lagnajeet Pradhan.