Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: 0xDani en 2 Junio 2012, 14:58 pm



Título: No puedo compilar esto.
Publicado por: 0xDani en 2 Junio 2012, 14:58 pm
Hola, veran estoy haciendo el principio de un keylogger, y utilizo las librerias ncurses y fstream, pero al compilar si lo intento con Code::Blocks me saltan errores de 'undefined reference to wgetch' y asi con todas las funciones de la libreria ncurses, y si lo hago por terminal usando -lncurses me sale lo mismo pero con las funciones de fstream. ¿Que puedo hacer? :huh: :huh:

Les dejo el code:
Código:
#include <ncurses.h>
#include <fstream>
using namespace std;

char cadena1[250], cadena2[250], cadena3[250];

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

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

int main() {
 initscr();
 noecho();
 nodelay(stdscr, true);
 ofstream fs ("string.txt");
 while (1){
 if (kbhit()){fs << getch();   }
 refresh();
}
return 0; }


Saludos y gracias de antemano.


Título: Re: No puedo compilar esto.
Publicado por: yoxter en 3 Junio 2012, 01:38 am
Saludos

yo estoy un codeblocks que configure para usar clang y me compila sin problemas prueba usando
desde la linea de comandos




g++47 8.cpp -o test -I /usr/local/include/ -lcurses

clang++ 8.cpp -o test -I /usr/local/include/ -lcurses

creo que en linux es /usr/local/ la direcion

PD: el programa no funciona si lo terminas publicalo por favor


Título: Re: No puedo compilar esto.
Publicado por: 0xDani en 3 Junio 2012, 12:58 pm
Gracias por la info, lo intentare compilar asi, y se que no funciona porque en otros keyloggers lo que se hace es que se coge siempre el foco de la ventana actual, y eso el mio no lo hace, pero estaba probando el manejo de ficheros. Y si lo termino lo publicare, dalo por hecho.

Saludos ;D

EDITO:
Ya ha compilado, y he cambiado el codigo un poco, pero no se como hacer que coja el foco de la ventana actual(no me mencionen la API de windows, porfavor).

Dejo el codigo, lo he estado probando y funciona bastante bien, agradeceria que alguien me ayudara con lo del foco.
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; }


PD: Para compilar:  g++ 'ruta/de/la/fuente' -o klg   -lncurses.

Saludos de nuevo ;D