| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
tonilope
Registrado: 16 Oct 2005 Mensajes: 249
| Publicado: 05/09/2006 9:09 am | | | Título: Chateitor |
| Hola. No sé vosotros, pero una de las cosas que más me gustan a parte de programar es que mis programitas sean probados y recibir opiniones, críticas, etc...
Pues bien, os dejo aquí mi último pasatiempo. Se trata de un CHAT P2P con cifrado RSA (hasta 2048 bits) (Windows). En el .zip incluyo el código fuente (en C por supuesto ) por si a alguien le sirve para algo.
Sería agradable que al menos lo probarais una vez y comentaseis qué os parece.
Salu2 
Ultima edición por tonilope el 02/06/2007 4:47 pm; editado 1 vez |
|
| Volver arriba | |
 |
javi_rubio
Registrado: 09 Ago 2006 Mensajes: 53 Ubicación: Barcelona
| Publicado: 05/09/2006 10:46 am | | | Título: |
| Solo de ver el codigo ya me he acojonado....  Esto queda muy por encima de mis posibilidades, y por lo tanto no puedo opinar, pero parece una currada...
Saludos!!
 |
|
| Volver arriba | |
 |
tonilope
Registrado: 16 Oct 2005 Mensajes: 249
| Publicado: 05/09/2006 2:40 pm | | | Título: |
| | Cita: | Solo de ver el codigo ya me he acojonado.... Confused Esto queda muy por encima de mis posibilidades, y por lo tanto no puedo opinar, pero parece una currada... |
Jajaja, la verdad es que viendo cómo empezó se me ha ido un poco de las manos xD. Pero aún así, puedes dar tu opinión sobre el funcionamiento (si usas Windows, claro).
Salu2  |
|
| Volver arriba | |
 |
|
cheroky
Registrado: 22 Sep 2005 Mensajes: 1372 Ubicación: En ecx esperando un call
| Publicado: 05/09/2006 3:43 pm | | | Título: |
| Esta claro que te lo has currado pero voy hacer unas criticas sin animo de desmerecer el trabajo que has realizado que tiene su merito y habiendolo mirado por encima.
El paso de argumentos tan extenso se podria haber implementado con algo como getopt (POSIX) o similares.
Puesto que usas librerias de terceros no estaria de mas que distribuyeras un makefile o archivo de proyecto con alguna indicacion de las dependencias que tuviere.
Te faltan algunos inclusiones como winsock.h o winsock2.h en algunos compiladores podria no compilar solo con windows.h.
Fflush no esta definido para la entrada estandar.
Gran parte del codigo se limita a la representacion de datos y a cosas tan triviales como a colorear esta, se podria haber modularizado aparte separando la paja del grano 
No entiendo por que usas memoria dinamica como si fuera estatica, es decir allocas memoria con una costante y este bloque es fijo durante toda la vida del programa, es mas eficiente y no hay problemas de posibles memory leaks usando memoria automatica, tampoco usas la logica para comprobar esos mallocs, hay programadores mas o menos noveles que piensan que usando malloc o familia son mas 'geeks' (no digo que sea tu caso).
El programa es bastante inseguro en general, por ejemplo hecha un vistazo a la funcion analiza_mensaje, un potencial overflow, si ademas le añades que no compruebas malloc es una bomba.
S2. _________________ - Explícito es mejor que implícito. - Simple es mejor que complejo. - Complejo es mejor que complicado. - Plano es mejor que anidado. - Ralo es mejor que denso. |
|
| Volver arriba | |
 |
kanijo
Registrado: 11 Ago 2006 Mensajes: 88
| Publicado: 06/09/2006 12:36 am | | | Título: |
| En general estoy de acuerdo con cheroky, creo que abusas de malloc y que haces muy pocas comprobaciones de error con lo que el programa se vuelve una potencial bomba.
Otro dato que creo que puede ayudar a clarificar el código es que muchas funciones como carga_comando, saca_comando etc... usan dos parámetros, uno de entrada y otro exclusivamente de salida. Creo que sería más claro si la función retornase el valor en lugar de pasarlo como parámetro por referencia.
Un saludo _________________ Hazlo, o no lo hagas, pero no lo intentes. |
|
| Volver arriba | |
 |
tonilope
Registrado: 16 Oct 2005 Mensajes: 249
| Publicado: 06/09/2006 4:52 am | | | Título: |
| | Cita: | El paso de argumentos tan extenso se podria haber implementado con algo como getopt (POSIX) o similares.
|
No conocía getopt. Lo acabo de mirar y la verdad es que es muy útil. -1
| Cita: | Puesto que usas librerias de terceros no estaria de mas que distribuyeras un makefile o archivo de proyecto con alguna indicacion de las dependencias que tuviere. |
En chateitor.h viene comentado que es necesario "linkar" 3 librerías estáticas. (No las incluyo porque son fáciles de conseguir por Inet)
| Cita: | | Te faltan algunos inclusiones como winsock.h o winsock2.h en algunos compiladores podria no compilar solo con windows.h |
En chateitor.h ya está el include de wisock2.h
| Cita: | | Fflush no esta definido para la entrada estandar. |
Cierto. -1
| Cita: | | Gran parte del codigo se limita a la representacion de datos y a cosas tan triviales como a colorear esta, se podria haber modularizado aparte separando la paja del grano Wink |
MUY cierto -1
| Cita: | | No entiendo por que usas memoria dinamica como si fuera estatica, es decir allocas memoria con una costante y este bloque es fijo durante toda la vida del programa, es mas eficiente y no hay problemas de posibles memory leaks usando memoria automatica, tampoco usas la logica para comprobar esos mallocs, hay programadores mas o menos noveles que piensan que usando malloc o familia son mas 'geeks' (no digo que sea tu caso). |
Pues llámalo "geekismo", malas costumbres o yo qué sé, pero llevas razón. -1
| Cita: | | El programa es bastante inseguro en general, por ejemplo hecha un vistazo a la funcion analiza_mensaje, un potencial overflow, si ademas le añades que no compruebas malloc es una bomba. |
Sí y no. Está claro que no he metido ni una comprobación if-else en los mallocs (prisas), pero analiza_mensaje(= tal y como está ahora mismo no puede petar (comprobado) . -0.5
GRACIAS por bajarte el programa y por tu tiempo en probarlo. Se agradecen opiniones (constructivas) de gente avezada que no miran tanto los colorines o si pita de vez en cuando xD
Salu2 
Ultima edición por tonilope el 06/09/2006 4:55 am; editado 2 veces |
|
| Volver arriba | |
 |
|
tonilope
Registrado: 16 Oct 2005 Mensajes: 249
| Publicado: 06/09/2006 4:54 am | | | Título: |
| | Cita: | | Otro dato que creo que puede ayudar a clarificar el código es que muchas funciones como carga_comando, saca_comando etc... usan dos parámetros, uno de entrada y otro exclusivamente de salida. Creo que sería más claro si la función retornase el valor en lugar de pasarlo como parámetro por referencia. |
MMMM, subjetivo, pero se admite -0.5
Gracias por opinar.
Salu2  |
|
| Volver arriba | |
 |
cheroky
Registrado: 22 Sep 2005 Mensajes: 1372 Ubicación: En ecx esperando un call
| Publicado: 06/09/2006 5:15 am | | | Título: |
| | tonilope escribió: |
| cheroky escribió: | El programa es bastante inseguro en general, por ejemplo hecha un vistazo a la funcion analiza_mensaje, un potencial overflow, si ademas le añades que no compruebas malloc es una bomba.
|
Sí y no. Está claro que no he metido ni una comprobación if-else en los mallocs (prisas), pero analiza_mensaje(= tal y como está ahora mismo no puede petar (comprobado) . -0.5
|
Honestamente, igual he pecado un poco de presuntuoso por que no lo he probado directamente, pero habra que buscarle un xploit 
S2. _________________ - Explícito es mejor que implícito. - Simple es mejor que complejo. - Complejo es mejor que complicado. - Plano es mejor que anidado. - Ralo es mejor que denso. |
|
| Volver arriba | |
 |
|
|