This infinite loop calls all of the major procedures in the following order:
Cracksome, the routine which searches for hosts that the Worm can break into;
|
The Worm then runs other_sleep for thirty seconds;
|
The Worm then runs Cracksome again;
|
The Worm then forks into two child processes and kills the parent process. The child has all of the information that the parent had; in addition, the child has a new process number, making the worm difficult to hunt down. The Worm then runs through the infect process again;
|
Then the Worm runs other_sleep for 120 seconds;
|
Before looping back on itself, the Worm checks to see how long it has been running. If it has run for over 12 hours, it cleans up some of the host list entries.
|
Finally, the Worm checks the global variable pleasequit. If it is set, and if the Worm has tried more than ten words from its dictionary files for password cracking, the Worm quits. The condition is probably an attempt to prevent the easy destruction of the worm which could have been accomplished by setting a global variable pleasequit within the network itself.
|