Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - DaniekL

#1
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:

%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)

//A tool for transforming an ascii string to web hex
//IE: "test" == %74%65%73%74
#include <stdio.h>
#include <string.h>

int main(void) {

 char str[1024];
 int i;
 const char percent = 0x25;
 printf("Enter the text\n");
 scanf("%s", &str);
 for(i = 0; i < strlen(str); i++) {
   printf("%c%02x",percent, str[i]);
 }
 printf("\n");
 
#ifdef __WINDOWS__
 printf("\n\n");
 system("pause");
#endif
}


Espero que os guste este aporte y que os sea útil.  :rolleyes:
#2
Si puedes usar punteros lo que puedes hacer es "fingir" el array con las direcciones de memoria.

#include <stdio.h>
#include <stdlib.h>

int main(void) {

int *p, i, j, c=0;

p = malloc(sizeof(int)*10);
for(i=0;i<10;i++) {
printf("Introduzca un numero: ");
scanf("%d", p+(sizeof(int)*i));
for(j = 0; j < i; j++) {
if(*(p+(sizeof(int)*i)) == *(p+(sizeof(int)*j))) {
c++;
}
}
}
printf("Han ocurrido %d coincidencias\n", c);
return 0;
}
#3
Funcionó  ;D muchas gracias  :laugh:
#4
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:

$ 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:
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>

#define PORT 6667
#define SERVER "128.237.157.136"

int main(void) {

int sockfd;
struct sockaddr_in addr;

if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
printf("Error al crear el socket\n");
return 0;
}
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = inet_addr(SERVER);
bzero(&(addr.sin_zero), 8);

if(connect(sockfd, (struct sockaddr *) &addr, sizeof(struct sockaddr)) == -1) {
printf("Error al conectar al servidor\n");
}

return 0;
}
#5
Yo uso Archlinux, sí tienes paciencia es una distro genial  :xD. Sí eres un novato, lo suyo sería Linux Mint. Sí aun así quieres quedarte en Ubuntu, Xubuntu 12.04 es una opción muy interesante ;D.
#6
Funcionó cambiando el Widget a GtkTextView  :laugh:. Muchisimas gracias por la solución.  ;-) ;-) ;-)
#7
No se que tal andarás de programación... Pero, hacer un programa que lea los bytes a pelo y cree un nuevo archivo. (En Unix funcionaría, por eso de que todo es un fichero, pero en Windows no se...)
#8
Cita de: 0xDani en 23 Febrero 2013, 19:51 PM
Prueba a cambiar esta linea:

gtk_text_set_editable((GtkText *) text_box, TRUE);

Por esta:

gtk_text_set_editable(GTK_TEXT(text_box), TRUE);

Ya probe esa solución y no me funcionó, pero gracias de todas formas  :D
#9
Puse un link a pastebin con el código, pero bueno, posteo la función problemática igualmente.

void create_window(int argc, char **argv) {
    /**
     * Creates a GTK+ dialog for editing the note          
     */
    GtkWidget *window, *save_button, *text_box, *container;

    gtk_init(&argc, &argv);

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title((GtkWindow *) window, "Notes");
    gtk_window_set_default_size((GtkWindow *) window, 300,160);
    g_signal_connect((GObject *) window, "delete-event", (GCallback) gtk_main_quit, NULL);

    save_button = gtk_button_new_with_label("Save");
    g_signal_connect((GObject *) save_button, "clicked", (GCallback) save_note, NULL /*By the way*/);

    container = gtk_vbox_new(FALSE, 1);

    text_box = gtk_text_new(NULL, NULL);
    gtk_text_set_editable((GtkText *) text_box, TRUE);

    gtk_box_pack_start((GtkBox *) container, text_box, FALSE, FALSE, 0);
    gtk_box_pack_start((GtkBox *) container, save_button, FALSE, FALSE, 0);

    gtk_container_add((GtkContainer *) window, container);

    gtk_widget_show_all(window);
    gtk_main();
}
#10
No me explique bien :xD, ya edite explicandolo mejor.