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 - harry_the_blogger

#31
Hola, amigos. Estoy desarrollando una aplicacion de login que permite la creacion de nuevos usuarios. Para hacerlo, primero debe saber si ya existe, antes de insertarlo.

He estado buscando en la web, y aparecen algunos métodos, pero siempre son aplicados a lenguajes diferentes a C/C++. Usan Java, y demás, y esas soluciones no son convertibles a C++.

Estoy usando la libreria de SQlite en C/C++. Pero no consigo obtener algo que me pueda ayudar a saber si ya existe un registro.

Intenté hacer un SELECT para que retorne los usarios existentes bajo ese nick, y luego medir la cantidad de resultados, si es mayor a 0, existe. Pero no he podido implementarlo en C/C++, no consigo como hacerlo.

Gracias de antemano. Seguiré buscando en otras fuentes también...
#32
Gracias por responder. No he podido solucionarlo!! He tratado de hacer lo que me dijo TCollins

Cita de: rir3760 en 28 Octubre 2014, 02:28 AM
Cierto, falta ese encabezado.
La función strncpy es parte de la biblioteca estándar de C.

Un problema con ella es que copia los caracteres del origen al destino, como máximo los indicados por su tercer argumento pero si copia ese máximo no agrega el terminador de cadena '\0', en su lugar se puede utilizar la función sprintf en la forma:
/* strncpy(current_instruction, current_line, 16); */
sprintf(current_instruction, "%.*s", 15, current_line);


Un saludo

Pero aún así falla. ¿Podría alguien decirme alguna otra forma de conseguir comparar la linea actual con una instruccion??? Gracias.
#33
Hola, amigos. Estoy desarrollando un programa que rellena las casillas de un array con una X según la posicion y las ordenes que se indiquen desde un fichero de texto que actúa como script.

En cuanto al programa, mi único problema está en la parte en donde interpreta los scripts.

Voy dividiendo linea por linea usando strtok(...), y hasta ahí todo bien. Copio el contenido del puntero que devuelve strtok hacia un buffer de 16 caracteres para no tener que preocuparme por cosas raras con punteros.

El problema viene cuando intento usar strcmp(...) para ver si la linea actual coincide con la instruccion "fill" o "inc_x". Cuando lo hace, el programa crashea.

¿Podría alguien ayudarme a solucionar mi problema, o darme una mejor idea de como hacerlo? Gracias de antemano

Código (cpp) [Seleccionar]

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

#define NROWS 5//32
#define NCOLUMNS 5//32
int parse_script(char filename[]){
   unsigned int x = 0;
   unsigned int y = 0;
   char array[NROWS][NCOLUMNS];
   unsigned int file_size;
   unsigned int i = 0;

   FILE *script_file;
   char *script_content;
   char *current_line;
   char current_instruction[16];

   for(x = 0; x < NCOLUMNS; x++){
       for(y = 0; y < NROWS; y++){
           array[x][y] = 'O';
       }
   }

   ///First step, read all file content before preprocess it.
   script_file = fopen(filename, "r");

   ///If all is good, get the size of file
   fseek(script_file, 0, SEEK_END);
   file_size = (unsigned long ) ftell(script_file);
   rewind(script_file);

   ///Resize the array to the size of file
   script_content = (char *) calloc (1, (size_t) file_size);

   ///Read the data from the file and put it in the array
   fread((char *)script_content, file_size, 1, script_file);    ///Last step: Free resources

   ///Second step: Execute instruction by instruction
   ///The program must divide the content in lines using \n
   x = 0;
   y = 0;
   char delimiters[] = "\r\n";
   current_line = strtok((char *) script_content, delimiters);//argumentos: frase, caracter delimitador
   while(current_line != NULL)
   {

      strncpy(current_instruction, current_line, 16);
      printf("%s \n", current_line);

      ///Here, the program must analyze the instruction and take an action
      if(strcmp("fill", current_instruction) == 0){
           array[x][y] = 'X';
       
      }

      if(strcmp("inc_x", current_instruction) == 0){
           x++;
           
      }

      current_line = strtok(NULL, delimiters);
   }

   ///Third step: Show array.
   printf("\nThe content of the array is: \n");
   for(x = 0; x < NCOLUMNS; x++){
       for(y = 0; y < NROWS; y++){
           printf("%c", array[x][y]);
           printf(" ");
       }
       printf("\n");

   }
   printf("End of array. Thanks for use my program\n");

   free(script_content);
   fclose(script_file);
}

int main(int argc, char *argv[])
{
   if(argc < 2)
       return -1;

   

   if(strcmp(argv[1], "-w") == 0){
       parse_script(argv[2]);
       return 0;
   }

   printf("Invalid command!!\n");

   return 0;
}



Fichero de prueba usado (escribir su ruta en la linea de comandos como parametro despues del nombre del ejecutable):

Código (asm) [Seleccionar]

fill
inc_x
#34
A mi también me apareció. Y me dice que el foro el hacker no estaba disponible. Eso fue como hace unas horas, como en la tarde (hora de Colombia). No sé por que foro el hacker tendrá últimamente tantas interrupciones de servicio.

Ayer o anteayer me apareció que la página web no está disponible.
#35
Ah, gracias por el link. Solo quería pedir una tercera opinion. Ya los estoy analizando a ver que tal están.

Quisiera que me dieran ideas. Sé que es posible que no me den código (porque si no me equivoco el foro lo prohibe, al menos eso creí ver en las reglas cuando las leí). Pero si alguna idea de como tratar las instrucciones de forma fácil, porque es algo engorroso mantener los datos sobre los prefijos, si es one-byte opcode o two-byte op, etc.

Cuando haya avanzado más, puedo seguir publicando mis dudas aqu. ¿cierto?. XD.
#36
Hola, estoy desarrollando un motor metamorfico. Sé que es algo dificil, pero si uno no empieza no acaba nunca. XD.

Bueno, el problema es el siguiente: Necesito ayuda sobre como generar las instrucciones equivalentes: Imaginemos que tengo un:

Código (asm) [Seleccionar]

;En sintaxis FASM
mov [variable], eax


Podría ser reemplazado por un:

Código (asm) [Seleccionar]

;En sintaxis FASM
push eax
pop [variable]


¿Como podría lograr eso? Tengo una idea, pero no sé si será la mejor opción:


  • Analizar el source y el destino
  • Aplicar source a un push
  • Aplicar destino a un pop


¿Será que alguien me puede dar una idea de como intercambiar las instrucciones? Ya he leído los manuales de Intel bastantes veces, y por lo menos lo básico lo entiendo. Quisiera una ayudadita, porque el tema de los motores metamorficos está algo díficil de implementar.

Gracias a todos de antemano.
#37
Pienso, que en mi opinion suelen fallar en la parte de proteger al sistema de modificaciones en el navegador. Los antivirus en muchas ocasiones creen que porque un usuario ejecutó un programa, el programa debe tener todos los derechos a hacer lo que le viene en gana.

Me ha pasado que descargo un instalador, y sin darme cuenta, viene con una de esas barras maliciosas y que te redireccionan de paginas web. El antivirus, solo porque ejecute el instalador, creyó que podía dejar modifcar cualquier cosa. En mi caso estoy hablando de Windows. (Aunque hablar de malware es sinonimo de Windows XD).

También en muchas ocasiones fallan en análisis dinámico. Porque si no encuentran el binario infectado, creen que está sano. Aunque el Avast! es muy pilas en eso.
#38
Oye MichBukana, entré en tu blog y me descargué el programa 'AAD google dorking' o algo así (una herramienta para google hacking). Mi PC dice 'Esta aplicacion no es valída'.

¿Será que tiene algún virus? La descargué desde SourceForge. Por favor corrige el problema.
#39
Gracias ThePinkPanther. Me has ayudado a resolver mi problema. Daré este tema por solucionado.
#40
Hey, buena idea!!! Que bueno que es open-source!! XD. Me anotaré en tu blog. XD. Espero que tengas éxito con tu idea. Ya ni en un fichero HTML se puede confiar...