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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  FindWindow() funciona bien bajo win Vista?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: FindWindow() funciona bien bajo win Vista?  (Leído 2,631 veces)
Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
FindWindow() funciona bien bajo win Vista?
« en: 16 Agosto 2010, 10:30 am »

Buenas a todos, recientemente hice un pequeño codigo en C++ para dopar una aplicacion, bajo windows XP funciona perfectamente pero cuando la quiero correr en Vista nada:

Código
  1. #include <iostream>
  2. #include <windows.h>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. HWND hVentana;
  9.  
  10. if (!(hVentana = FindWindow(NULL,"ProgramaCrackeado")))
  11. {
  12. MessageBox(NULL,"No se pudo encontrar la ventana","Error",MB_OK);
  13. return -1;
  14. }
  15. }
  16.  
Necesito conseguir el Handle de la ventana para obtener el PID del proceso y modificar sectores concretos de su memoria.

Lo que ocurre es que parece no encontrar la ventana puesto que el nombre es correcto, porque lo hago con la calculadora de windows y ocurre exactamente lo mismo, nunca encuentra la ventana, asi que puse el parametro del nombre como null y segun MSDN deben coincidir todas las ventanas con esa "Busqueda" pero ocurrian cosas indeseadas pues injectaba en memoria de procesos que no queria injectar.


Como lo mas probable es que este deprecated o en Vista no funcione, queria preguntar si existe alguna otra manera de obtener el PID de un proceso en ejecucion.



En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: FindWindow() funciona bien bajo win Vista?
« Respuesta #1 en: 16 Agosto 2010, 12:22 pm »

A simple vista debería funcionar, llama a GetLastError luego de FindWindow para tener una idea de donde proviene el error.

En cuanto al PID, hay demasiadas formas para obtenerlo, un ejemplo básico podría ser este:

Código
  1. DWORD ProcessID;    
  2. HANDLE Handle;
  3. PROCESSENTRY32 ProcI;
  4.  
  5. Handle=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
  6. ProcI.dwSize=sizeof(PROCESSENTRY32);
  7.  
  8. while(Process32Next(Handle,&ProcI))
  9.     if(!strcmp(ProcI.szExeFile,"ejemplo.exe"))
  10.        ProcessID=ProcI.th32ProcessID;
  11.  
  12. std::cout<<ProcessID<<std::endl;
  13. CloseHandle(Handle);
  14.  

Por supuesto agregándole los chequeos que corresponden.

CreateToolhelp32Snapshot
Process32First
Process32Next

Pero obviamente hay infinidad de métodos y combinaciones, por ejemplo utilizando funciones como:

GetWindowThreadProcessId
GetProcessId
OpenProcess
EnumProcesses

Incluso llamadas nativas como ZwQueryInformationProcess. Un largo etc.

También hay que tener en cuenta el contexto de seguridad de cada proceso y los privilegios de acceso. Podes leer sobre eso aquí

Saludos


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: FindWindow() funciona bien bajo win Vista?
« Respuesta #2 en: 16 Agosto 2010, 13:09 pm »

Muchisimas gracias, excelente respuesta, en cuanto a la seguridad del proceso creo eso ocurre cuando intento escribir o leer memoria, pero por lo que veo hay maneras de saltarlo.

Saludos
En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: FindWindow() funciona bien bajo win Vista?
« Respuesta #3 en: 16 Agosto 2010, 15:18 pm »

a mi me va bien
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿MSADODC.OCX no se lleva bien con Windows Vista?
Programación Visual Basic
invisible_hack 0 3,874 Último mensaje 26 Noviembre 2010, 21:43 pm
por invisible_hack
Problemas con FindWindow
Programación C/C++
Julio0 1 4,931 Último mensaje 2 Octubre 2020, 19:00 pm
por Eternal Idol
Esta bien mi reloj? (Sed sinceros bajos puntos de vista diferentes)
Foro Libre
Terminator5 4 4,102 Último mensaje 12 Julio 2022, 00:25 am
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines