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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14
51  Programación / Programación C/C++ / Re: [aporte]c keylogger solo con abrirlo se instala en: 16 Junio 2013, 11:53 am
me parece muy interesante el codigo pero yo creo que en la zona donde haces uso de muchos condicionales if podrias haber usado in switch y hacer el codigo mas eficiente ya que solo entraria en uno de esos if pero la comprobacion seria en todos y con el switch no es asi. Otro detalle es como se lo tomaran los antivirus jejeje.
52  Programación / Programación C/C++ / Re: [aporte][c]encontrar subcadenas y su posicion en: 16 Junio 2013, 11:43 am
¿Y por que no usar lo que ya existe como es strstr de string.h? Le indicas la cadena y la subcadena a buscar y te devuelve la posicion de esta si la encuentra, y si la encuentra pues vuelves a usarla pero esta vez empiezas a buscar desde el resultado obtenido mas 1 y asi hasta llegar al final de la cadena.
53  Programación / Programación C/C++ / Re: Ayuda con ListBox y TextBox en: 16 Junio 2013, 11:34 am
no tengo pc a mano y el movil no me deja poner intros asi que te lo pondre de corrido aunque una pregunta antes de nada ¿el listbox no te deja poner varias columnas y ocultar la columna deseada? por cierto en el movil no tengo corchetes ni nada parecido asi que los pongo con parentesis:    double array(2) = (2.22, 3.55);   en el evento onclick del listbox seria algo asi:   try(   TextEditX->Text = FormatFloat("000.00", array(ListBoxX->Items->Index);  )catch(...)( ShowMessage("Hubo un error al obtener el precio del producto.") )   Siento no poder ponertelo identado, con sus corchetes, y probado antes pero a ver si con eso te puede servir de ayuda. Si te deja poner varias columnas en el listbox la cosa es aun mas facil.
54  Programación / Programación C/C++ / Re: [Ayuda]Sumar elementos de un listBox y mostrarlos en un textBox en: 16 Junio 2013, 00:55 am
No tengo ahora mismo el builder delante para probarlo pero seria algo asi:

Código
  1.     float suma=0;
  2.  
  3.     try
  4.     {
  5.         for(int i = 0; i < listBox3->Items->Count; i++)
  6.         {
  7.            suma += listBox3->Items->Item[i].ToDouble;
  8.         }
  9.         txtTotal->Text=AnsiString(suma));
  10.    }
  11.    catch(...)
  12.    {
  13.         ShowMessage("Algun valor no es de tipo float");
  14.    }

Con eso sumas todos los elementos de un ListBox.
55  Programación / Programación C/C++ / Re: Función readdir en: 14 Junio 2013, 18:00 pm
este post está duplcado, ya te contesté en el otro.  ;)
56  Programación / Programación C/C++ / Re: Función readdir en: 14 Junio 2013, 16:31 pm
No lo he comprobado pero es una idea:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <Windows.h>
  5.  
  6. int main(int argc, char* argv[])
  7. {
  8.        HANDLE hFind;
  9.        WIN32_FIND_DATA busqueda;
  10.        char ruta[] ={"C:\\Documents and Settings\\Administrador\\Mis documentos\\*.txt"};
  11.        char control[256];
  12.        int fin = 0;
  13.  
  14.        hFind = FindFirstFile(ruta,&busqueda);
  15.        if(hFind != -1)
  16.        {
  17.                printf("Archivos con extension txt\n"
  18.                       "--------------------------\n");
  19.                printf("%s\n", busqueda.cFileName); //Mostramos por pantalla el archivo encontrado
  20.  
  21.                while(fin == 0)
  22.                {
  23.                        strcpy(control, busqueda.cFileName);
  24.                        FindNextFile(hFind,&busqueda); //buscamos el siguiente archivo
  25.                        if(strcmp(control, busqueda.cFileName) == 0) // Si son iguales es porque ya llegamos al ultimo archivo del directorio
  26.                        {
  27.                                printf("\nYa no hay mas archivos con esa extension.\n\n");
  28.                                fin = 1;
  29.                        }else{
  30.                                printf("%s\n", busqueda.cFileName); //Mostramos por pantalla el archivo encontrado
  31.                        }
  32.                }
  33.        }
  34.        system("PAUSE");
  35.        return 0;
  36. }
57  Programación / Ingeniería Inversa / Re: Eliminar atajo de teclas en: 13 Junio 2013, 12:14 pm
No estoy muy seguro de lo que planteo pero se que existe la posibilidad de, desde mi proceso, crear un hilo que corra en el espacio de memoria del otro proceso. Creo que se hacia con CreateRemoteThread o algo asi. ¿se podria hacer eso para inyectar codigo al otro proceso y desde el mismo proceso hacer que guarde el contenido? Ya digo que no se si se puede o no porque nunca he tratado ese tema pero se que algo de eso existe pero si me dices que desde otro proceso no puedo obtener el contenido del objeto, quizas con esto si que podria ¿no?
58  Programación / Programación C/C++ / Re: Necesito ayuda urgente en: 13 Junio 2013, 11:16 am
Te pongo el codigo modificado para que lo puedas ver con el uso de arrays de structuras:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define SIZEMAX 10 //Indicamos el numero maximo de registros
  6.  
  7. struct stRegistro {
  8.        int ID;
  9.        char nombre[25];
  10.        int cantidad;
  11. };
  12.  
  13. int Menu(void);
  14. void ChangeStock(char *operacion, struct stRegistro *reg);
  15. void MostrarCabecera(void);
  16. void MostrarProducto(long n, struct stRegistro *reg);
  17. long LeeNumero(void);
  18. int Borrar(struct stRegistro *reg, long numero);
  19. int Confirmar(char *operacion);
  20. int CountReg(struct stRegistro *reg);
  21. //--------------------------------------------------------------------------
  22.  
  23. int main()
  24. {
  25.        struct stRegistro reg[SIZEMAX];
  26.        struct stRegistro aux;
  27.        char nombre[25];
  28.        int i, opcion, nRegistros, encontrado, ID, retval;
  29.        long numero;
  30.  
  31.        memset(reg, 0, sizeof(reg));
  32.        do {
  33.                opcion = Menu();
  34.                switch(opcion) {
  35.                        case '1': // Añadir o incrementar el stock
  36.                                encontrado = 0;
  37.                                nRegistros = CountReg(reg);
  38.                                ChangeStock("Añadir al stock", &aux);
  39.                                for(i = 0; i<nRegistros; i++)
  40.                                {
  41.                                        if(strcmp(aux.nombre, reg[i].nombre) == 0 &&
  42.                                           Confirmar("incremenar la existencia del producto indicado") == 1)
  43.                                        {
  44.                                                reg[i].cantidad += aux.cantidad;
  45.                                                encontrado = 1;
  46.                                                printf("\nSe a incrementado satisfactoriamente el stockaje del producto.\n\n");
  47.                                                break;
  48.                                        }
  49.                                }
  50.                                if(encontrado == 0 && Confirmar("incorporar un nuevo producto al stock") == 1)
  51.                                {
  52.                                        if(nRegistros == 0)
  53.                                                ID = 1;
  54.                                        else
  55.                                        {
  56.                                                ID = reg[i-1].ID + 1;
  57.                                        }
  58.                                        reg[i].ID = ID;
  59.                                        strcpy(reg[i].nombre, aux.nombre);
  60.                                        reg[i].cantidad = aux.cantidad;
  61.                                        printf("\nSe ha añadido satisfactoriamente una nueva entrada al stockage.\n\n");
  62.                                }
  63.                                system("PAUSE");
  64.                                break;
  65.                        case '2': // Ventas de stockaje
  66.                                encontrado = 0;
  67.                                nRegistros = CountReg(reg);
  68.                                ChangeStock("Venta de stockaje", &aux);
  69.                                for(i = 0; i < nRegistros; i++)
  70.                                {
  71.                                        if(strcmp(aux.nombre, reg[i].nombre) == 0)
  72.                                        {
  73.                                                encontrado = 1;
  74.                                                if(aux.cantidad <= reg[i].cantidad)
  75.                                                {
  76.                                                        reg[i].cantidad -= aux.cantidad;
  77.                                                        printf("\nLa venta se ha realizado satisfactoriamente.\n\n");
  78.                                                }else{
  79.                                                        printf("\nNo hay suficiente stockaje de ese producto para esta venta.\n");
  80.                                                        MostrarCabecera();
  81.                                                        MostrarProducto(i, &reg[i]);
  82.                                                        printf("|---------|-------------------------|--------|\n\n");
  83.                                                }
  84.                                                break;
  85.                                        }
  86.                                }
  87.                                if(encontrado == 0)
  88.                                {
  89.                                        printf("\nNo se puede encontrar el producto indicado.\n\n");
  90.                                }
  91.                                system("PAUSE");
  92.                                break;
  93.                        case '3': // Mostrar stock de un producto por su ID
  94.                                encontrado = 0;
  95.                                system("cls");
  96.                                printf("Buscar stock por ID: ");
  97.                                ID = LeeNumero();
  98.                                nRegistros = CountReg(reg);
  99.                                for(i = 0; i < nRegistros; i++)
  100.                                {
  101.                                        if(ID == reg[i].ID)
  102.                                        {
  103.                                                encontrado = 1;
  104.                                                MostrarCabecera();
  105.                                                MostrarProducto(i, &reg[i]);
  106.                                                break;
  107.                                        }
  108.                                }
  109.                                if(encontrado == 0)
  110.                                {
  111.                                        printf("\nNo se puede encontrar el producto indicado.\n\n");
  112.                                }
  113.                                else
  114.                                {
  115.                                        printf("|---------|-------------------------|--------|\n\n");
  116.                                }
  117.                                system("PAUSE");
  118.                                break;
  119.                        case '4': // Mostrar stock de un producto por su nombre
  120.                                encontrado = 0;
  121.                                system("cls");
  122.                                printf("Buscar stock por nombre: ");
  123.                                fgets(nombre, 25, stdin);
  124.                                for(i = strlen(nombre) - 1; i && nombre[i] < ' '; i--)
  125.                                        nombre[i] = 0;
  126.                                nRegistros = CountReg(reg);
  127.                                for(i = 0; i < nRegistros; i++)
  128.                                {
  129.                                        if(strcmp(nombre, reg[i].nombre) == 0)
  130.                                        {
  131.                                                encontrado = 1;
  132.                                                MostrarCabecera();
  133.                                                MostrarProducto(i, &reg[i]);
  134.                                                break;
  135.                                        }
  136.                                }
  137.                                if(encontrado == 0)
  138.                                {
  139.                                        printf("\nNo se puede encontrar el producto indicado.\n\n");
  140.                                        system("PAUSE");
  141.                                }
  142.                                else
  143.                                {
  144.                                        printf("|---------|-------------------------|--------|\n\n");
  145.                                }
  146.                                system("PAUSE");
  147.                                break;
  148.                        case '5': // Mostrar todo el stockaje
  149.                                encontrado = 0;
  150.                                numero = 0;
  151.                                system("cls");
  152.                                nRegistros = CountReg(reg);
  153.                                if(nRegistros > 0)
  154.                                {
  155.                                        encontrado = 1;
  156.                                        MostrarCabecera();
  157.                                        for(i = 0; i < nRegistros; i++)
  158.                                        {
  159.                                                MostrarProducto(numero++, &reg[i]);
  160.                                        }
  161.                                        printf("|---------|-------------------------|--------|\n\n");
  162.                                }
  163.                                if(encontrado == 0)
  164.                                {
  165.                                        printf("\nNo existen entradas en el registro.\n");
  166.                                }
  167.                                system("PAUSE");
  168.                                break;
  169.                        case '6': // Eliminar del stock
  170.                                system("cls");
  171.                                printf("Eliminar del stock: ");
  172.                                numero = LeeNumero();
  173.                                retval = Borrar(reg, numero);
  174.                                if(retval == 0)
  175.                                {
  176.                                        printf("\nNo existe ese ID de producto.\n\n");
  177.                                }
  178.                                else if(retval == 1)
  179.                                {
  180.                                        printf("\nEntrada borrada satisfactoriamente.\n\n");
  181.                                }
  182.                                else if(retval == -1)
  183.                                {
  184.                                        printf("\nNo se ha realizado ningun cambio.\n\n");
  185.                                }
  186.                                system("PAUSE");
  187.                                break;
  188.                }
  189.        } while(opcion != '0');
  190.        return 0;
  191. }
  192. //--------------------------------------------------------------------------
  193.  
  194. // Muestra un menú con las opciones disponibles y captura una opción del usuario
  195. int Menu(void)
  196. {
  197.        char resp[20];
  198.        do {
  199.                system("cls");
  200.                printf("MENU PRINCIPAL\n");
  201.                printf("--------------\n\n");
  202.                printf("1- Añadir al stock\n");
  203.                printf("2- Venta\n");
  204.                printf("3- Buscar stock por su ID\n");
  205.                printf("4- Buscar stock por su nombre\n");
  206.                printf("5- Mostrar todo el stockaje\n");
  207.                printf("6- Eliminar producto del stock por su ID\n");
  208.                printf("0- Salir\n");
  209.                fgets(resp, 20, stdin);
  210.        } while(resp[0] < '0' && resp[0] > '6');
  211.        return resp[0];
  212. }
  213. //--------------------------------------------------------------------------
  214.  
  215. // Permite que el usuario introduzca un producto por pantalla
  216. void ChangeStock(char *operacion, struct stRegistro *reg)
  217. {
  218.        int i;
  219.        char numero[6];
  220.        system("cls");
  221.        printf("%s:", operacion);
  222.        printf("\n\n");
  223.        printf("Nombre: ");
  224.        fgets(reg->nombre, 25, stdin);
  225.        // la función fgets captura el retorno de línea, hay que eliminarlo:
  226.        for(i = strlen(reg->nombre) - 1; i && reg->nombre[i] < ' '; i--)
  227.                reg->nombre[i] = 0;
  228.        printf("Cantidad: ");
  229.        fgets(numero, 6, stdin);
  230.        reg->cantidad = atoi(numero);
  231. }
  232. //--------------------------------------------------------------------------
  233.  
  234. // Muestra la cabecera de la tabla por pantalla
  235. void MostrarCabecera(void)
  236. {
  237.        printf("\n");
  238.        printf("|---------|-------------------------|--------|\n"
  239.               "|ID       |Nombre                   |Cantidad|\n"
  240.               "|---------|-------------------------|--------|\n");
  241. }
  242. //--------------------------------------------------------------------------
  243.  
  244. // Muestra un producto por pantalla
  245. void MostrarProducto(long n, struct stRegistro *reg)
  246. {
  247.        printf("|[%6ld] |%-25s| %4d   |\n", reg->ID, reg->nombre, reg->cantidad);
  248. }
  249. //--------------------------------------------------------------------------
  250.  
  251. // Lee un número suministrado por el usuario
  252. long LeeNumero()
  253. {
  254.        char numero[6];
  255.        fgets(numero, 6, stdin);
  256.        return atoi(numero);
  257. }
  258. //--------------------------------------------------------------------------
  259.  
  260. // Borra una entrada del archivo
  261. int Borrar(struct stRegistro *reg, long numero)
  262. {
  263.        struct stRegistro temp[SIZEMAX];
  264.        int nRegistros, i, j, encontrado = 0;
  265.  
  266.        nRegistros = CountReg(reg);
  267.        for(i = 0, j = 0; i < nRegistros; i++)
  268.        {
  269.                if(numero != reg[i].ID)
  270.                {
  271.                        temp[j].ID = reg[i].ID;
  272.                        strcpy(temp[j].nombre,reg[i].nombre);
  273.                        temp[j].cantidad = reg[i].cantidad;
  274.                        j++;
  275.                }
  276.                else
  277.                {
  278.                        encontrado = 1;
  279.                }
  280.        }
  281.        if(encontrado == 1)
  282.        {
  283.                if(Confirmar("eliminar la entrada indicada"))
  284.                {
  285.                        memset(reg, 0, sizeof(struct stRegistro) * nRegistros);
  286.                        for(i = 0; i < nRegistros - 1; i++)
  287.                        {
  288.                                reg[i].ID = temp[i].ID;
  289.                                strcpy(reg[i].nombre, temp[i].nombre);
  290.                                reg[i].cantidad = temp[i].cantidad;
  291.                        }
  292.                }
  293.                else
  294.                {
  295.                        encontrado = -1;
  296.                }
  297.        }
  298.        return encontrado;
  299. }
  300. //--------------------------------------------------------------------------
  301.  
  302. int Confirmar(char *operacion)
  303. {
  304.        char valor;
  305.        int salida = 0;
  306.  
  307.        printf("Esta apunto de %s. Pulse 'S' y pulse intro para confirmar: ", operacion);
  308.        valor = getchar();
  309.        if(valor == 's' || valor == 'S')
  310.        {
  311.                salida = 1;
  312.        }
  313.        return salida;
  314. }
  315. //--------------------------------------------------------------------------
  316.  
  317. int CountReg(struct stRegistro *reg)
  318. {
  319.        int i;
  320.  
  321.        for(i = 0; i < SIZEMAX; i++)
  322.                if(strcmp(reg[i].nombre, "")==0)
  323.                        break;
  324.        return i;
  325. }
  326. //--------------------------------------------------------------------------
59  Programación / Ingeniería Inversa / Re: Programa que valida licencia por internet en: 13 Junio 2013, 09:17 am
lo cierto es que tienes la licencia para un pc pero nadie aquí ha dicho que requiera internet así que si se puede usar sin internet y fuera de una red domestica donde haya algún pc que lo tenga instalado pues supongo que funcionará sin problemas. De todos modos yo buscaría las apis típicas para eso y luego probaría a ejecutarlo con internet a ver que puedo ver y luego fuera de internet y ver que cambia en su ejecución y seguro verías algo interesante.
60  Programación / Programación C/C++ / Re: Necesito ayuda urgente en: 13 Junio 2013, 00:21 am
con array de estructuras es mas sencillo y claro que puedes anidar structs dentro de structs sin problemas. Ojalá te sirva de ayuda.
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines