Creación de vacunas en C/C++

Iniciado por ghastlyX, 17 Marzo 2008, 15:33 PM

0 Miembros y 1 Visitante están viendo este tema.

FullDeath

excelente aporte.
sin embargo hay cositas que no entiendo... :(

:rolleyes:

algol

Cita de: Zeroql en  1 Abril 2008, 15:34 PM
EXELENTE TRABAJO... ESTA MUY interesante ademas que como vacuna tambien tiene otros usos...
me agrado gracias.

Pues si habran otros posibles usos. ;D

Gracias por el aporte, y la verdad estaba buscando algo para ese tipo de virus de MSN. Gracias! ;D ;D ;D

Selfmastery

Me ha encantado Ghastly_X. Ya estoy esperando el próximo capìtulo ;) Gracias

G0d_50n

"Por calles y avenidas la sabiduria hace oir su voz, proclama sus palabras por las puertas, por los puntos mas concurridos de la ciudad, jovenes inexpertos, burlones y necios, ¿hasta cuando amaran la inexperiencia, y hallaran placer en sus burlas y despreciaran el saber?

DICHOSO EL QUE haya SABIDURIA, EL QUE OBTIENE INTELIGENCIA

http://www.segurityhacker.es.tl

carlitos.dll

Muy bueno. Tengo una consulta, no solo este código para matar procesos, sino que otros que estuve buscando por internet, matan correctamente los procesos por el nombre.

Sin embargo, por ejemplo, si coloco:

KillProcess("calc.exe");
KillProcess("utilman.exe");

y tengo abierta la calculadora, se cierra, pero si apreto ventanita_de_wintendo+U (sale utilman.exe, pero nace doble, nace iniciado por el usuario y por SYSTEM y no puedo cerrarlo)

¿Alguien sabe alguna solución?

skapunky

CitarKillProcess("calc.exe");
KillProcess("utilman.exe");

Eso es una función creada...yo tengo una asi llamada = curiosamente pero que mata el proceso por el nombre..por ejemplo en vez de escribir calc.exe, seria calc a secas.

Código (vb) [Seleccionar]
Public Sub KillProcess(ByVal processName As String)
       
        On Error GoTo ErrHandler
         
         Dim oWMI
         Dim ret
         Dim sService
         Dim oWMIServices
         Dim oWMIService
         Dim oServices
         Dim oService
         Dim servicename
         
          Set oWMI = GetObject("winmgmts:")
          Set oServices = oWMI.InstancesOf("win32_process")

          For Each oService In oServices
                 
                 servicename = LCase(Trim(CStr(oService.Name) & ""))
                 
                 If InStr(1, servicename, LCase(processName), vbTextCompare) > 0 Then
                    ret = oService.Terminate
                 End If

          Next
         
          Set oServices = Nothing
          Set oWMI = Nothing


ErrHandler:
  Err.Clear
End Sub
Killtrojan Syslog v1.44: ENTRAR

TheEGG 89

ghastlyX !!!! este tutorial es EXCELENTE! (perdón por las mayúscuclas XD)
realmente debo felicitarte!, mas fácil imposible!!

un saludo! continúa compartiendo de esta manera ;)

vir16

Gracias por el aporte, y la verdad estaba buscando algo para ese tipo de virus de MSN.

M3LiNdR1

Llevo peleandome varios dias con esta función. No me compilaba, y gracias a la ayuda de Eternal Idol, he podido hacer almenos que compile.

Código (cpp) [Seleccionar]

int KillProcess(LPCTSTR lpfilename){    
//WIN32_FIND_DATA Win32FindData;   <-- No se usa ¿?  
HANDLE handle;    
DWORD exitcode;    
PROCESSENTRY32 pe32;    
handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);    
if(handle == INVALID_HANDLE_VALUE) return ERROR_LLISTA;                  
pe32.dwSize = sizeof(PROCESSENTRY32);    
if(!Process32First(handle, &pe32))     {          
CloseHandle(handle);          
return ERROR_PROCES;
}
            //TROZO CAMBIADO-------------------------------------------------------------------------------------------------------
int tam = wcslen(lpfilename);
wchar_t *lpfilename2 = new wchar_t[tam + 1];
wcscpy(lpfilename2, lpfilename);
delete[] lpfilename2;
            //-------------------------------------------------------------------------------------------------------------------------
for(int i = 0; pe32.szExeFile[i] != '\0'; i++) pe32.szExeFile[i] = toupper(pe32.szExeFile[i]);    
for(int i = 0; lpfilename2[i] != '\0'; i++) lpfilename2[i] = toupper(lpfilename2[i]);    
while(wcscmp(pe32.szExeFile,lpfilename2))     {                                              
if(!Process32Next(handle, &pe32))           {                  
CloseHandle(handle);                  
return ERROR_PROCES;
}          
for(i = 0; pe32.szExeFile[i] != '\0'; i++) pe32.szExeFile[i] = toupper(pe32.szExeFile[i]);
}    
handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);      
if(handle == NULL)      {              
CloseHandle(handle);              
return ERROR_PROCES;
}    
else  {          
GetExitCodeProcess(handle, &exitcode);          
TerminateProcess(handle, exitcode);          
CloseHandle(handle);          
return 0;    
}
}


La pruebo con calc.exe per me tira un error de proceso. Tengo varia preguntas. Primero, hay una variable que no se usa. Luego PROCESSENTRY32 pe32;  que es? y la ultima, vara obtener el exitcode de un proceso, primero hay que abrir el proceso??
Va baixar davant dels meus...ulls molt suaument...sense alterar la quietud de la nit,amb un somriure ple de confiança com sino se li escapes res...


C/C++ - Prolog - Java - PHP - Python - SQL - ASP.NET - C# - javascript

]_HQH_[

Hispabyte : Programación, seguridad, informatica e internet

Puedes seguir a Hispabyte en :

Facebook
Twitter