elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 59
41  Programación / Programación C/C++ / Re: ayuda con mi programa struct c en: 12 Marzo 2013, 07:08 am
grupo es un arreglo, debes acceder a un elemento de dicho arreglo con el operador [] para así poder acceder a los capos de la estructura alumno. Ej

grupo[0].precio
42  Programación / Programación C/C++ / Re: AYUDA CON VARIABLES CHAR en: 10 Marzo 2013, 08:15 am
Donde declaras la variable r como float, la declaras como char y en el scanf() utilizas %c y no %f.
43  Programación / Programación C/C++ / Re: Números capicúa en: 10 Marzo 2013, 00:21 am
Aquí tienes uno de N dígitos

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define N 30
  4.  
  5. char num[N + 1]; // N dígitos máximo
  6. int i, j, flag;
  7.  
  8. int main() {
  9.    printf("Número: ");
  10.    scanf("%s", num);
  11.  
  12.    j = strlen(num) - 1;
  13.    flag = 1;
  14.  
  15.    // Validar si es de un dígito
  16.    if(j == i)
  17.        flag = 0;
  18.  
  19.    while(j > i)
  20.        if(num[i++] != num[j--]) {
  21.            flag = 0;
  22.            break;
  23.        }
  24.  
  25.    if(flag)
  26.        printf("Es capicua\n");
  27.    else
  28.        printf("No es capicua\n");
  29.  
  30.    return 0;
  31. }
  32.  
44  Programación / Programación C/C++ / Re: ¿Ocultar menú en VC++ 2008? en: 9 Marzo 2013, 16:53 pm
Código
  1. wcex.lpszMenuName = MAKEINTRESOURCE(IDC_RICKROLL);

Cambia ese valor por NULL.
45  Programación / Programación C/C++ / Re: Consulta sobre dudas en: 7 Marzo 2013, 05:34 am
http://es.wikipedia.org/wiki/Dev-C%2B%2B
http://es.wikipedia.org/wiki/Microsoft_Visual_Studio

El resto lo investigas.
46  Programación / Programación C/C++ / Re: Guardar cada línea de un fichero en una estructura en: 5 Marzo 2013, 20:39 pm
nombre tiene un máximo de 20 caracteres, no se por qué utilizas 80. Qué problema te da?
47  Programación / Programación C/C++ / Re: Duda GetProcAddress en: 5 Marzo 2013, 03:38 am
Muchas gracias por la aclaratoria x64Core esa era mi duda
48  Programación / Programación C/C++ / Re: Duda GetProcAddress en: 5 Marzo 2013, 03:15 am
Mi duda me surge cuando vi este código:

Código
  1. #include <windows.h>
  2. #include <stdio.h>
  3.  
  4. typedef int (WINAPI *_MessageBoxA)(HWND, LPCTSTR, LPCTSTR, UINT);
  5.  
  6. struct sTDatos_MessageBoxA
  7. {
  8.    _MessageBoxA direccionMessageBoxA;
  9.    char titulo[255], texto[255];
  10. };
  11.  
  12. typedef struct sTDatos_MessageBoxA TDatos_MessageBoxA;
  13.  
  14. void Hilo_MessageBoxA(TDatos_MessageBoxA *datos)
  15. {
  16.    datos->direccionMessageBoxA(0, datos->texto, datos->titulo, 0);
  17. }
  18.  
  19. void Inyectar_MessageBoxA(DWORD pID, char* titulo, char* texto)
  20. {
  21.    DWORD tamFunc;
  22.    HANDLE tHandle, funcionRemota;
  23.    TDatos_MessageBoxA datos, *direccionDatosRemotos;
  24.    void* direccionFuncionRemota;
  25.  
  26.    tHandle = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_VM_OPERATION | PROCESS_VM_WRITE, 0, pID);
  27.  
  28.    datos.direccionMessageBoxA = (_MessageBoxA)GetProcAddress(GetModuleHandle("USER32.DLL"), "MessageBoxA");
  29.    sprintf(datos.titulo, titulo);
  30.    sprintf(datos.texto, texto);
  31.  
  32.    direccionDatosRemotos = (TDatos_MessageBoxA*)VirtualAllocEx(tHandle, 0, sizeof(TDatos_MessageBoxA), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
  33.    WriteProcessMemory(tHandle, direccionDatosRemotos, &datos, sizeof(TDatos_MessageBoxA), NULL);
  34.  
  35. tamFunc = (DWORD)Inyectar_MessageBoxA - (DWORD)Hilo_MessageBoxA;
  36.  
  37. direccionFuncionRemota = VirtualAllocEx(tHandle, 0, tamFunc, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
  38. WriteProcessMemory(tHandle, direccionFuncionRemota, (void*)Hilo_MessageBoxA, tamFunc, NULL);
  39.  
  40. funcionRemota = CreateRemoteThread(tHandle, NULL, 0, (LPTHREAD_START_ROUTINE)direccionFuncionRemota, direccionDatosRemotos, 0, NULL);
  41.  
  42. WaitForSingleObject(funcionRemota,INFINITE);
  43.   CloseHandle(funcionRemota);
  44.  
  45.   VirtualFreeEx(tHandle,direccionFuncionRemota,0,MEM_RELEASE);
  46.   VirtualFreeEx(tHandle,direccionDatosRemotos,0,MEM_RELEASE);  
  47.  
  48.   CloseHandle(tHandle);  
  49. }
  50.  
  51. int main()
  52. {
  53.    DWORD pID;
  54.    HWND hWnd;
  55.  
  56.    hWnd = FindWindow("SciCalc", NULL);
  57.  
  58.    if(hWnd!=NULL)
  59.    {
  60.        GetWindowThreadProcessId(hWnd, &pID);
  61.        Inyectar_MessageBoxA(pID, "descifra.me", "Codigo inyectado!");
  62.    }
  63.  
  64.    return 0;
  65. }
  66.  

Cómo es que al crear un hilo en otro proceso se puede utilizar esta dirección en el hilo creado en el otro proceso:

datos.direccionMessageBoxA = (_MessageBoxA)GetProcAddress(GetModuleHandle("USER32.DLL"), "MessageBoxA");

Me surge la duda porque la llamada a GetModuleHandle se hace en un proceso distinto.
49  Programación / Programación C/C++ / Duda GetProcAddress en: 5 Marzo 2013, 02:41 am
Buenas a todos, he visto varios códigos donde hacen algo como esto:

Código
  1. GetProcAddress(GetModuleHandle("user32.dll"), "MessageBoxA");
  2.  

Entiendo que obtiene la dirección de memoria de la función MessageBoxA, pero lo que no logro entender es cómo es que es la misma dirección para todos los procesos? No se si me explico bien, pero no entiendo como funciona esto.
50  Programación / Programación C/C++ / Re: Problema con ejercicio de clase (Estructuras de selección) en: 4 Marzo 2013, 13:22 pm
(((mes<1) || (mes>12))

Si el mes es menor a uno y mayor a doce? Esto sería más bien así:

mes>=1 && mes<=12

Todas las comparaciones las deberías hacer estrictamente, es decir, mayor o igual y menor o igual

EDIT:

No te hace falta la comparación del rango en el cual está comprendido el mes, ya que compruebas directamente con el número del mes.
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 59
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines