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

 

 


Tema destacado:


  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 ... 280
51  Sistemas Operativos / GNU/Linux / Re: Usuario Debian en: 16 Agosto 2021, 01:28 am
No es mi sistema principal, pero lo uso bastante
52  Foros Generales / Foro Libre / Re: quiero practicar karate en: 13 Agosto 2021, 11:29 am
En kárate existen unos cuantos estilos distintos. Algunos se centran en la movilidad y esquivas, otros en la velocidad, otros en el golpeo a distancia y otros estilos de kárate son prácticamente MMA con técnicas de kárate. Se permiten patadas, rodillazos, codazos a la cara, no se usan guantes ni protecciones de ningún tipo (al contrario que en MMA), incluso según la competición se permiten clinch, derribos y golpeo al rival en el suelo. Algunos movimientos icónicos de la UFC como el spinning back fist (puño en giro) proceden de estos estilos de kárate.

53  Foros Generales / Foro Libre / Re: quiero practicar karate en: 13 Agosto 2021, 03:29 am
Yo hice kárate varios años y si que recibes golpes. Forma parte imprescindible del entrenamiento a pesar de que tenga otras partes como las katas y las exibiciones en donde no se golpea, si se realizan combates similares al kickboxing.

Si quieres no recibir golpes el único arte marcial de verdad que existe en el que no se golpea es el jujitsu. Y a demás es de los artes marciales mas eficaces que existen. Se trata de tumbarse en el suelo y hacer submisiones, ni siquiera hay derribos como en judo. Te recomiendo ver videos de como entrenan. Es muy divertido y útil.
54  Programación / Programación C/C++ / Re: fread modifica algunos bytes tratando de volcar parte de un archivo en otro en: 11 Agosto 2021, 19:03 pm
Estaría bien que subieras un challenge cuando lo termines.  :rolleyes:
Ya he subido varios pero participan 1 o 2 personas y 2 minutos y lo dejan :(
55  Programación / Programación C/C++ / Re: fread modifica algunos bytes tratando de volcar parte de un archivo en otro en: 11 Agosto 2021, 15:55 pm
Buenas @XSStringManolo,

¿tu algoritmo hace lo siguiente?

Separo el plaintext en K bloques de N, es decir una colección (B1, ..., BK)
El primer bloque cifrado C1 es C1 = IV + B1
El segundo C2 = (C1 + B2) + K = IV + B1 + B2 + K
... Cn = IV + (B1 + ... + Bn) + (n-1)*K

Un atacante averigua un triplet (IV, plaintext, ciphertext) pero desconoce la clave K.
Coge el segundo bloque C2 y como sabe los bloques (porque sabe el plaintext) hace:
C2 - B1 - B2 - IV = K
y así puede averiguar la clave, asociada a dicho triplet.

No sé si estaré en lo cierto. Si pudieras comprobar si encaja esta descipción en tu algoritmo.

Saludos.
Sí es inseguro, aún lo estoy desarrollando :P

56  Programación / Scripting / Re: Script Comprimir Actualizar Nuevo Comprimido en: 11 Agosto 2021, 12:46 pm
Con el comando 7z es muy sencillo.

Pon que tengo 6 archivos en una carpeta:
archivo1.txt  archivo3.txt  archivo5.txt
archivo2.txt  archivo4.txt  archivo6.txt

Creo el primer backup con los 3 primeros archivos:
7z a archivos.7z archivo1.txt archivo2.txt archivo3.txt

Ahora tengo en la carpeta:
archivo1.txt  archivo3.txt  archivo5.txt  archivos.7z
archivo2.txt  archivo4.txt  archivo6.txt

Dentro de un mes quiero agregar los archivos 4 5 y 6:
7z a archivos.7z archivo4.txt archivo5.txt archivo6.txt

Sigo teniendo los mismos archivos en la carpeta, solo que ahora archivos.7z tiene dentro los 6 archivos comprimidos.

Para descomprimirlos:
mkdir archivosExtraidos
7z x archivos.7z -o"./archivosExtraidos"

Ya tienes los 6 archivos descomprimidos en la carpeta archivosExtraidos.

PD: En el manual de 7z tienen un aviso importante, que entiendo que también se aplica a winzip, winrar y desmás utilidades de compresióm que no están diseñadas explícitamente para copias de seguridad.

Cita de: man 7z
Backup and limitations
       DO NOT USE the 7-zip format for backup purpose on Linux/Unix because :
        - 7-zip does not store the owner/group of the file.

       On Linux/Unix, in order to backup directories you must use tar :
        - to backup a directory  : tar cf - directory | 7za a -si
       directory.tar.7z
        - to restore your backup : 7za x -so directory.tar.7z | tar xf -

       If you want to send files and directories (not the owner of file) to
       others Unix/MacOS/Windows users, you can use the 7-zip format.

         example : 7za a directory.7z  directory

       Do not use "-r" because this flag does not do what you think.

       Do not use directory/* because of ".*" files (example : "directory/*"
       does not match "directory/.profile")

Cita de: traducido
Respaldos y límites
       NO USES el formato 7z para respaldos en Linux/Unix porque :
        - 7z no almacena el owner/group del archivo.

       En Linux/Unix, para respaldar carpetas debes usar tar :
        - para respaldar una carpeta  : tar cf - carpeta | 7za a -si
       carpeta.tar.7z
        - para restaurar la carpeta : 7za x -so carpeta.tar.7z | tar xf -

       Si quieres enviar archivos y carpetas (sin el owner del archivo) a otros usuarios Unix/MacOS/Windows, puedes usar el formato 7z.
         ejemplo : 7za a carpeta.7z  carpeta

       No utilices "-r" porque este argumento no hace lo que piensas.

       No utilices carpeta/* por los archivos ".*" (ejemplo: "carpeta/*" no encuentra
       "carpeta/.profile")
57  Programación / Programación C/C++ / Re: fread modifica algunos bytes tratando de volcar parte de un archivo en otro en: 10 Agosto 2021, 22:23 pm
No probé el programa, pero tienes un error en la línea 62:

Código
  1.    GENERATED_IV = IV;

IV es local a la función cipherBlock, por lo que sólo existe dentro de ella (de hecho, dentro del bloque if donde fue declarada) de manera que al retornar de esa función, GENERATED_IV apunta a una dirección inválida. Es de esas cosas que a veces funcionan por casualidad pero son un error. Probablemente eso es lo que te ocasiona el problema. También por ahí reservas memoria sin liberarla pero eso aquí sólo gasta memoria y no es la causa del error.

Añado: lo más simple sería que hagas GENERATED_IV un arreglo de tamaño fijo.

Creo que al modificar lo que comentas no me vuelve a surgir el error. Comentaré si me vuelve a aparecer y es casualidad que no vuelva a surgir. Muchas gracias, no me di cuenta que estaba guardando un puntero a memoria del stack xD

58  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Optimización website elhacker.net en: 10 Agosto 2021, 00:05 am
En mi opinión lo mas rápido y sencillo sería hacer un sitio nuevo absolutamente desde 0 y que ambos coexistan mientras en el nuevo sitio no se vayan creando temas, secciones, entradas, usuarios y comentarios.

Hay un montón de modelos distintos que están funcionando muy bien como Stackoverflow o Quora. A mi personalmente me gusta mas el estilo del foro y soy usuario 100% móvil.
59  Programación / Programación C/C++ / fread modifica algunos bytes tratando de volcar parte de un archivo en otro en: 9 Agosto 2021, 23:39 pm
Estoy haciendo un cifrado CBC y añado 1024 bytes generados de forma pseudoaleatoria al final del archivo que el usuario eliga cifrar. Por motivos de debug, estos 1024 bytes a parte de añadirlos al archivo, también creo un archivo llamado lastIV.txt con estos 1024 bytes.

Estoy programando la parte que descifra y el primer paso que estoy haciendo es obtener esos últimos 1024 bytes del final del archivo cifrado que corresponden al IV generado aleatoriamente. Para ver el resultado, escribo estos 1024 bytes en un archivo externo al que llamo extractedIV.txt

Al comparar ambos archivos, que deberían ser exactamente iguales, algunos bytes no coinciden y no tengo ni idea de porque ambos archivos no son iguales.

Aquí adjunto sus hex creados con xxd:

lastIV.txt
Código:
00000000: 5dcf c46c d3d7 561f 5b23 2c8c d252 c5c9  ]..l..V.[#,..R..
00000010: 8cf5 8070 706e df2b 2fe8 5d2b f3ff f2d8  ...ppn.+/.]+....
00000020: bd7e 8c99 edc4 a87a 26f1 077f 5d2f 132b  .~.....z&...]/.+
00000030: 2b83 1319 4e76 0e0f 0822 0d9b f686 071d  +...Nv..."......
00000040: 0ea2 b106 5cf6 1401 48a8 a95e f9b7 2ade  ....\...H..^..*.
00000050: 194e 5e80 c744 1fac 81c3 af2b ae30 2ba9  .N^..D.....+.0+.
00000060: 3f56 7b6c c413 e4af c24b 2cc4 001e b74f  ?V{l.....K,....O
00000070: f1a2 1a2b 8881 20fc b41f 12bd 14e0 9017  ...+.. .........
00000080: d8ee 866e cea9 6759 36a6 6c7d c55c b389  ...n..gY6.l}.\..
00000090: ae80 d81f 2c2b 8049 826c b9df 071b d5cd  ....,+.I.l......
000000a0: 943f acd7 0f20 4f13 1956 5c23 0b89 81c4  .?... O..V\#....
000000b0: 95e2 f3f2 7b90 f174 bdc9 0df4 ec81 6ea9  ....{..t......n.
000000c0: 132a 5e42 93e0 0d5e a4ca 13ec d013 63dc  .*^B...^......c.
000000d0: a218 5dca c54e 2ea9 0607 d53c b022 2781  ..]..N.....<."'.
000000e0: 0b7e 7142 135b de22 c5de df6d 825d 755c  .~qB.[."...m.]u\
000000f0: 6c81 1a53 6c1b 2e2b d32a fdd0 0bd6 d629  l..Sl..+.*.....)
00000100: 816e 5780 4e0b bde1 13c9 1159 4950 5c88  .nW.N......YIP\.
00000110: 927d 235c c9e8 e83c 0b9e 7fbd 959f 830d  .}#\...<........
00000120: 3b8c d7ca d7ef c3a2 2e8e ff5e dae2 f494  ;..........^....
00000130: 9fbd 5be1 a65d abe8 d8d5 862d 42b7 0ba9  ..[..].....-B...
00000140: e6ed 3ccc 2ca8 30f2 a950 883b 6722 225d  ..<.,.0..P.;g""]
00000150: 3c5c 1907 f2f7 9ab7 01b3 2cd5 98da 4080  <\........,...@.
00000160: 2319 9859 1a1a 22e8 2f21 f5c2 363d c918  #..Y.."./!..6=..
00000170: 9990 e842 ef1b efab 5e3d a2bd 2b1f 2b2a  ...B....^=..+.+*
00000180: 922f 80f5 4b36 e636 aba6 5d17 c375 8095  ./..K6.6..]..u..
00000190: 8de8 e813 aef4 ce04 33d8 f221 e8c5 d801  ........3..!....
000001a0: 93b7 ed1b 9a95 bf3d b72b 08da a4bf b165  .......=.+.....e
000001b0: bd71 c77d ee2b a853 79c0 9e52 2092 c5d8  .q.}.+.Sy..R ...
000001c0: 19e8 4052 1fde 83a1 4e8c 30b3 e619 361e  ..@R....N.0...6.
000001d0: 6cd0 9248 13d8 7bae 9536 5d44 d5e4 131b  l..H..{..6]D....
000001e0: 8c40 49f3 c38d 5d26 c3ec f790 131f f95b  .@I...]&.......[
000001f0: 635c e679 75f3 42e8 a41e 52b4 8852 2bfd  c\.yu.B...R..R+.
00000200: 7a87 d759 f43d c988 537d 6380 cfa4 b7f4  z..Y.=..S}c.....
00000210: b41b ecc7 ccfd 825c e46e 6eb4 e4c9 e83d  .......\.nn....=
00000220: 2ad1 f2a2 1fd7 7df1 843f 01f1 9664 185c  *.....}..?...d.\
00000230: 0000 0000 0000 0000 8776 ec75 5ba2 4052  .........v.u[.@R
00000240: 0004 0000 0000 0000 2010 61f9 7c00 0000  ........ .a.|...
00000250: 0000 0000 0000 0000 2010 61f9 7c00 0000  ........ .a.|...
00000260: 0010 0000 0000 0000 0010 0000 0000 0000  ................
00000270: d0d0 53d5 7f00 0000 5453 55f9 7c00 0000  ..S.....TSU.|...
00000280: 4841 01f9 7c00 0000 5417 2ce1 2c13 3c04  HA..|...T.,.,.<.
00000290: 90d1 53d5 7f00 0000 54da 5cf9 7c00 0000  ..S.....T.\.|...
000002a0: 0d17 da1a 2220 1f18 47b3 0000 0000 0000  ...." ..G.......
000002b0: 9fcc 1400 0000 0000 8081 0000 0100 0000  ................
000002c0: 8f27 0000 8f27 0000 0000 0000 0000 0000  .'...'..........
000002d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002e0: 0010 0000 0000 0000 0000 0000 0000 0000  ................
000002f0: 3a9e 1161 0000 0000 0092 fe1e 0000 0000  :..a............
00000300: 3a9e 1161 0000 0000 0092 fe1e 0000 0000  :..a............
00000310: 3a9e 1161 0000 0000 0092 fe1e 0000 0000  :..a............
00000320: 0000 0000 0000 0000 843f 01f1 9664 185c  .........?...d.\
00000330: 40ce 53d5 7f00 0000 0100 0000 0000 0000  @.S.............
00000340: 20d2 53d5 7f00 0000 4841 01f9 7c00 0000   .S.....HA..|...
00000350: b0d1 53d5 7f00 0000 08f4 5cf9 7c00 0000  ..S.......\.|...
00000360: 4841 01f9 7c00 0000 0004 0000 0004 0000  HA..|...........
00000370: 10d2 53d5 7f00 0000 28d3 5cf9 7c00 0000  ..S.....(.\.|...
00000380: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000390: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003a0: 0004 0000 0000 0000 2010 61f9 7c00 0000  ........ .a.|...
000003b0: 40ce 53d5 7f00 0000 0100 0000 0000 0000  @.S.............
000003c0: 0004 0000 0000 0000 4841 01f9 7c00 0000  ........HA..|...
000003d0: 80d2 53d5 7f00 0000 f410 5ef9 7c00 0000  ..S.......^.|...
000003e0: 38d2 53d5 7f00 0000 0100 0000 7c00 0000  8.S.........|...
000003f0: 0004 0000 0000 0000 40ce 53d5 7f00 0000  ........@.S.....

extractedIV.txt
Código:
00000000: 5dcf c46c d3d7 561f 5b23 2c8c d252 c5c9  ]..l..V.[#,..R..
00000010: 8cf5 8070 706e df2b 2fe8 5d2b f3ff f2d8  ...ppn.+/.]+....
00000020: bd7e 8c99 edc4 a87a 26f1 077f 5d2f 132b  .~.....z&...]/.+
00000030: 2b83 1319 4e76 0e0f 0822 0d9b f686 071d  +...Nv..."......
00000040: 0ea2 b106 5cf6 1401 48a8 a95e f9b7 2ade  ....\...H..^..*.
00000050: 194e 5e80 c744 1fac 81c3 af2b ae30 2ba9  .N^..D.....+.0+.
00000060: 3f56 7b6c c413 e4af c24b 2cc4 001e b74f  ?V{l.....K,....O
00000070: f1a2 1a2b 8881 20fc b41f 12bd 14e0 9017  ...+.. .........
00000080: d8ee 866e cea9 6759 36a6 6c7d c55c b389  ...n..gY6.l}.\..
00000090: ae80 d81f 2c2b 8049 826c b9df 071b d5cd  ....,+.I.l......
000000a0: 943f acd7 0f20 4f13 1956 5c23 0b89 81c4  .?... O..V\#....
000000b0: 95e2 f3f2 7b90 f174 bdc9 0df4 ec81 6ea9  ....{..t......n.
000000c0: 132a 5e42 93e0 0d5e a4ca 13ec d013 63dc  .*^B...^......c.
000000d0: a218 5dca c54e 2ea9 0607 d53c b022 2781  ..]..N.....<."'.
000000e0: 0b7e 7142 135b de22 c5de df6d 825d 755c  .~qB.[."...m.]u\
000000f0: 6c81 1a53 6c1b 2e2b d32a fdd0 0bd6 d629  l..Sl..+.*.....)
00000100: 816e 5780 4e0b bde1 13c9 1159 4950 5c88  .nW.N......YIP\.
00000110: 927d 235c c9e8 e83c 0b9e 7fbd 959f 830d  .}#\...<........
00000120: 3b8c d7ca d7ef c3a2 2e8e ff5e dae2 f494  ;..........^....
00000130: 9fbd 5be1 a65d abe8 d8d5 862d 42b7 0ba9  ..[..].....-B...
00000140: e6ed 3ccc 2ca8 30f2 a950 883b 6722 225d  ..<.,.0..P.;g""]
00000150: 3c5c 1907 f2f7 9ab7 01b3 2cd5 98da 4080  <\........,...@.
00000160: 2319 9859 1a1a 22e8 2f21 f5c2 363d c918  #..Y.."./!..6=..
00000170: 9990 e842 ef1b efab 5e3d a2bd 2b1f 2b2a  ...B....^=..+.+*
00000180: 922f 80f5 4b36 e636 aba6 5d17 c375 8095  ./..K6.6..]..u..
00000190: 8de8 e813 aef4 ce04 33d8 f221 e8c5 d801  ........3..!....
000001a0: 93b7 ed1b 9a95 bf3d b72b 08da a4bf b165  .......=.+.....e
000001b0: bd71 c77d ee2b a853 79c0 9e52 2092 c5d8  .q.}.+.Sy..R ...
000001c0: 19e8 4052 1fde 83a1 4e8c 30b3 e619 361e  ..@R....N.0...6.
000001d0: 6cd0 9248 13d8 7bae 9536 5d44 d5e4 131b  l..H..{..6]D....
000001e0: 8c40 49f3 c38d 5d26 c3ec f790 131f f95b  .@I...]&.......[
000001f0: 635c e679 75f3 42e8 a41e 52b4 8852 2bfd  c\.yu.B...R..R+.
00000200: 7a87 d759 f43d c988 537d 6380 cfa4 b7f4  z..Y.=..S}c.....
00000210: b41b ecc7 ccfd 825c e46e 6eb4 e4c9 e83d  .......\.nn....=
00000220: 2ad1 f2a2 1fd7 7df1 843f 01f1 9664 185c  *.....}..?...d.\
00000230: 0000 0000 0000 0000 8776 ec75 5ba2 4052  .........v.u[.@R
00000240: 0004 0000 0000 0000 2010 61f9 7c00 0000  ........ .a.|...
00000250: 0000 0000 0000 0000 2010 61f9 7c00 0000  ........ .a.|...
00000260: 0010 0000 0000 0000 0010 0000 0000 0000  ................
00000270: d0d0 53d5 7f00 0000 5453 55f9 7c00 0000  ..S.....TSU.|...
00000280: b040 01f9 7c00 0000 5417 2ce1 2c13 3c04  .@..|...T.,.,.<.
00000290: 90d1 53d5 7f00 0000 54da 5cf9 7c00 0000  ..S.....T.\.|...
000002a0: 0d17 da1a 2220 1f18 47b3 0000 0000 0000  ...." ..G.......
000002b0: 3b78 0c00 0000 0000 8081 0000 0100 0000  ;x..............
000002c0: 8f27 0000 8f27 0000 0000 0000 0000 0000  .'...'..........
000002d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002e0: 0010 0000 0000 0000 0000 0000 0000 0000  ................
000002f0: ed8d 1161 0000 0000 00a0 2526 0000 0000  ...a......%&....
00000300: 3a9e 1161 0000 0000 0092 fe1e 0000 0000  :..a............
00000310: 3a9e 1161 0000 0000 0092 fe1e 0000 0000  :..a............
00000320: 0000 0000 0000 0000 843f 01f1 9664 185c  .........?...d.\
00000330: 2ce7 53d5 7f00 0000 0100 0000 0000 0000  ,.S.............
00000340: 20d2 53d5 7f00 0000 b040 01f9 7c00 0000   .S......@..|...
00000350: b0d1 53d5 7f00 0000 08f4 5cf9 7c00 0000  ..S.......\.|...
00000360: b040 01f9 7c00 0000 ee39 806d 2bd7 3d50  .@..|....9.m+.=P
00000370: 10d2 53d5 7f00 0000 843f 01f1 9664 185c  ..S......?...d.\
00000380: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000390: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003a0: 0004 0000 0000 0000 2010 61f9 7c00 0000  ........ .a.|...
000003b0: 40ce 53d5 7f00 0000 0100 0000 0000 0000  @.S.............
000003c0: 0004 0000 0000 0000 b040 01f9 7c00 0000  .........@..|...
000003d0: 80d2 53d5 7f00 0000 f410 5ef9 7c00 0000  ..S.......^.|...
000003e0: 38d2 53d5 7f00 0000 0100 0000 0000 0000  8.S.............
000003f0: 0004 0000 0000 0000 40ce 53d5 7f00 0000  ........@.S.....

Aquí el código:
Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<time.h>
  4.  
  5. // add operation between 2 buffers
  6. void addBuffers(char * buf1, char * buf2, int bufSize) {
  7.  for(int i = 0; i < bufSize; ++i) {
  8.    buf1[i] = (buf1[i] + buf2[i]);
  9.  }
  10. }
  11.  
  12. // substract operation between 2 buffers
  13. void substractBuffers(char * buf1, char * buf2, int bufSize) {
  14.  for(int i = 0; i < bufSize; ++i) {
  15.    buf1[i] = (buf1[i] - buf2[i]);
  16.  }
  17. }
  18.  
  19. // make key match the block size
  20. void securizeKey(char * keyBuf, char * key, int keySize, int chunkSize) {
  21.  for (int i = 0, j = 0; i < chunkSize; ++i, ++j) {
  22.    if (j > keySize) {
  23.      j = 0;
  24.    }
  25.    keyBuf[i] = key[j];
  26.  }
  27. }
  28.  
  29. // generate pseudorandom buffer
  30. char *allocate_random_heap_buffer(size_t size) {
  31.  time_t current_time = time(NULL);
  32.  srandom((unsigned int) current_time);
  33.  char* allocatedMemory = (char *) malloc(size);
  34.  
  35.  for (int bufferIndex = 0; bufferIndex < size; bufferIndex++) {
  36.    uint8_t randomNumber = (uint8_t) random();
  37.    allocatedMemory[bufferIndex] = randomNumber;
  38.  }
  39.  
  40.  return allocatedMemory;
  41. }
  42.  
  43. // generate a pseudorandom IV
  44. void generateIV(char * ivBuf, int chunkSize) {
  45.  char * random = allocate_random_heap_buffer(chunkSize);
  46.  for (int i = 0; i < chunkSize; ++i) {
  47.    if (random[i] < chunkSize) {
  48.      ivBuf[i] = random[random[i]];
  49.    } else {
  50.      ivBuf[i] = random[i];
  51.    }
  52.  }
  53. }
  54.  
  55. char * GENERATED_IV;
  56. // block cipher encryption
  57. void cipherBlock(char * bufferBlock, char * bufferBlock2, char * key, int blockSize, int round) {
  58.  if (round == 1) { // add IV to first block
  59.    char IV[blockSize];
  60.    generateIV(IV, blockSize);
  61.    addBuffers(bufferBlock, IV, blockSize);
  62.    GENERATED_IV = IV;
  63.  } else { // add Last Block to Current Block
  64.    addBuffers(bufferBlock, bufferBlock2, blockSize);
  65.    addBuffers(bufferBlock, key, blockSize);
  66.  }
  67. }
  68.  
  69.  
  70. // reverse
  71.  
  72.  
  73. int main(int argc, char *argv[]) {
  74.  /*** Fetch CLI Arguments */
  75.  char * filename; int filenameSet = 0; // file to work on
  76.  char * mode;     int modeSet = 0; // encrypt or decrypt
  77.  char * key;      int keySet = 0; // simmetric key
  78.  char * output;   int outputSet = 0; // file to output results on
  79.  for(int i = 0; i < argc; ++i) {
  80.    // -f or --file
  81.    if (strcmp(argv[i], "-f") == 0 || strcmp(argv[i], "--file") == 0) {
  82.      filename = argv[i + 1];
  83.      filenameSet = 1;
  84.    // -m or --mode
  85.    } else if (strcmp(argv[i], "-m") == 0 || strcmp(argv[i], "--mode") == 0) {
  86.      mode = argv[i + 1];
  87.      modeSet = 1;
  88.    // -k or --key
  89.    } else if (strcmp(argv[i], "-k") == 0 || strcmp(argv[i], "--key") == 0) {
  90.      key = argv[i + 1];
  91.      keySet = 1;
  92.    } else if (strcmp(argv[i], "-o") == 0 || strcmp(argv[i], "--output") == 0) {
  93.      output = argv[i + 1];
  94.      outputSet = 1;
  95.    }
  96.  }
  97.  
  98.  // Check if mandatory arguments are set
  99.  if (filenameSet != 1) {
  100.    printf("Missing filename argument, use -f ./myFile");
  101.    return 0;
  102.  }
  103.  
  104.  if (modeSet != 1) {
  105.    printf("Please select a mode, use -m cipher or use -m reverse");
  106.    return 0;
  107.  }
  108.  
  109.  if (keySet != 1) {
  110.    printf("Missing key argument, use -k mySecretKey");
  111.    return 0;
  112.  }
  113.  
  114.  if (outputSet != 1) {
  115.    printf("Missing output argument, use -o ./newFile");
  116.    return 0;
  117.  }
  118.  /* Fetch CLI Arguments ***/
  119.  
  120.  
  121.  #define BLOCK_SIZE 1024
  122.  const int keySize = strlen(key);
  123.  char keyBuf[BLOCK_SIZE];
  124.  securizeKey(keyBuf, key, keySize, BLOCK_SIZE);
  125.  
  126.  
  127.  if (strcmp(mode, "cipher") == 0) { // user selected encryption mode
  128.    char buf[BLOCK_SIZE];
  129.    char lastBuf[BLOCK_SIZE];
  130.    FILE *file;
  131.    size_t nread;
  132.  
  133.    file = fopen(filename, "r");
  134.    FILE * encrypted = fopen(output, "w"); // file to output the encrypted file
  135.    if (file) {
  136.      int i = 0;
  137.      while ((nread = fread(buf, 1, sizeof buf, file)) > 0) {
  138.        cipherBlock(buf, lastBuf, keyBuf, BLOCK_SIZE, ++i);
  139.        memcpy(lastBuf, buf, BLOCK_SIZE);
  140.        fwrite(buf, 1, nread, encrypted);
  141.      }
  142.      fwrite(GENERATED_IV, 1, BLOCK_SIZE, encrypted);
  143.  
  144.      FILE * lastIV = fopen("./lastIV.txt", "w");
  145.      fwrite(GENERATED_IV, 1, BLOCK_SIZE, lastIV); // debug IV
  146.  
  147.      if (ferror(file)) {
  148.        // deal with error
  149.      }
  150.      fclose(file);
  151.    }
  152.  } else if (strcmp(mode, "reverse") == 0) {
  153.    /* TODO: READ REVERSE IN CHUNKS */
  154.    char buf[BLOCK_SIZE];
  155.    char lastBuf[BLOCK_SIZE];
  156.    FILE *file;
  157.    size_t nread;
  158.  
  159.    file = fopen(filename, "r");
  160.    FILE * decrypted = fopen(output, "w"); // file to output the decrypted file
  161.  
  162.    if (file) {
  163.      int i = 0;
  164.      fseek(file, 0, SEEK_END);
  165.      int sz = ftell(file); // file size
  166.      char IV[BLOCK_SIZE];
  167.  
  168.      char aux[BLOCK_SIZE];
  169.  
  170.  
  171.      for (int j = sz - BLOCK_SIZE; /* j > 0 */; j -= BLOCK_SIZE, ++i) {
  172.        fseek(file, j, SEEK_SET);
  173. fread(aux, 1, BLOCK_SIZE, file);
  174.        if (i == 0) {
  175.          memcpy(IV, aux, BLOCK_SIZE);
  176.          FILE * extractedIV = fopen("./extractedIV.txt", "w");
  177.          fwrite(IV, 1, BLOCK_SIZE, extractedIV); // debug IV
  178.          fclose(extractedIV);
  179.          return 0;
  180.        }
  181.  
  182. if (j <= 0) {
  183.          break;
  184. }
  185.      }
  186.      fclose(file);
  187.    }
  188.  
  189.  } else {
  190.    printf("Select -m cipher or -m reverse");
  191.    return 0;
  192.  }
  193.  return 0;
  194. }

PD: Adjunto output de radiff2 de los bytes que son transformados:
Código:
0x00000280 4841 => b040 0x00000280
0x000002b0 9fcc14 => 3b780c 0x000002b0
0x000002f0 3a9e => ed8d 0x000002f0
0x000002f9 92fe1e => a02526 0x000002f9
0x00000330 40ce => 2ce7 0x00000330
0x00000348 4841 => b040 0x00000348
0x00000360 4841 => b040 0x00000360
0x00000368 0004000000040000 => ee39806d2bd73d50 0x00000368
0x00000378 28d35cf97c000000 => 843f01f19664185c 0x00000378
0x000003c8 4841 => b040 0x000003c8
0x000003ec 7c => 00 0x000003ec
60  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Optimización website elhacker.net en: 6 Agosto 2021, 03:47 am
Yo intenté echar un cable en su día pero no manejaba las tecnologías que se estaban utilizando. Asique no logré ni hacer una aportación pequeña.

Quizas ahora pueda aportar, que estuve aprendiendo React y estoy mas familiarizado.

El principal problema que veo es el mismo que comenta MinusFour, no hay una serie de directrices claras, entonces a la hora de toma de decisiones no tienes claro que hacer.

A parte en el repositorio, desarrolladores que programen web no sé si somos solo 3 o 4. Yo tengo 0 conocimiento del backend del foro, asique ni la menor idea de como se va a integrar o como siquiera te puedes plantear el desarrollo del front si no sabes de donde vas a sacar el código del backend. Tampoco manejo de consultas sql, por lo que todo el backend si se toca (que entiendo que es necesario al estar seriamente integrado con el front) yo no aportaría nada.

Sobre todo, faltan decisiones sobre que es exactamente lo que se quiere hacer. Que tecnologías se van a utilizar. Etc.

Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 280
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines