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
#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;
}