Thread View: es.comp.os.linux.programacion
28 messages
28 total messages
Started by PotXoka
Sat, 23 Sep 2006 19:09
Hacer programas seguro
Author: PotXoka
Date: Sat, 23 Sep 2006 19:09
Date: Sat, 23 Sep 2006 19:09
8 lines
1182 bytes
1182 bytes
quiero realizar un par de programillas en C/C++ para linux y a la vez que lo hago,quiero aprender a hacerlos seguros,he visto por ejemplo en boa (servidor web) hace llamadas a umask y chroot,las cuales desconozco (como programacion C) �alguna manera de aprender a hacer programas seguros?�Esas funciones hacen los mismo que el programa de shell?�Como funciona la funcion chroot?muchas gracias saludos
Re: Hacer programas seguro
Author: Pascal Bourguignon
Date: Sat, 23 Sep 2006 20:38
Date: Sat, 23 Sep 2006 20:38
33 lines
2410 bytes
2410 bytes
PotXoka <potxoka3a@yahoo.es> writes:
> quiero realizar un par de programillas en C/C++ para linux y a la vez
> que lo hago,quiero aprender a hacerlos seguros,he visto por ejemplo en
> boa (servidor web) hace llamadas a umask y chroot,las cuales
> desconozco (como programacion C) �alguna manera de aprender a hacer
> programas seguros?
La primiera cosa, para hacer un programa seguro, ser�a NO USAR C.
Cualquier otro lenguaje de m�s alto nivel sera mejor.
Lisp, Haskel, Ocaml, etc...
> �Esas funciones hacen los mismo que el programa de shell?
No.
Es el programa shell de mismo nombre que basicamente llama a estas funciones.
> �Como funciona la funcion chroot? muchas gracias
�Como se usa? o �Como funciona? Para saber como funciona, tendras que
leer las fuentes de tu sistema. �Linux, OpenBSD, MachOS, SCO?
Para saber lo que hace:
man 2 chroot
--
__Pascal Bourguignon__ http://www.informatimago.com/
"Specifications are for the weak and timid!"
Re: Hacer programas seguro
Author: arrase
Date: Sun, 24 Sep 2006 18:34
Date: Sun, 24 Sep 2006 18:34
15 lines
1750 bytes
1750 bytes
> La primiera cosa, para hacer un programa seguro, ser�a NO USAR C.
>
> Cualquier otro lenguaje de m�s alto nivel sera mejor.
> Lisp, Haskel, Ocaml, etc...
Discrepo, si sabes usarlo bien C es tan seguro como cualquier otro.
--
<arrase@gulcas.org><http://arrase.no-ip.org><www.gulcas.org>
<Gnupg Keys: http://arrase.no-ip.org/pubkey.txt>
print "".join(map(lambda numChar:filter(lambda x:(x<"0") or \
(x>"9"),numChar),["0"+chr(104)+"0","1"+chr(111)+"1","2"+chr(108)+"2", \
"3"+chr(97)+"3","4"+chr(32)+"4","5"+chr(109)+"5","6"+chr(117)+"6", \
"7"+chr(110)+"7","8"+chr(100)+"8","9"+chr(111)+"9"]))
Re: Hacer programas seguro
Author: iarenaza
Date: Sun, 24 Sep 2006 19:00
Date: Sun, 24 Sep 2006 19:00
27 lines
2074 bytes
2074 bytes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
>>>>> "arrase" == arrase <arrase@gulcas.org> writes:
arrase> Discrepo, si sabes usarlo bien C es tan seguro como
arrase> cualquier otro.
El problema es que usarlo bien (desde el punto de vista de la
programaci�n segura) es m�s complicado que en otros lenguajes de
programaci�n que los citados, porque los lenguajes hacen un mont�n de
cosas por t� (por poner un ejemplo, es _imposible_ tener un 'buffer
overflow' en un programa en lisp).
Saludos. I�aki.
- --
Get PGP/GPG Keys at http://www.escomposlinux.org/iarenaza/pgpkey.php
I use free software / Yo uso software libre
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Processed by Mailcrypt 3.5.8 <http://mailcrypt.sourceforge.net/>
iD8DBQFFFtW0ZXLnGT1HLgcRAosRAKCFloxTC55UDBYPteXN2GsGpZTdcQCgined
oqx4+3LhByxS3WkWzpm+ROk=
=f+c/
-----END PGP SIGNATURE-----
Re: Hacer programas seguro
Author: arrase
Date: Sun, 24 Sep 2006 19:37
Date: Sun, 24 Sep 2006 19:37
15 lines
1898 bytes
1898 bytes
> El problema es que usarlo bien (desde el punto de vista de la
> programaci�n segura) es m�s complicado que en otros lenguajes de
> programaci�n que los citados
Eso ya es otro tema.
--
<arrase@gulcas.org><http://arrase.no-ip.org><www.gulcas.org>
<Gnupg Keys: http://arrase.no-ip.org/pubkey.txt>
print "".join(map(lambda numChar:filter(lambda x:(x<"0") or \
(x>"9"),numChar),["0"+chr(104)+"0","1"+chr(111)+"1","2"+chr(108)+"2", \
"3"+chr(97)+"3","4"+chr(32)+"4","5"+chr(109)+"5","6"+chr(117)+"6", \
"7"+chr(110)+"7","8"+chr(100)+"8","9"+chr(111)+"9"]))
Re: Hacer programas seguro
Author: ravenheart
Date: Sun, 24 Sep 2006 22:32
Date: Sun, 24 Sep 2006 22:32
8 lines
1567 bytes
1567 bytes
> El problema es que usarlo bien (desde el punto de vista de la > programaci�n segura) es m�s complicado que en otros lenguajes de > programaci�n que los citados, porque los lenguajes hacen un mont�n de > cosas por t� (por poner un ejemplo, es _imposible_ tener un 'buffer > overflow' en un programa en lisp). Pues habr� que escribir a los hackers del kernel para que migren a lips, as� ser� m�s seguro :-)
Re: Hacer programas seguro
Author: arrase
Date: Sun, 24 Sep 2006 23:30
Date: Sun, 24 Sep 2006 23:30
21 lines
2199 bytes
2199 bytes
ravenheart escribi�:
>> El problema es que usarlo bien (desde el punto de vista de la
>> programaci�n segura) es m�s complicado que en otros lenguajes de
>> programaci�n que los citados, porque los lenguajes hacen un mont�n de
>> cosas por t� (por poner un ejemplo, es _imposible_ tener un 'buffer
>> overflow' en un programa en lisp).
>
> Pues habr� que escribir a los hackers del kernel para que migren a lips,
> as� ser� m�s seguro :-)
Debe ser por eso que se dice lo de "...god talks in lisp....", cuestion
de seguridad :) .
--
<arrase@gulcas.org><http://arrase.no-ip.org><www.gulcas.org>
<Gnupg Keys: http://arrase.no-ip.org/pubkey.txt>
print "".join(map(lambda numChar:filter(lambda x:(x<"0") or \
(x>"9"),numChar),["0"+chr(104)+"0","1"+chr(111)+"1","2"+chr(108)+"2", \
"3"+chr(97)+"3","4"+chr(32)+"4","5"+chr(109)+"5","6"+chr(117)+"6", \
"7"+chr(110)+"7","8"+chr(100)+"8","9"+chr(111)+"9"]))
Re: Hacer programas seguro
Author: arrase
Date: Sun, 24 Sep 2006 23:39
Date: Sun, 24 Sep 2006 23:39
13 lines
1608 bytes
1608 bytes
Ahora algo mas en serio:
http://es.tldp.org/Manuales-LuCAS/doc-unixsec/unixsec-html/node82.html
http://www.iit.upco.es/palacios/cursoc/estiloCseguro.pdf
--
<arrase@gulcas.org><http://arrase.no-ip.org><www.gulcas.org>
<Gnupg Keys: http://arrase.no-ip.org/pubkey.txt>
print "".join(map(lambda numChar:filter(lambda x:(x<"0") or \
(x>"9"),numChar),["0"+chr(104)+"0","1"+chr(111)+"1","2"+chr(108)+"2", \
"3"+chr(97)+"3","4"+chr(32)+"4","5"+chr(109)+"5","6"+chr(117)+"6", \
"7"+chr(110)+"7","8"+chr(100)+"8","9"+chr(111)+"9"]))
Re: Hacer programas seguro
Author: Pedro Maicas
Date: Mon, 25 Sep 2006 16:14
Date: Mon, 25 Sep 2006 16:14
27 lines
2052 bytes
2052 bytes
On Mon, 25 Sep 2006 01:39:14 +0200, arrase <arrase@gulcas.org> wrote: >http://www.iit.upco.es/palacios/cursoc/estiloCseguro.pdf Creo que para hacer un programa 'seguro' lo �nico de lo que debemos preocuparnos es del buffer overflow, todas las funciones que aceptan datos en un buffer, deber�an comprobar que los datos no se salen de ese buffer. A lo dem�s no le veo relacion con la seguridad, si haces un bucle infinito, si se te desmanda un puntero, etc... lo �nico que pasa es que tienes un programa con bugs, pero nada m�s. Es como si quieres sumar 2+2 y en vez de sumarlo los restas, eso no es un programa inseguro sino un programa que no hace lo que debe. Por otro lado un programa que no comprueba el desbordamiento de buffer, es un programa 'correcto' desde el punto de vista del algorimo que se trata de aplicar, pero es inseguro porque se puede inyectar c�digo a trav�s del buffer. Saludos :-) -Pedro- http://www.maicas.net/ e-mail en www.maicas.net
Re: Hacer programas seguro
Author: ravenheart
Date: Mon, 25 Sep 2006 16:45
Date: Mon, 25 Sep 2006 16:45
10 lines
1597 bytes
1597 bytes
> Creo que para hacer un programa 'seguro' lo �nico de lo > que debemos preocuparnos es del buffer overflow, todas > las funciones que aceptan datos en un buffer, deber�an > comprobar que los datos no se salen de ese buffer. Sospecho que si fuera tan sencillo no habr�a tanto software vulnerable hoy d�a. �ltimamente se habla mucho, por poner un ejemplo, de los desbordamientos de enteros (integer overflow).
Re: Hacer programas seguro
Author: arrase
Date: Mon, 25 Sep 2006 17:06
Date: Mon, 25 Sep 2006 17:06
15 lines
1847 bytes
1847 bytes
> Creo que para hacer un programa 'seguro' lo �nico de lo
> que debemos preocuparnos es del buffer overflow,
�Y los off by one, race conditions,....�son poca cosa para su merced? :)
Saludos.
--
<arrase@gulcas.org><http://arrase.no-ip.org><www.gulcas.org>
<Gnupg Keys: http://arrase.no-ip.org/pubkey.txt>
print "".join(map(lambda numChar:filter(lambda x:(x<"0") or \
(x>"9"),numChar),["0"+chr(104)+"0","1"+chr(111)+"1","2"+chr(108)+"2", \
"3"+chr(97)+"3","4"+chr(32)+"4","5"+chr(109)+"5","6"+chr(117)+"6", \
"7"+chr(110)+"7","8"+chr(100)+"8","9"+chr(111)+"9"]))
Re: Hacer programas seguro
Author: Pascal Bourguignon
Date: Mon, 25 Sep 2006 17:47
Date: Mon, 25 Sep 2006 17:47
99 lines
4647 bytes
4647 bytes
Pedro Maicas <esta_no_es@jet.es> writes:
> On Mon, 25 Sep 2006 01:39:14 +0200, arrase <arrase@gulcas.org> wrote:
>
>>http://www.iit.upco.es/palacios/cursoc/estiloCseguro.pdf
>
>
> Creo que para hacer un programa 'seguro' lo �nico de lo
> que debemos preocuparnos es del buffer overflow, todas
> las funciones que aceptan datos en un buffer, deber�an
> comprobar que los datos no se salen de ese buffer.
>
> A lo dem�s no le veo relacion con la seguridad, si haces
> un bucle infinito, si se te desmanda un puntero, etc...
> lo �nico que pasa es que tienes un programa con bugs,
> pero nada m�s. Es como si quieres sumar 2+2 y en vez
> de sumarlo los restas, eso no es un programa inseguro
> sino un programa que no hace lo que debe.
>
> Por otro lado un programa que no comprueba el desbordamiento
> de buffer, es un programa 'correcto' desde el punto de vista
> del algorimo que se trata de aplicar, pero es inseguro
> porque se puede inyectar c�digo a trav�s del buffer.
Por ejemplo, el program siguiente es perfecto, no hay ningun
desbordamiento de bufer, los modulos sockets y strings se
responsabilizan de ello. Pero, tiene un grave problem a de seguridad.
Es un servidor que espera conexiones, y comandos dados por algun
usuario sobre estas conexiones. Normalmente, el usuario da un comando:
GET /camio/hacia/un/archivo
y este programa copia el archivo en un directorio /var/spool/server/
para procesar lo. (Podemos a�adir comprobaciones, de autoridad y
derechos de acceso, esto no es el problema).
------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include "sockets.h"
#include "strings.h"
const int PORT=12345;
int main(void){
socket_start_server(PORT);
while(1){
if(socket_listen()){
string usercmd=socket_read();
if(string_equal_p(string_from_c("GET "),string_substring(usercmd,0,4))){
string file=string_substring(usercmd,4,STRING_END);
string command=string_format("cp %s /var/spool/server/",file);
system(string_to_c(command));
/* ... */
}/* ... */
socket_disconnect();
}
return(0);
}
------------------------------------------------------------------------
Que pasaria si el usuario, inocentemente o malamente, da como nombre
de archivo:
GET /etc/passwd /tmp;rm -rf /&echo /
Entonces, vamos a llamar la funcion system con la cadena (sin desbordamento):
cp /etc/passwd /tmp;rm -rf /&echo / /var/spool/server/
lo que sera interpretado por el shell como tres comandos:
cp /etc/passwd /tmp
seguido de:
rm -rf / &
al mismo tiempo que:
echo / /var/spool/server/
Total: no desbordamiento, pero espejo que tienes las copias de
seguridad al dia...
Eso demuestra que programar de forma segura es m�s que una question de
bufers. Hay funciones que no se debe usar, otras que se debe usar con
sumo cuidado, y cosas que se pueden hacer para limitar los problemas,
como poner los servidores en prision (chroot), que no se ejecuten como
root, etc.
--
__Pascal Bourguignon__ http://www.informatimago.com/
"This statement is false." In Lisp: (defun Q () (eq nil (Q)))
Re: Hacer programas seguro
Author: Pedro Maicas
Date: Mon, 25 Sep 2006 20:01
Date: Mon, 25 Sep 2006 20:01
21 lines
1986 bytes
1986 bytes
On Mon, 25 Sep 2006 19:47:35 +0200, Pascal Bourguignon <pjb@informatimago.com> wrote: >Es un servidor que espera conexiones, y comandos dados por algun >usuario sobre estas conexiones. Normalmente, el usuario da un comando: � Eso no afecta esos otros lenguajes ? Es que hab�a cre�do entender que para programar seguro lo que hay que hacer es usar Lisp en vez de C. Y ese pdf que se da como receta para programar seguro en C lo que aconseja es "no hacer bucles infinitos", "comprobar que las funciones recursivas tienen una salida", ... es decir que no, que no era eso. Saludos :-) -Pedro- http://www.maicas.net/ e-mail en www.maicas.net
Re: Hacer programas seguro
Author: Pascal Bourguignon
Date: Mon, 25 Sep 2006 21:36
Date: Mon, 25 Sep 2006 21:36
41 lines
2939 bytes
2939 bytes
Pedro Maicas <esta_no_es@jet.es> writes: > On Mon, 25 Sep 2006 19:47:35 +0200, Pascal Bourguignon <pjb@informatimago.com> > wrote: > >>Es un servidor que espera conexiones, y comandos dados por algun >>usuario sobre estas conexiones. Normalmente, el usuario da un comando: > > � Eso no afecta esos otros lenguajes ? Si por supuesto. Pero es solo una parte. Ademas en C tienes lo de los desbordamientos de bufer. Si tienes que pensar en los desbordamientos de bufer, te olvidaras de estas cosas. Al usar otro lenguaje, te libras la mente para pensar a estas cosas en lugar de detallers como los desbordamientos de bufer o la gestion de la memoria. > Es que hab�a cre�do entender que para programar seguro > lo que hay que hacer es usar Lisp en vez de C. Y ese pdf > que se da como receta para programar seguro en C lo que > aconseja es "no hacer bucles infinitos", Tonteria, la mayoria de los programas no son algoritmos, nunca se terminan, al contrario, es un error que se terminen (salvo cuando el usuario le desea). > "comprobar que las funciones recursivas tienen una salida", ... es > decir que no, que no era eso. Son lo basico de la programaci�n. M�s f�cil a hacer con lenguajes de alto nivel que con C. -- __Pascal Bourguignon__ http://www.informatimago.com/ In a World without Walls and Fences, who needs Windows and Gates?
Re: Hacer programas seguro
Author: Pedro Maicas
Date: Tue, 26 Sep 2006 09:41
Date: Tue, 26 Sep 2006 09:41
24 lines
2278 bytes
2278 bytes
On Mon, 25 Sep 2006 23:36:07 +0200, Pascal Bourguignon <pjb@informatimago.com> wrote: >Si por supuesto. Pero es solo una parte. Ademas en C tienes lo de >los desbordamientos de bufer. Si tienes que pensar en los >desbordamientos de bufer, te olvidaras de estas cosas. Al usar otro Bueno, bueno, eso te aseguro que a mi no me pasa. Entonces deduzco que debo tener una mente privilegiada, ya que soy capaz de prevenir el desbordamiento de buffer a la vez que estoy al tanto de no formatear por error el hd, y todo a la vez que evito darle patadas a la cpu :-) M�s facil en otros lenguajes si que es, es que los otros lenguajes de por s� son m�s f�ciles en casi todos los aspectos de la palabra facil. Pero por otro lado para cualquier cosa que vayas a hacer a bajo nivel lo mejor es el C y una vez que aprendes C no se porqu� ser� que ya no te apetece usar otro lenguaje. Saludos :-) -Pedro- http://www.maicas.net/ e-mail en www.maicas.net
Re: Hacer programas seguro
Author: Jos� Luis P�rez Diez
Date: Tue, 26 Sep 2006 10:29
Date: Tue, 26 Sep 2006 10:29
15 lines
1865 bytes
1865 bytes
In article <11thh2h68c40qdbk7iifj4g232ko0ln3kh@4ax.com>, Pedro Maicas wrote: > Pero por otro lado para cualquier cosa que vayas a hacer a bajo nivel > lo mejor es el C y una vez que aprendes C no se porqu� ser� que ya > no te apetece usar otro lenguaje. > Si has de hacer algo a bajo nivel tiras de maquina o ensamblador. -- Los programadores esta ocupados intendtado mejorar los programas a prueba de idiotas. Mientras tanto el universo intenta mejorar los idiotas. El universo va ganando
Re: Hacer programas seguro
Author: AnimAlf
Date: Tue, 26 Sep 2006 10:58
Date: Tue, 26 Sep 2006 10:58
49 lines
3009 bytes
3009 bytes
--=-zkKK4X+Ajlf76E3yz2n0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
El dt, 26-09-2006 a las 12:29 +0200, Jos=C3=A9 Luis P=C3=A9rez Diez escribi=
=C3=B3:
> In article <11thh2h68c40qdbk7iifj4g232ko0ln3kh@4ax.com>, Pedro Maicas=20
> wrote:
> > Pero por otro lado para cualquier cosa que vayas a hacer a bajo nivel
> > lo mejor es el C y una vez que aprendes C no se porqu=C3=A9 ser=C3=A1 q=
ue ya
> > no te apetece usar otro lenguaje.
> >
>=20
> Si has de hacer algo a bajo nivel tiras de maquina o ensamblador.
>=20
=C2=BF? No estaba diciendo eso?
http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html
int main(void){
int foo =3D 10, bar =3D 15;
__asm__ __volatile__("addl %%ebx,%%eax"
:"=3Da"(foo)
:"a"(foo), "b"(bar)
);
printf("foo+bar=3D%d\n", foo);
return 0;
}
--=-zkKK4X+Ajlf76E3yz2n0
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada
digitalmente
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)
iQCVAwUARRkH4h535IyztBIVAQI7rgQAjL3m8csK2mgkrfkbvY0/FK8U67ypjo0M
3GQZR0Mqhknn05Qa+7myIsFNdpgSXyTDaU9ZiicDoW7adOPrwEOPi0WrlUzWzSdC
8/0CGeOuK+zQg6oATjKygnt/3pYVDg5x91NJvG/qrDo96meU4iyA9Cyt9ik+g3+5
O3dA89Vv3O4=
=k9or
-----END PGP SIGNATURE-----
--=-zkKK4X+Ajlf76E3yz2n0--
Re: Hacer programas seguro
Author: Pedro Maicas
Date: Tue, 26 Sep 2006 11:03
Date: Tue, 26 Sep 2006 11:03
17 lines
1780 bytes
1780 bytes
On Tue, 26 Sep 2006 12:29:23 +0200, Jos� Luis P�rez Diez <jluis@agujero-negro.escomposlinux.org> wrote: >Si has de hacer algo a bajo nivel tiras de maquina o ensamblador. > De ninguna manera, solo cuando no puedes hacer algo en C, y por lo tanto "te ves obligado", tiras de ensamblador. Precisamente el c se invent� por(para) eso, no ? Saludos :-) -Pedro- http://www.maicas.net/ e-mail en www.maicas.net
Re: Hacer programas seguro
Author: arrase
Date: Tue, 26 Sep 2006 11:54
Date: Tue, 26 Sep 2006 11:54
18 lines
2210 bytes
2210 bytes
> Si has de hacer algo a bajo nivel tiras de maquina o ensamblador.
Si no hay otra opcion lo harias pero es del genero tonto hacer algo en
ensamblador si no es 'por exigencias del guion'.
Y cualquiera que ha programado en ensamblador de cualquier arquitectura
te dira lo mismo.
--
<arrase@gulcas.org><http://arrase.no-ip.org><www.gulcas.org>
<Gnupg Keys: http://arrase.no-ip.org/pubkey.txt>
print "".join(map(lambda numChar:filter(lambda x:(x<"0") or \
(x>"9"),numChar),["0"+chr(104)+"0","1"+chr(111)+"1","2"+chr(108)+"2", \
"3"+chr(97)+"3","4"+chr(32)+"4","5"+chr(109)+"5","6"+chr(117)+"6", \
"7"+chr(110)+"7","8"+chr(100)+"8","9"+chr(111)+"9"]))
Re: Hacer programas seguro
Author: Alberto Cabello Sanchez
Date: Tue, 26 Sep 2006 11:56
Date: Tue, 26 Sep 2006 11:56
11 lines
1543 bytes
1543 bytes
Pedro Maicas wrote: > lo mejor es el C y una vez que aprendes C no se porqu� ser� que ya > no te apetece usar otro lenguaje. Porque te cuesta tanto aprender que te da miedo probar otro, a ver si va a ser m�s potente, m�s f�cil y m�s eficaz (o al menos a m� me pasa) y ves que has hecho el panoli. Volviendo al tema, un buen punto de partida es esto: http://www.tldp.org/HOWTO/Secure-Programs-HOWTO/index.html
Re: Hacer programas seguro
Author: arrase
Date: Tue, 26 Sep 2006 11:58
Date: Tue, 26 Sep 2006 11:58
23 lines
2337 bytes
2337 bytes
> Pero por otro lado para cualquier cosa que vayas a hacer a bajo nivel
> lo mejor es el C y una vez que aprendes C no se porqu� ser� que ya
> no te apetece usar otro lenguaje.
Y se hace mas sencillo introducirte en lenguajes como python,java,.., yo
creo que es el lenguaje base para programar, no tiene sentido llamarse a
uno mismo programador sin tener nociones de gestion de memoria, acceso a
ficheros (por las race conditions), nocienes sobre el heap, stack,...que
ocurre en una llamada a funcion,..... y en la mayoria de casos eso es
totalmente transparente en los lenguajes modernos.
Saludos.
--
<arrase@gulcas.org><http://arrase.no-ip.org><www.gulcas.org>
<Gnupg Keys: http://arrase.no-ip.org/pubkey.txt>
print "".join(map(lambda numChar:filter(lambda x:(x<"0") or \
(x>"9"),numChar),["0"+chr(104)+"0","1"+chr(111)+"1","2"+chr(108)+"2", \
"3"+chr(97)+"3","4"+chr(32)+"4","5"+chr(109)+"5","6"+chr(117)+"6", \
"7"+chr(110)+"7","8"+chr(100)+"8","9"+chr(111)+"9"]))
Re: Hacer programas seguro
Author: ravenheart
Date: Tue, 26 Sep 2006 16:24
Date: Tue, 26 Sep 2006 16:24
7 lines
1668 bytes
1668 bytes
> Si no hay otra opcion lo harias pero es del genero tonto hacer algo en > ensamblador si no es 'por exigencias del guion'. > > Y cualquiera que ha programado en ensamblador de cualquier arquitectura > te dira lo mismo. Pues no, cualquiera no
Re: Hacer programas seguro
Author: Jos� Luis P�rez Diez
Date: Wed, 27 Sep 2006 07:31
Date: Wed, 27 Sep 2006 07:31
17 lines
1980 bytes
1980 bytes
In article <r32ih2pu3kmhrbpjkoaviqlj6herkenrhf@4ax.com>, Pedro Maicas wrote: > >Si has de hacer algo a bajo nivel tiras de maquina o ensamblador. > > > > De ninguna manera, solo cuando no puedes hacer algo en C, > y por lo tanto "te ves obligado", tiras de ensamblador. > Pero es que normalmente cuando programas a bajo nivel te ves obligado. -- Los programadores esta ocupados intendtado mejorar los programas a prueba de idiotas. Mientras tanto el universo intenta mejorar los idiotas. El universo va ganando
Re: Hacer programas seguro
Author: arrase
Date: Wed, 27 Sep 2006 12:56
Date: Wed, 27 Sep 2006 12:56
21 lines
2397 bytes
2397 bytes
> Pero es que normalmente cuando programas a bajo nivel te ves obligado.
Estaremos de acuerdo en que escribir un kernel, un driver,...es
programacion a bajo nivel ya que en esos casos tenemos poca o ninguna
abstracci�n del hardware �no?
Bien, pues partiendo de esa base solo una peque�a parte del nucleo de
Linux esta escrita en ensamblador y el 90% de los drivers estan escritos
en C a si que en el mundo real las ocasiones en las que te ves obligado
a usar ensamblador son las menos.
Saludos.
--
<arrase@gulcas.org><http://arrase.no-ip.org><www.gulcas.org>
<Gnupg Keys: http://arrase.no-ip.org/pubkey.txt>
print "".join(map(lambda numChar:filter(lambda x:(x<"0") or \
(x>"9"),numChar),["0"+chr(104)+"0","1"+chr(111)+"1","2"+chr(108)+"2", \
"3"+chr(97)+"3","4"+chr(32)+"4","5"+chr(109)+"5","6"+chr(117)+"6", \
"7"+chr(110)+"7","8"+chr(100)+"8","9"+chr(111)+"9"]))
Re: Hacer programas seguro
Author: Jos� Luis P�rez Diez
Date: Thu, 28 Sep 2006 09:52
Date: Thu, 28 Sep 2006 09:52
15 lines
2104 bytes
2104 bytes
In article <efds9f$3kk$1@hercules.cohp1>, Arrase wrote: > Bien, pues partiendo de esa base solo una peque�a parte del nucleo de > Linux esta escrita en ensamblador y el 90% de los drivers estan escritos > en C a si que en el mundo real las ocasiones en las que te ves obligado > a usar ensamblador son las menos. > Pero es que para ese 90% escrito en C serviria casi cualquier otro lenguage. -- Los programadores esta ocupados intendtado mejorar los programas a prueba de idiotas. Mientras tanto el universo intenta mejorar los idiotas. El universo va ganando
Re: Hacer programas seguro
Author: PotXoka
Date: Thu, 28 Sep 2006 20:20
Date: Thu, 28 Sep 2006 20:20
28 lines
1526 bytes
1526 bytes
Pascal Bourguignon escribi�: > > La primiera cosa, para hacer un programa seguro, ser�a NO USAR C. > > Cualquier otro lenguaje de m�s alto nivel sera mejor. > Lisp, Haskel, Ocaml, etc... > > Estos son lenguajes compilados? Lisp me suena algo y Ocaml del mldonkey. > > No. > Es el programa shell de mismo nombre que basicamente llama a estas funciones. > Ok, ya me lo voy a mirar > > > �Como se usa? o �Como funciona? Para saber como funciona, tendras que > leer las fuentes de tu sistema. �Linux, OpenBSD, MachOS, SCO? > > Para saber lo que hace: > > man 2 chroot > En el equipo que tenia solo tenia el 7 gracias saludos
Re: Hacer programas seguro
Author: ravenheart
Date: Thu, 28 Sep 2006 20:32
Date: Thu, 28 Sep 2006 20:32
9 lines
1299 bytes
1299 bytes
>> man 2 chroot >> > En el equipo que tenia solo tenia el 7 Bonita excusa http://www.linuxcommand.org/superman_pages.php > gracias De nada ;-)
Re: Hacer programas seguro
Author: Pascal Bourguignon
Date: Fri, 29 Sep 2006 09:56
Date: Fri, 29 Sep 2006 09:56
22 lines
2176 bytes
2176 bytes
PotXoka <potxoka3a@yahoo.es> writes: > Pascal Bourguignon escribi�: >> La primiera cosa, para hacer un programa seguro, ser�a NO USAR C. >> Cualquier otro lenguaje de m�s alto nivel sera mejor. >> Lisp, Haskel, Ocaml, etc... >> > Estos son lenguajes compilados? Lisp me suena algo y Ocaml del mldonkey. Si, hay compiladores para todo estos lenguajes. Se pede hacer un compilador para cualquier lenguaje. -- __Pascal Bourguignon__ http://www.informatimago.com/ ADVISORY: There is an extremely small but nonzero chance that, through a process known as "tunneling," this product may spontaneously disappear from its present location and reappear at any random place in the universe, including your neighbor's domicile. The manufacturer will not be responsible for any damages or inconveniences that may result.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads