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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Ayuda] Injector Messageboox
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda] Injector Messageboox  (Leído 3,184 veces)
Luchoz95

Desconectado Desconectado

Mensajes: 58


Ver Perfil
[Ayuda] Injector Messageboox
« en: 4 Marzo 2013, 17:52 pm »

Holaaa genteee, ando con un problema , el otro dia lei un codigo que subieron en este foro, que es el siguiente

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.  


el problema surge que no se logra injectar el codigo en la calculadora, abro la calculadora y ejecuto ese codigo y no pasa nada, alguien sabe si copie mal el codigo o algo ? por lo que tengo entendido no tengo ningún error
Saludos


En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [Ayuda] Injector Messageboox
« Respuesta #1 en: 4 Marzo 2013, 20:12 pm »

Hola

La causa podria ser entre varias, por ejemplo si estas compilando en modo release y las opciones que estas pasando al compilador,
otro es en que sistema operativo estas intentando ejecutarlo en un windows de 64bits programas tales como esos estan compilandos para 64 bits pero existen versiones de 32 bits en la sysWow64 ( verifica de ejecutar la version correcta ) debido a que este metodo
no funciona para inyectar de 32 bits a un proceso de 64 bits, otro problema puede ser el nombre de la clase de la calculadora en Win7 64 bits el nombre de la clase es: "CalcFrame"


« Última modificación: 4 Marzo 2013, 21:02 pm por x64Core » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [Ayuda] Injector Messageboox
« Respuesta #2 en: 4 Marzo 2013, 22:02 pm »

Creo que como te dijo x64Core SciCalc no coincide con la calculadora de Windows PERO lo que tenes que hacer es DEPURAR el programa linea y por linea y ver que devuelven las llamadas a la API.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Luchoz95

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: [Ayuda] Injector Messageboox
« Respuesta #3 en: 4 Marzo 2013, 22:55 pm »

El sistema operativo que uso es el W7 32 bits , nose a te referis modo relaese y la opciones de mi compilador , Saludos!
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [Ayuda] Injector Messageboox
« Respuesta #4 en: 4 Marzo 2013, 23:36 pm »

El sistema operativo que uso es el W7 32 bits , nose a te referis modo relaese y la opciones de mi compilador , Saludos!
Entonces seguramente es el nombre de la clase, verificarlo, de lo contrario depura tu codigo como dijo EI  :)
Respecto a las opciones del compilador eso podría afectar el compilador por lo general crea una tabla con punteros a las funciones y esto afecta cuando haces referencias a funciones basándote en el hecho de la posición de las funciones ( como en este ejemplo ). cuando haces referencia al inicio de la funcion en realidad estas haciendo referencia a la posicion de memoria donde esta almacenado el puntero a la función y los resultados no son los que se esperan.

Además siempre es muy recomendable usar los valores de retonos de las funciones no solo por el hecho que funcione en una version de Windows significa que funcionara siempre. Y además solo por información, también podria ser el token de seguridad del proceso que intenta hacer la inyección. Lo mejor por ahora seria depurar el código.
En línea

Luchoz95

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: [Ayuda] Injector Messageboox
« Respuesta #5 en: 5 Marzo 2013, 01:53 am »

perdon pero no entiendo cuando te referis al nombre de la clase, y depurar tampoco nunca lo hice,
pd: estoy usando Codeblocks
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [Ayuda] Injector Messageboox
« Respuesta #6 en: 5 Marzo 2013, 02:11 am »

perdon pero no entiendo cuando te referis al nombre de la clase, y depurar tampoco nunca lo hice,
pd: estoy usando Codeblocks

http://en.wikipedia.org/wiki/Window_class en el codigo se ha escrito "SciCalc", existen varias herramientas para saber el nombre
de la clases de una ventana por ejemplo: spy++ de microsoft, La version más actulizada la podes encontrar entre las herramientas que vienen con Visual Studio professional ( no express ).

Y aprender a depurar tus propios programas y utilizar la funcion GetlastError. Recomiendo VC++.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
SQL Power Injector
Nivel Web
Guide_Shen 1 4,668 Último mensaje 18 Julio 2007, 13:40 pm
por yeikos
arm7 injector (Nintendo DS patcher)
Juegos y Consolas
Shutdown -r 0 11,818 Último mensaje 24 Marzo 2008, 20:21 pm
por Shutdown -r
web crackeador o injector vb6
Programación Visual Basic
xakalw00f 0 1,608 Último mensaje 28 Mayo 2008, 04:40 am
por xakalw00f
Como Undetectar un Injector Dll « 1 2 »
Análisis y Diseño de Malware
LCheats 13 11,827 Último mensaje 30 Diciembre 2011, 23:27 pm
por flyingwifi
[DLL INJECTOR] DuDa Hacking de DLL
Programación C/C++
DCross 0 1,724 Último mensaje 4 Septiembre 2012, 01:22 am
por DCross
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines