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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
71  Seguridad Informática / Análisis y Diseño de Malware / Re: [C] Stealer Google Chrome en: 2 Abril 2016, 03:06 am
Hola primero que nada gracias por el aporte, se mira genial aun no lo pruebo   :P  ya que ando en linux pero pronto  lo hare.

Bueno en fin vengo con una serie de dudas:

Porque te declaras y reservas dos punteros char y no los liberas?
Código
  1. char *cDir = (char *)malloc(sizeof(char) * 200);
  2. const char *cData = (char *)malloc(sizeof(char) * 140);

Ademas que necesidad hay de reservar memoria dinamicamente?
segun vi *CDir lo utilizas en la funcion
Código
  1. void ChromeDirectory(char *Disk, char *cDir)

Pero viendo la implementacion:
Código
  1. void ChromeDirectory(char *Disk, char *cDir)
  2. {
  3.  DWORD I = 40;
  4.  
  5.  GetUserName(CurUser, &I);
  6.  sprintf(cDir, "%sUsers\\%s\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Login Data", Disk, CurUser);
  7. }

Para lo unico que lo utilizas es para pasarle la referencia a la funcion    sprintf
Entonces por que no evitamos resevar dinamicamente y lo hacemos todo en la pila
ejemplo;

Código
  1. char cDir[200];
  2.  
y basta con pasarle la referencia
Código
  1. ChromeDirectory("C:\\", &cDir);

Mismo caso para la variable
Código
  1. const char *cData = (char *)malloc(sizeof(char) * 140);
  2.  

se puede reservar en la pila:
Código
  1. const char  cData[140];

Pero segun veo en tu codigo esa variable cData sirve para obtener el contenido de la funcion sqlite3_column_text()
que segun su documentacion: https://www.sqlite.org/c3ref/column_blob.html
retorna un const unsigned char *, lo cual me indica que al final todo eso que reservaste con malloc en la variable cData de nada sirve ya que terminara apuntado a otra direccion y sera imposible liberar la memoria que has reservado.

Conclusion para la variable cData segun la documentacion no es necesario reservarle memoria ya que solo funciona como apuntador, basta con que la declararas asi:
Código
  1. unsigned char *CData=NULL

Espero mis comentarios no sean tomados a mal.
Saludooss y buen trabajo  :P



72  Programación / Programación C/C++ / Re: Como implementar esta conversion? en: 30 Marzo 2016, 04:41 am
Supongamos  que tienes tus bytes 00 y AC  en tu archivo y los lees como numeros enteros y no como caracteres y los quieres comparar con tu puntero de char que ya tienes en tu programa en formato hexadecimal

Pues lo mas claro para mi es convierte esos punteros char en un valor entero y luego haces la comparacion:

Como en este ejemplo, la conversion la hago con una funcion llamada strtol que viene incluida en la biblioteca cstdlib referencia:http://www.cplusplus.com/reference/cstdlib/strtol/

Ejemplo:

Código
  1. #include <iostream>
  2. #include<ctype.h>
  3. #include <cstdlib>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.  
  9.    const char* x="00AC";
  10.    uint8_t valor=(uint8_t)strtol(x,NULL,16);
  11.    uint8_t z =0x00AC;
  12.  
  13.    if(valor==z)cout<<"son iguales"<<endl;
  14.    else cout<<"son diferentes"<<endl;
  15.  
  16.    return 0;
  17. }
  18.  

Si hay dudas comenta
Saludos...
73  Programación / Programación C/C++ / Re: Como implementar esta conversion? en: 30 Marzo 2016, 04:01 am
Hola exactamente que quieres hacer?

Quieres comparar si la cadena x o y corresponde a algun valor del arreglo z
ademas como definiste ese tipo byte segun yo tengo entendido el byte no existe en c o c++ y lo mas parecido en tamaño es un char

Hola como mencione arriba no se exactamente que quieres hacer pero intuyendo que quieres comparar las variables, una solucion podria ser:

Código
  1. #include <iostream>
  2. #include<ctype.h>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.  
  8.    unsigned char x[]={0x00,0xAC};
  9.    unsigned char y[] ={0x0C,0xC0};
  10.    uint8_t z[] = {0x00, 0xAC}; //se puede simular ocmo unsigned char
  11.  
  12.    if(x[0]==z[0] && x[1]==z[1]) cout<<"son iguales"<<endl;
  13.    else cout<<"no son iguales"<<endl;
  14.  
  15.    return 0;
  16. }


De entrada por que el tamaño de las estructuras es diferente ya que el puntero x posee cuatro elementos encontra de el arreglo z  solo posee dos, como muestro en el codigo de arriba un equivalente de codigo a:
Código
  1. char *x = "00AC
es:
Código
  1. char x[]={'0','0','A','C'};
lo cual muestra que jamas podrian ser iguales.


PD: En C/C++ no existe el tipo de dato byte lo mas cercano es unsigned char
o utilizando la bibilioteca ctype.h puede especificar un tipo de dato de 8 bits sin signo que es el equivalente a 1 byte
Salutos..
74  Programación / ASM / Re: Sintaxis del condicional JB en Assembler en: 28 Marzo 2016, 07:43 am
Hola añadiendo a lo que dice fary  te dejo este ejemplo

Código
  1. mov al,13 ; al =13
  2. cmp al,13 ; comparamos si al es igual a 13
  3. JB etiqueta ; salta si el primer operando es menor que el segundo operando( al<13)
  4.  
  5. ;si no salta es que el primer operando es mayor o igual que el segundo operando
  6.  
  7. salir:
  8. ret
  9.  
  10.  
  11. etiqueta:  ;si el primer operando es menor que el segundo llegamos hasta aqui
  12. ;codigo
  13. JMP salir ;saltamos a salir

JBE es similar a JB con la diferencia de que salta si el primer operando es menor o igual que el segundo operando

Código
  1. mov al,13 ; al=13
  2. cmp al,21;comparamos los dos operandos
  3. JBE etiqueta ;salta si el primer operando es menor o igual  que el segundo operando( al<=21)


Si tienes dudas avisa.
//Salutos...
75  Programación / Programación C/C++ / Re: Ayuda urgente con c en: 28 Marzo 2016, 07:28 am
Hola no he revisado todo tu codigo pero estas lineas estan mal


Código
  1. struct grupo a[totalAlum];

Código
  1. struct grupo b[totalAlum];

No puedes crear arreglos dinamicos de esta manera, tienes dos opciones o especificarle un valor en tiempo de compilacion ejemplo:
Código
  1. struct grupo b[10];

La otra opcion es usar punteros y la funcion malloc para reservar memoria en el heap y poder crear tu arreglo dinamico, el cual puede varia su tamaño en tiempo de ejecucion.

Ejemplo:

Código
  1. struct grupo *b=malloc(totalAlum*sizeof(struct grupo));

Recordando de liberar la  memoria del arreglo usando la funcion free:

Código
  1. free(b);

Si tienes dudas avisas.
Salutos....

 

76  Programación / Programación C/C++ / Re: Pasar cifra numérica a letra en lenguaje C en: 28 Marzo 2016, 01:09 am
Cual es el error que muestra?  o mas bien con que numero ingresado aparece el error

Saludos..
77  Programación / Programación C/C++ / Re: buenas para que me den una idea de como hacer este programa en: 27 Marzo 2016, 23:52 pm
No te entiendo, codigoPoliza es el enum o enumerado y tPoliza es el struct o estructura

si tienes dudas avisa saludos..
78  Programación / Programación C/C++ / Re: Problemas con codigo de clases en c++ en: 27 Marzo 2016, 22:41 pm
Hola de lo que habla Stakewinner00 es de pasarle el valor escodigo por medio  del parametero de la   funcion setTipoCliente(float tc);

Ejemplo:
Código
  1. int main (int argc, char *argv[]) {
  2.  
  3. ClienteNube cle1;
  4. float tipoCliente=0;
  5. cin>>tipoCliente;
  6. cle1.setTipocliente(tipoCliente);
  7.  
  8.  
  9.  
  10. return 0;
  11. }
79  Programación / Programación C/C++ / Re: buenas para que me den una idea de como hacer este programa en: 27 Marzo 2016, 22:35 pm
Hola hay muchas forma de implementar una solucion, una manera puede ser usando struct y enumerados.

Una forma puede ser esta.

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. enum codigoPoliza{
  5.    Hcm =1,
  6.    Vehiculo=2,
  7.    Siniestros=3,
  8.    Hurto=4,
  9.    TodoRisgo=5
  10. };
  11.  
  12. struct tPoliza{
  13.    codigoPoliza cPoliza;
  14.    char descripcion[255];
  15.    double costo;
  16. };
  17.  
  18.  
  19. int main()
  20. {
  21.     tPoliza poliza1;
  22.     poliza1.cPoliza=Vehiculo;
  23.     poliza1.descripcion="Cubre perdida total y danos a terceros";
  24.     poliza1.costo=1200;
  25.  
  26.     tPoliza poliza2;
  27.     poliza1.cPoliza=TodoRisgo;
  28.     poliza1.descripcion="Cubre vehiculos,hurto,dano a hogar,siniestros etc.";
  29.     poliza1.costo=7000;
  30.  
  31.  
  32.    return 0;
  33. }
  34.  
80  Programación / Programación C/C++ / Re: cual es el mejor ide para programa en c++? en: 25 Marzo 2016, 19:51 pm
Bueno yo nunca he tenido problemas pero si no como te indique puedes usar netbeanse o visual studio este ultimo el mas completo
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines