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).
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ú
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);
}
}
#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;
}
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);
}
}
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
la verdad no había pensando eso pero ahora comprendo que era lo que estaba haciendo.
#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;
}