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

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / [Aporte] Herramienta para transformar a ascii web en: 19 Junio 2013, 13:25 pm
Buenas, he hecho una pequeña tool en C para transformar una cadena ascii a hexadecimal.

Es practicamente inutil, pero la idea es automatizarlos  ;D ;D

La idea es usarlo en cosas como el XSS en webs que filtran las cadenas, pero no los valores hexadecimales.

Por ejemplo, el típico XSS ("><script>alert(42);</script>) se vería asi:

Código:
%22%3e%3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%34%32%29%3b%3c%2f%73%63%72%69%70%74%3e

El código es este (vale tanto para Unix como para Windows  :D)

Código
  1. //A tool for transforming an ascii string to web hex
  2. //IE: "test" == %74%65%73%74
  3. #include <stdio.h>
  4. #include <string.h>
  5.  
  6. int main(void) {
  7.  
  8.  char str[1024];
  9.  int i;
  10.  const char percent = 0x25;
  11.  printf("Enter the text\n");
  12.  scanf("%s", &str);
  13.  for(i = 0; i < strlen(str); i++) {
  14.    printf("%c%02x",percent, str[i]);
  15.  }
  16.  printf("\n");
  17.  
  18. #ifdef __WINDOWS__
  19.  printf("\n\n");
  20.  system("pause");
  21. #endif
  22. }

Espero que os guste este aporte y que os sea útil.  :rolleyes:
2  Programación / Programación C/C++ / Problema con sockets en linux en: 6 Marzo 2013, 19:07 pm
Buenas, tengo este código que su idea es ser un pequeño cliente de irc, pero por ahora solo crea y conecta el socket. El problema viene al compilar:

Código:
$ gcc ircclientlinux.c 
ircclientlinux.c: En la función ‘main’:
ircclientlinux.c:13:21: error: no se conoce el tamaño de almacenamiento de ‘addr’

El código es el siguiente:
Código
  1. #include <unistd.h>
  2. #include <string.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <sys/socket.h>
  6.  
  7. #define PORT 6667
  8. #define SERVER "128.237.157.136"
  9.  
  10. int main(void) {
  11.  
  12. int sockfd;
  13. struct sockaddr_in addr;
  14.  
  15. if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
  16. printf("Error al crear el socket\n");
  17. return 0;
  18. }
  19. addr.sin_family = AF_INET;
  20. addr.sin_port = htons(PORT);
  21. addr.sin_addr.s_addr = inet_addr(SERVER);
  22. bzero(&(addr.sin_zero), 8);
  23.  
  24. if(connect(sockfd, (struct sockaddr *) &addr, sizeof(struct sockaddr)) == -1) {
  25. printf("Error al conectar al servidor\n");
  26. }
  27.  
  28. return 0;
  29. }
3  Programación / Programación C/C++ / [Solucionado] Problema con GtkText [Linux][GTK+] en: 23 Febrero 2013, 11:14 am
Buenas;

Estoy programando una aplicación para tomar notas, la idea es que conky ejecute la parte de leer notas y yo la parte de crear una nueva. Como es obvio para tomar la nota necesito una textbox, bien, como en el ordenador que voy a usar este programa usa OpenBox he decidido hacerla en Gtk+ (la versión 2.0 más concretamente).

El problema viene cuando compilo el código. Me da el siguiente error:

Código:
$ gcc -o notes notes.c `pkg-config --cflags gtk+-2.0 --libs`
notes.c: En la función ‘main’:
notes.c:22:3: aviso: declaración implícita incompatible de la función interna ‘exit’ [activado por defecto]
notes.c:34:4: aviso: declaración implícita incompatible de la función interna ‘exit’ [activado por defecto]
notes.c: En la función ‘create_window’:
notes.c:88:11: aviso: la asignación crea un puntero desde un entero sin una conversión [activado por defecto]
notes.c:89:25: error: ‘GtkText’ no se declaró aquí (primer uso en esta función)
notes.c:89:25: nota: cada identificador sin declarar se reporta sólo una vez para cada función en el que aparece
notes.c:89:34: error: expected expression before ‘)’ token

El fallo sobretodo es que identifique GtkText, que es un GtkWidget, como una función. Me han dicho que podría ser un fallo con los includes, pero no tengo ni idea de como arreglarlo.

Gracias de antemano.
El código: http://pastebin.com/i8t8X4L7
4  Programación / Programación C/C++ / Problemas con el compilador [Solucionado] en: 8 Abril 2012, 23:56 pm
Hola.

Verán, estoy haciendo un programa que lee una lista de palabras y las compara con una lista de letras.
Aquí de lo muestro

Código
  1. //drawsomething.c
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5. #define PATH = "/home/daniel/.drawsom/wordlist" //El PATH del fichero
  6.  
  7. //Funcion que muestra el uso y sale
  8. void usage(char *s) {
  9. printf("\t-----Usage-----\n\nTo add a word use: %s -a <the_word>\nTo find a word use: %s <length_of_the_word> <the_possible_letter>\n", s, s);
  10. exit(0);
  11. }
  12.  
  13. //Añade una nueva palabra a la lista
  14. void add(char *word) {
  15. FILE *wordlist;
  16. wordlist = fopen(PATH, "w");
  17. if(wordlist == NULL) {
  18. printf("[Fatal Error!!] while opening wordfile\nAborting...\n");
  19. exit(0);
  20. }
  21. fwrite(word, sizeof(word), 1, wordlist);
  22. fclose(wordlist);
  23. }
  24. //Funcióm que busca la palabra
  25. void find(int tamano, char *l) {
  26. FILE *wordlist;
  27. char letters[13], *aux;
  28. int check, i; /*check comprueba si la palabra leida contiene las letras que pasamos como argumento.
  29.                       Si check es mayor o igual que el tamaño de la palabra, esta cumple las caracteristicas*/
  30. strcpy(letters, l);
  31. letters[12] = '\0';
  32. wordlist = fopen(PATH, "r");
  33. if(wordlist == NULL) {
  34. printf("[Fatal Error!!] while opening wordfile\nAborting...\n");
  35. exit(0);
  36. }
  37. aux = fgets(NULL, 15, wordlist);
  38. while(aux != NULL) {
  39. if(strlen(aux) == tamano) {
  40. for(i = 0; i < 12; i++) {
  41. if(strstr(aux, letters[i]) != NULL) {
  42. check++;
  43. }
  44. }
  45. if(check >= tamano) {
  46. printf("%s\n", aux);
  47. }
  48. }
  49. aux = fgets(NULL, 15, wordlist);
  50. }
  51. }
  52.  
  53. int main(int argc, char *argv[]) {
  54. if(argc < 3)
  55. usage(argv[0]);
  56. if(strcmp(argv[1], "-a"))
  57. add(argv[2]);
  58. else
  59. find(atoi(argv[1]), argv[2]);
  60. return 0;
  61. }

El problema viene cuando lo compilo. Uso el gcc y me arroja este resultado:
Código:
drawsomething.c: En la función ‘add’:
drawsomething.c:13:19: error: expected expression before ‘=’ token
drawsomething.c: En la función ‘find’:
drawsomething.c:28:19: error: expected expression before ‘=’ token
drawsomething.c:37:5: aviso: el paso del argumento 2 de ‘strstr’ crea un puntero desde un entero sin una conversión [activado por defecto]
/usr/include/string.h:342:14: nota: se esperaba ‘const char *’ pero el argumento es de tipo ‘char’

He revisado los errores pero no veo el fallo y como el compilador lleva tiempo haciendo cosas raras pues a lo mejor es un fallo (sin ofender al gran Stallman   :laugh: :laugh: :laugh:) por que ademas, sale que tengo errores en la libreria string.h.

Si alguien tiene la solución al problema (que me jugaría el brazo a que es una chorrada) le agradeceía mucho que me ayudase.  ;-)

Gracias. Un abrazo.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines