Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - naderST

#291
La fecha déjala char* porque como piensas asignar 26/07/11 en un int? lo de octal es porque si le asignas a un int esto 09 el tomará el numero como octal y los números octales no incluyen el 9 (0-7).
#292
Buenas a todos ayer estuve viendo en el foro temas sobre inyección DLL, pero me puse a probar un código que encontré en el foro y no me funcionó. Aquí se los dejo si ven el problema háganme saber:

Código (cpp) [Seleccionar]


void inyectar(const char * dll, const char * proceso){
   DWORD  pId = pID(proceso);
   HANDLE hProceso = OpenProcess(PROCESS_ALL_ACCESS, false, pId);

   printf("DLL a inyectar: %s\nProceso: %d-%s\n", dll, pId,proceso);

   if(hProceso != NULL){
       LPVOID nLoadLibrary = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");

       if(nLoadLibrary == NULL)
           printf("LoadLibrary error\n.");

       LPVOID remoto = VirtualAllocEx(hProceso, NULL, strlen(dll), MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE);

       if(remoto == NULL)
           printf("Error reservando la memoria.\n");

       WriteProcessMemory(hProceso, (LPVOID)remoto, dll, strlen(dll), NULL);

       CreateRemoteThread(hProceso, NULL, NULL, (LPTHREAD_START_ROUTINE)nLoadLibrary, (LPVOID)remoto, NULL, NULL);
       CloseHandle(hProceso);
   }
}
#293

#include <stdio.h>
#include <stdlib.h>
#define NUM_COLUMNAS 100

int main()
{
    system("color 0A");
    system("title MAtRiX");

    char caracteres[] = "abcdefghijklmnopqrstuvwxyz10";
    int i;

    while(1){
        for(i=1; i<=NUM_COLUMNAS; i++){
            char caracter = caracteres[rand() % strlen(caracteres)-1];
            printf("%c ", caracter);
        }
        printf("\n");
    }

    return 0;
}
#294
Programación C/C++ / Re: Keep Alive Sockets
21 Julio 2011, 23:07 PM
Ya solucioné, era un problema que tenía en el hilo donde recibo los datos, los recibía mal y al parecer se cagaba el socket.
#295
En el case 4 te falta el break.
#296
Programación C/C++ / Keep Alive Sockets
21 Julio 2011, 04:26 AM
Buenas a todos, tengo un problema con sockets en windows. Me pasa lo siguiente tengo una única conexión de sockets y tengo un hilo que comprueba que la conexión este activa enviando un mensaje cada 2.5 segundos, el problema resulta que al usar send() en Windows 7 cuando la conexión no esta activa en vez de devolverme SOCKET_ERROR el programa crashea.

Código (cpp) [Seleccionar]

DWORD WINAPI keepalive(LPVOID){
   char KEEP_ALIVE = '\0';

   while(1){
      if(send(cnn, &KEEP_ALIVE, sizeof(char), 0) == SOCKET_ERROR){
           TerminateThread(hiloRecibir, 0);
           hiloCnn = CreateThread(NULL, 0, esperarCnn, 0, 0, 0);

           printf("WINSOCK: Desconectado.\n");

           ExitThread(0);
       }

       Sleep(2500);
   }
}


EDIT:

En Windows XP funciona perfectamente.
#297
No entiendo que quieres hacer pero en cualquier caso cual es el error que te da el compilador?
#298
Cita de: Littlehorse en 20 Mayo 2011, 01:07 AM
Se reservan en diferentes posiciones, tu problema es que vos estas viendo la dirección del puntero y no la dirección a la que apunta. La dirección del puntero va a ser siempre la misma porque en el ejemplo que pusiste es una variable local que se encuentra en la pila.

for(i=0;i<2;i++){
char * buffer = (char*)malloc(20);
printf("%d\n", buffer);
}


Ten en cuenta que haciendo esto pierdes todas las referencias anteriores a la ultima por lo tanto pierdes la posibilidad de liberar esa memoria. En todo caso podrías usar un arreglo de punteros.

Saludos


Gracias ;-) la verdad no había pensando eso pero ahora comprendo que era lo que estaba haciendo. :silbar:
#299
No se si es el titulo correcto pero mi duda es la siguiente tengo este código


#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i;

    for(i=1;i<=2;i++){
        char * buffer = (char*)malloc(20);
        printf("%d\n", &buffer);
    }

    return 0;
}


Quiero hacer que cada vez que se recorra el for buffer se cree en una diferente posición en la memoria.

#300
No entiendo la pregunta, no te almacena en persona.texto el texto con espacios?