Posts etiquetados ‘tutoriales’

Muchas veces, para instalar programas necesitaremos hacer uso del superusuario de linux. El problema, es que en Ubuntu este está desactivado. Os explico cómo hacerlo:

Entramos en una consola de comandos (Aplicaciones->Accesorios->Terminal).

Tecleamos sudo passwd root. Nos pedirá nuestra contraseña.

Escribimos nuestra contraseña y luego nos pedirá dos veces la que queremos establecer para el superusuario. Ya estará configurado.

Para entrar en modo superusuario, simplemente deberemos escribir su – en un terminal y escribir la contraseña.

Saludos!!

LAMPP: instalando un servidor web en linux ubuntu

Publicado: abril 3, 2011 de Enric Florit en Linux
Etiquetas:, , , , , ,

En el post anterior os hablamos de cómo instalaros ubuntu si usáis windows. Pero si queréis dar el salto definitivo, necesitaréis algunas herramientas básicas para el hackeo. Una muy buena que viene por defecto es gedit. Es un editor de textos básico, es decir, texto plano, y admite muchísimos formatos.

También os tendréis que familiarizar con la consola de comandos. Pero ¿qué mejor manera sino que practicando? Pues manos a la obra.

Si os dedicáis a la programación de webs, o si os interesa aprender PHP o MySQL, necesitaréis instalaros XAMPP, en su versión para linux, LAMPP.

Esta distribución incluye un servidor Apache, uno MySQL ya configurado, un intérprete de PHP y uno de PERL. Está desarrollado por Apache Friends y podéis descargarlo desde aquí:

http://sourceforge.net/projects/xampp/files/XAMPP%20Linux/1.7.4/xampp-linux-1.7.4.tar.gz/download

Por defecto, se os guardará en la carpeta de descargas.

Para instalarlo, iremos a una consola de comandos (Aplicaciones->Accesorios->Terminal) y entraremos como superusuario (lee esto):

su-

cd /opt

Aquí nos pedirá nuestra contraseña. Se la damos y continuamos con la instalación:

tar xvfz /home/[nombredeusuario]/Descargas/xampp-linux-1.7.4.tar.gz -C

/opt/lampp/lampp start

Si no hay errores, el servidor apache ya estará configurado, pero le vamos a meter un pequeño ‘hack’. Os explico porqué: cuando se instala xampp, el directorio de las páginas es ../lampp/htdocs. Como es muy aburrido tener que entrar en una carpeta que está tan escondida, lo que haremos será crear en nuestra carpeta personal una carpeta llamada ./www/

cd ../

mkdir /home/[nombredeusuario]/www

Pero ahora tenemos que configurar el servidor para que esta sea nuestra carpeta raíz. Para ello, y siempre en superusuario, tecleamos:

gedit /opt/lampp/etc/httpd.conf; gedit /opt/lampp/etc/original/httpd.conf

Se nos abrirá un archivo, y tendremos que buscar estas líneas de código (no están juntas):

DocumentRoot “/opt/lampp/htdocs”

<Directory “/opt/lampp/htdocs”>

Y las sustituiremos por estas (respectivamente):

DocumentRoot “/home/[nombredeusuario]/www”

<Directory “/home/[nombredeusuario]/www”>

Guardamos, cerramos el archivo, se nos abrirá otro y repetimos el proceso. Escribimos en la consola de comandos:

/opt/lampp/lampp reloadapache

Y ya tendremos configurado nuestro servidor web. No ha dolido tanto, verdad? 🙂

El problema que tendremos ahora es que, al iniciar el ordenador, no se activará apache, y será como si no lo tuviéramos instalado. ¿Problem? no, es fácil de solucionar.

En la consola de comandos, tecleamos

sudo gedit /etc/rc.local

Y, antes de la última línea, la que pone exit 0, escribimos /opt/lampp/lampp start.

Bueno, espero que os haya servido, si tenéis algun problema en la instalación o algo que aportar no dudéis en dejar comentarios ;).

Saludos.

Textos interesantes para leer.

Publicado: febrero 22, 2011 de nachocp en Tutoriales
Etiquetas:, , , ,

Bueno aquí muestro unos textos interesantes los cuales son interesantes de leer:

·Queda decir que ninguno es mio pero que aún asi puedo aclarar dudas sobre ellos.

 

  • Hacking Windows en general:

http://www.filefactory.com/f/5a1d06bc5aaa6997/

 

Descripción:
El hacking o jaqueo se basa en el arte informático de construir y solucionar problemas que atenten contra la vulnerabilidad de un sistema o aplicación, compartiendo este mismo método con otros hackers y al contrario de lo que erróneamente suele afirmarse no es la técnica de ejecutar una aplicación para robar contraseñas y romper un sistema a través de malware, spyware o un ping, estas acciones las hacen los lamers, y en menor medida, cuando se ha hecho un ataque prolijo sabiendo lo que se hace es realizado por crackers.

 

 

  • Conjunto de textos muy interesantes:

http://www.megaupload.com/?d=B5M4UCZN

 

  • Faq de preguntas y manual interesante (recomendado para los que se inician):


P: �Necesito ser bueno en matem�ticas para llegar a ser un hacker?

P: �Qu� lenguaje deber�a aprender primero?

P: �Qu� clase de hardware necesito?

P:. Deseo contribuir. �Puedes ayudarme a escoger un problema en el que trabajar?

P: �Necesito odiar y golpear a Microsoft?

P: �Pero no imposibilitar� el software de fuente abierta ganarse la vida a los programadores?

P: �C�mo puedo iniciarme? �D�nde puedo obtener un Unix libre?
———————————————————— —————————————————-

P: �Me ense�ar�s a hackear?
R: Desde la primera publicaci�n de esta p�gina, me llegan varias peticiones por semana (a menudo varios por d�a) de gente que quiere que le “ense�e todo sobre hackeo”. Desafortunadamente, no tengo ni el tiempo ni la energ�a para hacer eso; mis propios proyectos de hackeo consumen el 110% de mi tiempo.
Aun si pudiera hacerlo, el hackeo es una actitud y habilidad que debes aprender por ti mismo. Te dar�s cuenta de que los hackers de verdad quieren ayudarte, pero no te respetar�n si comienzas a rogarles que te alimenten en la boca con todo lo que saben.
Aprende unas cuantas cosas primero. Mu�strales que lo est�s intentando, que eres capaz de aprender por tu cuenta. Entonces dir�gete a los hackers que conozcas pero ya con preguntas espec�ficas.
Si escribes un email a un hacker pidi�ndole consejo, hay 2 cosas que debes saber antes. Primero, hemos encontrado que la gente que es perezosa o descuidada en sus escritos suelen ser demasiado perezosos o descuidados para pensar en ser buenos hackers -As� que ten cuidado en deletrear correctamente, y usar buena gram�tica y puntuaci�n. En caso contrario, probablemente ser�s ignorado. En segundo lugar, no te atrevas a pedir una respuesta con una cuenta de ISP diferente a la cuenta desde la que est�s enviando; nos encontramos gente que lo hacen que suelen ser timadores usando cuentas robadas, y no tenemos interes en ayudar o apoyar el robo.

P: �C�mo puedo iniciarme entonces?
R: La mejor manera para empezar probablemente es pasarte por un LUG (“Linux User Group”, un grupo de usuarios de Linux local). Puedes encontrar grupos por ejemplo en la LDP General Linux Information Page (http://www.linuxdoc.org/intro.html); probablemente haya uno cerca de tu localidad, asociado con un colegio o universidad. Los miembros de los LUG probablemente te dar�n un Linux si lo pides, y ciertamente te ayudar�n a instalarlo e iniciarte.

P: �Cu�ndo conviene empezar? �Es demasiado tarde para aprender?
R: Cualquier edad en la cual est�s motivado para iniciarte es buena edad. La mayor�a de la gente parece interesarse entre los 15 y 20 a�os, pero conozco excepciones en ambas direcciones.

P: �Cu�nto tiempo me costar� aprender a hackear?
R: Esto depende de tu talento y lo duro que trabajes. La mayor�a de la gente puede adquirir un nivel de habilidad respetable a los dieciocho meses o dos a�os, si se concentran. Sin embargo, no creas que has finalizado ah�; si eres un hacker de verdad, te pasar�s el resto de tu vida aprendiendo y perfecionando tu material.

P: �Son Visual Basic o C# buenos lenguajes para empezar?
R: No, porque no son portables. No hay ninguna implementaci�n libre de esos lenguajes, as� que estar�as cerr�ndote solo a las plataformas a las que el fabricante decide dar soporte. Aceptar esta situacion de monopolio no es el camino del hacker.
Visual Basic es especialmente tremendo. El hecho de que sea un lenguaje propiedad de Microsoft es suficiente para descalificarlo, y como otras versiones de Basic tiene un dise�o pobre y te ense�ar� malos h�bitos de programacion.
Uno de esos malos h�bitos es hacerte dependiente de las bibliotecas, m�dulos y herramientas de desarrollo procedentes de un solo fabricante. En general, cualquier lenguaje que no est� soportado bajo Linux o un de los BSDs, y/o cuando menos pueda ser ejecutado en 3 diferentes sistemas operativos, es un lenguaje deficiente para aprender a hackear.

P: �Me ayudar�as a crackear un sistema, o me ense�ar�as c�mo hacerlo?
R: No. Alguien que pregunta esto despu�s de leer este documento es demasiado est�pido para poder ser instruido, incluso aunque tuviese tiempo para ello. Cualquier correo con este tipo de preguntas lo ignorar� o responder� con extrema rudeza.

P: �C�mo puedo obtener la contrase�a de la cuenta de otra persona?
R: Eso es cracking. Desaparece, idiota.

P: �C�mo puedo acceder/leer/monitorizar el correo de otra persona?
R: Eso es cracking. Pi�rdete, imb�cil.

P: �C�mo puedo robar privilegios de operador de canal en el IRC?
R: Eso es cracking. Fuera de aqu�, cretino.

P: He sido crackeado. �Me ayudar�s a defenderme de futuros ataques?
R: No. Todo el tiempo me han estado preguntando eso, se debe a la deficiente programaci�n de Microsoft Windows. No es posible proteger a Windows de forma efectiva contra ataques de crackers; sencillamente, su c�digo y su arquitectura tienen demasiados defectos. La unica prevenci�n realizable consiste en cambiar a Linux o a alg�n otro sistema operativo que por lo menos est� dise�ado para poder ser protegido.

P: Estoy teniendo problemas con mi Windows, �me ayudar�s?
R: S�. Ve a una l�nea de comandos de DOS y teclea: ‘format c:’. Cualquier problema que est�s experimentando, desaparecer� en pocos minutos.

P: �D�nde puedo encontrar hackers de verdad para charlar con ellos?
R: La mejor manera es encontrar un grupo de usuarios local de Unix or Linux e ir a sus reuniones (puedes encontrar links a varias listas de grupos de usuarios en el sitio de LDP –http://www.linuxdoc.org/ – en Metalab).

(Antes sol�a decir que no encontrar�as hackers reales en el IRC, pero estoy d�ndome cuenta que eso est� cambiando. Al parecer algunas comunidades de hackers reales, vinculadas a cosas como GIMP y Perl, tienen canales de IRC ahora.)

P: �Me puedes recomendar libros �tiles sobre hacking y temas relacionados?
R: Mantengo un Linux Reading List HOWTO (http://www.linuxdoc.org/HOWTO/Readin…WTO/index.html) que puedes encontrarlo �til. El Loginataka (http://mx.geocities.com/nickidname/loginataka.html) podr�a ser tambi�n interesante.
Para una introducci�n a Python, echa un vistazo a los materiales introductorios (http://www.python.org/doc/Intros.html) en el sitio web de Python.

P: �Necesito ser bueno en matem�ticas para llegar a ser un hacker?
R: No. Aunque necesitas ser capaz de pensar en t�rminos l�gicos y seguir cadenas de razonamiento exacto, el hacking usa muy poca matem�tica formal o aritm�tica.
En particular, no necesitar�s trigonometr�a, c�lculo o an�lisis (eso se lo dejamos a los ingenieros electricos :-)). Algo de matem�ticas finitas (incluyendo �lgebra booleana, teor�a de conjuntos finitos, combinatoria y teor�a de grafos) puede ser �til.

P: �Qu� lenguaje deber�a aprender primero?
R: XHTML (el dialecto m�s reciente de HTML) si todav�a no lo sabes. Existe muchos muy malos libros de HTML afuera, y desafortunadamente solo algunos buenos. El que a m� me parece el mejor es HTML: The Definitive Guide (http://www.oreilly.com/catalog/html4/).
Pero HTML no es un lenguaje de programaci�n completo. Cuando est�s listo para empezar a programar, recomendar�a empezar con Python (http://www.python.org/). Escuchar�s a mucha gente que te recomiende Perl, y Perl es a�n m�s popular que Python, pero es mas dif�cil de aprender y (en mi opini�n) peor dise�ado.
C es realmente importante, pero es tambien mucho mas dif�cil que Python y Perl. No intentes aprenderlo primero.
Usuarios de Windows: no os conform�is con Visual Basic. Os ense�ar� malos h�bitos, y no es portable fuera de Windows. Evitadlo.

P: �Qu� clase de hardware necesito?
R: Sol�a pasar que los ordenadores personales ten�an pocas prestaciones y poca memoria, lo cual impuso l�mites artificiales en el proceso de aprendizaje de un hacker. Esto dej� de ser cierto hace alg�n tiempo; cualquier m�quina de Intel 486DX50 o superior es lo suficientemente poderosa para el el trabajo de desarrollo, X y conexi�n a Internet, y los disquetes m�s peque�os que puedes comprar hoy son suficientes.
Lo importante al escoger una m�quina para aprender es si su hardware es compatible con Linux (o compatible con BSD). Esto vale tambi�n para las m�quinas m�s modernas. La �nica cuesti�n complicada son los modems: algunas m�quinas tiene hardware espec�fico para Windows que no funciona con Linux. [Hay un sitio web llamado linmodems.org (http://www.linmodems.org/) donde podr�s determinar si, pese a ser un “winmodem”, puedes conseguir que tu dispositivo funcione bajo GNU/Linux – N. del T.]
Hay una FAQ acerca de la compatibilidad de hardware; la �ltima versi�n est� aqu� (http://www.tldp.org/HOWTO/Hardware-HOWTO/index.html).

P: Deseo contribuir. �Puedes ayudarme a escoger un tema en el que trabajar?
R: No, porque desconozco cu�les son tus talentos o intereses. Debes estar automotivado o no te dedicar�s seriamente a ello, por eso casi nunca funciona que otras personas elijan por ti.
Prueba esto. Mira los anuncios de Freshmeat (http://freshmeat.net/) durante algunos d�as. Cuando veas uno que te haga pensar: “�Guay, me gustar�a trabajar en eso!”, �nete.

P: �Necesito odiar y golpear a Microsoft?
R: No, no hace falta. Y no porque Microsoft no sea asqueroso, sino porque la cultura hacker exist�a mucho antes que Microsoft y seguir� existiendo a�n largo tiempo despu�s de que Microsoft sea historia. Cualquier energ�a que gastes odiando a Microsoft ser�a mejor empleada entusiasm�ndote con tus habilidades. Escribe buen c�digo -esto ser� un golpe m�s duro para Microsoft y no requiere que ensucies tu karma.

P: �Pero no imposibilitar� el software de fuente abierta ganarse la vida a los programadores?
R: Esto parece improbable -hasta ahora la industria de software de fuente abierta parece estar creando empleos m�s que quit�ndolos. Si tener un programa escrito en una econom�a de red gana sobre no tenerlo escrito, un programador ser� remunerado independientemente de si el programa va a ser c�digo abierto despu�s de realizado. Y no importa cu�nto software “gratis” tienes escrito, parece que siempre habr� m�s demanda para aplicaciones nuevas y especializadas. He escrito m�s sobre esto en las p�ginas de Open Source (http://www.opensource.org/).

P: �C�mo puedo iniciarme? �D�nde puedo obtener un Unix libre?
R: En otro lugar de esta p�gina incluyo punteros a lugares donde puedes obtener el Unix libre m�s usado. Para ser un hacker necesitas motivaci�n y la iniciativa y la habilidad para educarte por ti mismo. Empieza ahora…

LISC mantiene canales IRC – http://openprojects.nu/services/irc.html – donde puedes obtener ayuda.)

3. Aprende a usar la Web y a programar en HTML

La mayor�a de las cosas que ha construido la cultura hacker funcionan fuera de la vista del gran p�blico, ayudando en el funcionamiento de f�bricas, oficinas y universidades, y carecen de un impacto obvio en la vida de quienes no son hackers. La Web es la �nica gran excepci�n, y es tan enorme y brillante este juguete de hackers que incluso los pol�ticos admiten que est� cambiando el mundo. S�lo por esta raz�n (y hay un mont�n de otras igualmente buenas), debes aprender a trabajar en la Web.

No me estoy refiriendo a aprender a manejar un navegador (cualquiera puede hacer eso), sino que debes aprender a escribir HTML, el lenguaje de marcas de la Web. Si a�n no sabes c�mo programar, el aprendizaje que implica la escritura de HTML te ense�ar� algunos de los h�bitos mentales que te ayudar�n luego con la programaci�n. As� que hazte una p�gina personal. Prueba con XHTML, que es m�s claro que el clasico HTML. (Existen buenos tutoriales para principiantes en la Web; aqu� hay uno – http://www.make-a-web-site.com/ -.)

Pero no vayas a creer que por tener una p�gina personal est�s m�s cerca de ser un hacker. La Web est� llena de p�ginas personales. La mayor�a de ellas son banales, basura sin contenido -basura muy vistosa, pero basura al fin (si deseas saber m�s sobre este tema, mira en The HTML Hell Page – http://www.tuxedo.org/~esr/html-hell.html -).

Para que valga la pena, tu p�gina debe tener contenido -debe ser interesante y/o �til para los otros hackers. Y esto nos lleva al pr�ximo tema…

4. Si no tienes un ingl�s funcional, apr�ndelo

Como estadounidense y hablante nativo de ingl�s, era reacio a sugerir esto, por si se interpretaba como una suerte de imperialismo cultural. Pero hablantes nativos de otras lenguas me han urgido a que se�ale que el ingl�s es el lenguaje con el que trabaja la cultura hacker e Internet, y necesitar�s saberlo para funcionar en la comunidad hacker.

Esto es muy cierto. Tiempo atr�s, alrededor de 1991, aprend� que muchos hackers que ten�an el ingl�s como segundo idioma lo usaban en discusiones t�cnicas, incluso cuando compart�an su lengua natal; me comentaron que el ingl�s tiene un vocabulario t�cnico m�s rico que cualquier otra lengua y sencillamente por esto era mejor herramienta para el trabajo. Por razones similares, las traducciones de libros t�cnicos escritos originalmente en ingl�s son con frecuencia insatisfactorias (si es que se hacen).

Linus Torvalds, un finland�s, comenta su codigo en ingl�s (al parecer nunca se le ocurri� hacerlo de otra manera). Su fluidez con el ingl�s ha sido un importante factor en su habilidad para reclutar una comunidad mundial de desarrolladores de Linux. Y esto nos lleva al pr�ximo tema…

Estatus en la cultura hacker
1. Programar software libre
2. Ayudar a probar y depurar software libre
3. Publicar informacion �til
4. Ayudar a mantener en funcionamiento la infraestructura
5. Hacer algo por la cultura hacker en s� misma

Estatus en la cultura hacker

De manera similar a muchas otras culturas sin econom�a monetaria, el hackerismo se basa en la reputaci�n. Est�s intentando resolver problemas interesantes, pero cuan interesantes y buenas son las soluciones que encuentres es algo que s�lo tus iguales o superiores t�cnicamente hablando ser�n capaces de juzgar.

De acuerdo a esto, cuando juegas el juego del hacker, aprendes a puntuarte principalmente en funci�n de lo que los otros hackers piensan acerca de tus habilidades (este es el motivo por el cual no puedes ser un hacker de verdad hasta que otros hackers te denominen as� de manera consistente). Este hecho est� empa�ado por la imagen del hacking como trabajo solitario; tambi�n por un tab� cultural hacker (que ahora est� decayendo, pero a�n es fuerte) que impide que se admita el ego o la validaci�n externa como elementos involucrados en la propia motivaci�n.

Espec�ficamente, el hackerismo es lo que los antrop�logos denominan una cultura del don. Adquieres estatus y reputaci�n no mediante la dominaci�n de las otras personas, ni por ser hermoso/a, ni por tener cosas que las otras personas desean, sino por donar cosas. Espec�ficamente, al donar tu tiempo, tu creatividad, y el resultado de tu destreza.

Existen b�sicamente cinco clases de cosas que puedes hacer para obtener el respeto de los hackers:

1. Escribir software de fuente abierta

Lo primero (lo m�s central y m�s tradicional) es escribir programas que los otros hackers opinen que son divertidos o �tiles, y donar los fuentes del programa a la cultura hacker para que sean utilizados.

(Sol�amos llamarlo free software pero esto confund�a a demasiada gente, que no estaban seguros de qu� se supon�a que significaba free [en ingl�s, el t�rmino free es polis�mico y puede significar “libre” o “gratis”. En castellano no se da tal ambig�edad por lo que la expresi�n “software libre” resulta perfectamente adecuada – N. del T.]. La mayor�a de nosotros, al menos un ratio 2:1 de acuerdo con los an�lisis del contenido de la web, ahora preferimos el t�rmino software “open source” – http://www.opensource.org/ – [En castellano, sin embargo, se sigue usando habitualmente “software libre”, aunque en esta versi�n hemos respetado, como es natural, el cambio en la terminolog�a de Eric, que ha sustituido ” free software” por open source en todos sus documentos, y lo hemos traducido por “c�digo de fuente abierta” – N. del T.]).

Los m�s reverenciados semidioses del hackerismo son las personas que han escrito programas de gran magnitud, con grandes capacidades que satisfacen necesidades de largo alcance, y los donan, de tal manera que cualquiera pueda utilizarlos.

2. Ayudar a probar y depurar software de fuente abierta

Tambi�n son reconocidas aquellas personas que depuran los errores del software de fuente abierta. En este mundo imperfecto, inevitablemente pasaremos la mayor�a de nuestro tiempo de desarrollo en la fase de depuraci�n. Este es el motivo por el cual los desarrolladores de software de fuente abierta piensan que un buen “beta-tester” (probador de versiones beta, alguien que sabe c�mo describir claramente los s�ntomas, que puede localizar correctamente los problemas, que tolera los errores en una entrega apurada, y que est� dispuesto a aplicar unas cuantas rutinas sencillas de diagn�stico) vale su peso en oro. Aun contando con un solo probador de estos, puede hacerse que el proceso de depuraci�n pase de ser una prolongada pesadilla que lo deja a uno exhausto a ser s�lo una saludable molestia.

Si eres novato, trata de encontrar un programa en desarrollo en el cual est�s interesado, y convi�rtete en un buen probador beta. Hay una progresi�n natural desde ayudar a probar programas, luego ayudar a depurarlos y m�s adelante ayudar a modificarlos. Aprender�s un mont�n de esa manera, y la gente te ayudar� en el futuro.

3. Publicar informaci�n �til

Otra buena cosa que puedes hacer es recopilar y filtrar informaci�n �til e interesante y construir p�ginas web o documentos tipo FAQ (“Preguntas Frecuentes”), y ponerlos a disposici�n de los dem�s.

La gente que mantiene las FAQ t�cnicas m�s importantes gozan de casi tanto respeto como los autores de software libre.

4. Ayudar a mantener en funcionamiento la infraestructura

La cultura hacker (y el desarrollo ingenieril de Internet, para el caso) funciona gracias al trabajo voluntario. Existe una gran cantidad de trabajo necesario pero sin glamour que debe hacerse para que esto siga marchando -administrar listas de correo, moderar foros de discusi�n, mantener sitios donde se archivan grandes cantidades de software, desarrollar RFCs (ftp://ftp.rfc-editor.org/in-notes/rfc2555.txt) y otros est�ndares t�cnicos.

La gente que desarrolla estas actividades goza de mucho respeto, porque todos saben que esos trabajos son grandes consumidores de tiempo y no tan divertidos como meterse con el c�digo. Al hacerlos demuestran su dedicaci�n.

5. Hacer algo por la cultura hacker en s� misma

Finalmente, puedes propagar la cultura hacker en s� misma (por ejemplo, escribiendo un texto acerca de c�mo transformarse en hacker :-)). Esto es algo que no estar�s en disposici�n de hacer hasta que seas bien conocido en el ambiente por alguna de las cuatro cosas reci�n descritas.

La cultura hacker no tiene l�deres exactamente, pero tiene h�roes culturales, ancianos de la tribu, historiadores y portavoces. Cuando hayas estado en las trincheras tiempo suficiente, podr�s crecer y transformarte en uno de ellos. Pero ten cuidado: los hackers desconf�an del ego ruidoso en sus jefes tribales, as� que la b�squeda visible de esa clase de fama es peligrosa. En lugar de esforzarte en ello, es mejor colocarse en una posici�n tal que ella caiga sobre ti, y luego debes comportarte de manera modesta y con gracia con tu estatus.

La conexi�n hacker/nerd

Contrariamente al mito popular, no tienes que ser un nerd [literalmente “empoll�n”, pero en la jerga hacker (http://www.tuxedo.org/~esr/jargon/html/entry/nerd.html) se ha asumido de forma ir�nica, perdiendo el matiz originalmente despectivo, y ha acabado us�ndose como sin�nimo de alguien que se preocupa por las cosas importantes y no se entretiene en trivialidades. – N. del T.] para ser hacker. Ayuda, sin embargo, y muchos hackers son nerds. Al ser un marginado social, el nerd puede mantenerse concentrado en las cosas realmente importantes, como pensar y hackear.

Por esta raz�n, muchos hackers han adoptado la etiqueta “nerd” e incluso utilizan el desagradable t�rmino geek (http://www.tuxedo.org/~esr/jargon/html/entry/geek.html) como insignia de orgullo -es su forma de declarar su propia independencia de las expectativas sociales normales. Si deseas ver una discusi�n m�s extensa, dir�gete a The Geek Page (http://samsara.circus.com/~omni/geek.html).

Si puedes concentrarte lo suficiente en el hacking para ser bueno en ello, y encima disfrutar de vida personal, est� bien. Es much�simo m�s f�cil ahora que cuando yo era un novato en los a�os setenta; la cultura dominante ve con mejores ojos a los tecno-nerds en la actualidad. Hay adem�s un n�mero creciente de personas que se dan cuenta de que con frecuencia los hackers son un material de alta calidad para novio/novia/marido/esposa.

Si te siente atra�do por la actividad hacker porque no tienes vida propia, est� bien tambi�n -al menos no tendr� problemas de concentraci�n-. A lo mejor m�s adelante puedes conseguir una vida propia como el resto de la gente.

Cuestiones de estilo

De nuevo, para ser un hacker, debes desarrollar la mentalidad del hacker. Existen algunas cosas que puedes hacer cuando est�s sin ordenador, que pueden ayudarte. Estas cosas no son sustituto para la actividad propia de hackear (nada lo es) pero muchos hackers las realizan, y sienten que de alguna manera primitiva se conectan con la esencia de la actividad de hackear.

* Aprende a escribir correctamente en tu lengua. A pesar de que existe el estereotipo de que los programadores no son capaces de escribir, una cantidad sorprendente de hackers (incluyendo a los mejores que conozco), son escritores competentes.
* Lee ciencia-ficci�n. Ve a las reuniones sobre ciencia-ficci�n (es un buen m�todo para conocer hackers y proto-hackers).
* Estudia zen, y/o practica artes marciales. (La disciplina mental se parece en ambos casos.)
* Desarrolla un o�do anal�tico para la m�sica. Aprende a apreciar clases peculiares de m�sica. Aprenda a tocar correctamente alg�n instrumento musical, o a cantar.
* Desarrolla inclinaci�n por los dobles sentidos y los juegos de palabras.

Cuantas m�s cosas de estas hayas hecho, es m�s probable que poseas material natural para hacker. Por qu� estas cosas en particular y no otras es algo que no est� completamente claro, pero todas est�n conectadas con un mezcla de tu parte izquierda y derecha de las habilidades de tu cerebro, lo que parece ser una cosa importante; los hackers ser capaces tanto de razonamiento l�gico como de dar pasos al margen de l�gica aparente de un problema en un momento dado.

Trabaja tan intensamente como juegas y juega tan intensamente como trabajas. Para los verdaderos hackers, la diferiencia entre “juego”, “trabajo”, “ciencia” y “arte” tienden a desaparecer, o mezclarse en un alto nivel de creatividad. Adem�s, no te des por satisfecho con tener un estrecho rango de habilidades. Aunque la mayor�a de los hackers se autodescriben como programadores, suelen ser m�s que competentes en actividades diversas -administraci�n de sistemas, dise�o web y arreglar problemas de hardware son algo com�n-. Un hacker que, por un lado, es administrador de sistemas, por el otro es tambi�n habilidoso en programaci�n de scripts y dise�o de webs. Los hackers no hacen las cosas a medias; si se meten de lleno en un tema, tienden a ser muy buenos en �l.

Finalmente, unas cuantas cosas que no debes hacer:

* No uses un nombre de usuario tonto o grandioso.
* No te metas en “flamewars” (discusiones airadas) en Usenet (ni en ning�n otro lado).
* No te llames a ti mismo “ciberpunk”, y no pierdas tu tiempo con nadie que lo haga.
* No publiques en los foros ni escribas correos con montones de errores de tecleo o construcciones gramaticales incorrectas.

La �nica reputaci�n que te ganar�s con esas costumbres es la de tonto. Los hackers tienen una gran memoria -puede costar a�os hasta que te acepten de nuevo despu�s de estas cosas.

El problema con los apodos virtuales merece alguna explicaci�n. Ocultar tu identidad detr�s de un apodo es un comportamiento infantil y tonto que es caracter�stico de los crackers, warez d00dz, y otras formas inferiores de vida. Los hackers no hacen eso; ellos est�n orgullosos de lo que hacen y lo quieren asociado con sus nombres reales . As� que si tienes un nombre de estos, aband�nalo. En la cultura hacker solo servir�n para marcarte como un perdedor.

Otras fuentes de informaci�n

Peter Seebach mantiene un excelente Hacker FAQ (http://www.plethora.net/~seebs/faqs/hacker.html) para directivos que no entiendan el trato con hackers. Si la pagina de Peter no responde, en la siguiente b�squeda en Excite ( http://search.excite.com/search.gw?s…ACKER+FAQ%22+% 2Bseebach%26tsug=-1%26c+sug=10) encontrar�s una copia.

Tambi�n he escrito A Brief History Of Hackerdom ( http://mx.geocities.com/~esr/writing…istory/hacker- history.html).

He escrito un art�culo The Cathedral and the Bazaar ( http://www.tuxedo.org/~esr/writings/…bazaar/index.h tml) [existe traducci�n castellana: La catedral y el bazar – N. del T.], donde se explica bastante sobre c�mo funciona la cultura de Linux y del software de fuente abierta. He estudiado este tema m�s directamente en su segunda parte, Homesteading the Noosphere (http://www.tuxedo.org/~esr/writings/homesteading/) [existe traducci�n castellana: Cultivando la noosfera (http://sindominio.net/biblioweb/tele…/noosfera.html) – N. del T.].

Rick Moen ha escrito un excelente documento en how to run a Linux user group (http://linuxmafia.com/~rick/essays/newlug.html).

Rick Moen y yo hemos colaborado en otro documento en How To Ask Smart Questions (http://www.tuxedo.org/~esr/faqs/smart-questions.html) [existe traducci�n castellana: C�mo hacer preguntas de manera inteligente (http://sindominio.net/ayuda/preguntas-inteligentes.html) – N. del T.]. Esto te ayudar� a encontrar asistencia en el camino.

Si necesitas instrucciones para lo b�sico como ordenadores personales, Unix e Internet , ve a The Unix and Internet Fundamentals HOWTO ( http://linuxdoc.org/HOWTO/Unix-and-I…ndamentals-HOWTO/).

Cuando publicas software o escribes parches, procura seguir las directrices en el Software Release Practice HOWTO ( http://linuxdoc.org/HOWTO/Software-R…ctice-HOWTO/in dex.html).

Preguntas Frecuentes

P: �Me ense�ar�s a hackear?

P: �C�mo puedo iniciarme entonces?

P: �Cu�ndo conviene empezar? �Es demasiado tarde para aprender?

P: �Cu�nto tiempo me costar� aprender a hackear?

P: �Son Visual Basic o C# buenos lenguajes para empezar?

P: �Me ayudar�as a crackear un sistema, o me ense�ar�as c�mo hacerlo?

P: �C�mo puedo obtener la contrase�a de la cuenta de otra persona?

P: �C�mo puedo acceder/leer/monitorizar el correo de otra persona?

P: �C�mo puedo robar privilegios de operador de canal en el IRC?

P: He sido crackeado. �Me ayudar�s a defenderme de futuros ataques?

P: Estoy teniendo problemas con mi Windows, �me ayudar�s?

P: �D�nde puedo encontrar a hackers de verdad para charlar con ellos?

P: �Me puedes recomendar libros �tiles sobre hacking y temas relacionados?

 

  • ¿Cómo convertirse en hacker?: por Eric Steven Raymond/ética del hacker

Copyright � 2001 Eric S. Raymond
Traducci�n: Miquel Vidal <miquel@sindominio.net>, 298645665
a partir de una versi�n previa realizada por C. Ballardi (cballard@santafe.com.ar).

Tabla de Contenidos

�Por qu� existe este documento?

�Qu� es un hacker?

La actitud del hacker
1. El mundo est� lleno de problemas fascinantes que esperan ser resueltos
2. Ning�n problema tendr�a que resolverse dos veces
3. El aburrimiento y el trabajo rutinario son perniciosos
4. La libertad es buena
5. La actitud no es sustituto para la competencia

�Por qu� existe este documento?

Como editor del Jargon File (http://www.tuxedo.org/jargon) (el “Archivo de la jerga hacker”) y autor de algunos documentos bien conocidos del mismo tipo, a menudo recibo emails de entusiastas novatos de la Red preguntando: “�C�mo puedo aprender a ser un hacker m�gico?” Triste es decir que no parece haber ninguna FAQ ni documento web que aborde este tema vital, as� que aqu� va el m�o.

Si est�s leyendo este documento sin conexi�n, la version original en l�nea la puedes encontrar en http://www.tuxedo.org/~esr/faqs/hacker-howto.html.

Nota: hay una lista de Preguntas Frecuentes al final de este documento. Por favor l�elo -2 veces- antes de mandarme un email con preguntas acerca de este documento.

�Qu� es un hacker?

El Jargon File (http://www.tuxedo.org/jargon) contiene un mont�n de definiciones del termino “hacker”, la mayor�a basadas en la afici�n a lo t�cnico y en el placer de resolver problemas sobrepasando los l�mites. Si deseas saber c�mo convertirte en un hacker, bien, solo 2 puntos son realmente relevantes.

Existe una comunidad, una cultura compartida, de programadores expertos y magos de las redes, cuya historia se remonta d�cadas atr�s a los tiempos de los primeros miniordenadores de tiempo compartido y los tempranos experimentos con ARPAnet. Los miembros de esta cultura crearon el t�rmino “hacker”. Los hackers construyeron Internet. Los hackers hicieron de Unix el sistema operativo que es hoy d�a. Los hackers hacen andar Usenet. Los hackers hacen funcionar la WWW. Si eres parte de esta cultura, si has contribuido a ella y otras personas saben qui�n eres y te llaman hacker, entonces eres un hacker.

Los mentalidad hacker no est� confinada a esta cultura del software. Hay gente que aplica la actitud de hacker a otras cosas, como la electr�nica o la m�sica -de hecho, puedes encontrarla en los m�s altos niveles de cualquier ciencia o arte. Los hackers de software reconocen estos esp�ritus emparentados en otras partes y pueden llamarlos “hackers” tambi�n- y algunos sostienen que la naturaleza hacker es en realidad independiente del medio particular en el cual el hacker trabaja. Sin embargo, en el resto de este documento nos centraremos en las habilidades y actitudes de los hackers de software, y en las tradiciones de la cultura compartida que origin� el t�rmino “hacker”.

Existe otro grupo de personas que se llaman a s� mismos hackers, pero que no lo son. Son personas (generalmente varones adolescentes) que se divierten irrumpiendo ilegalmente en ordenadores y haciendo “phreaking” en el sistema tel�fonico. Los aut�nticos hackers tienen un nombre para esas personas: “crackers”, y no quieren saber nada de ellos. Los aut�nticos hackers opinan que la mayor�a de los crackers son perezosos, irresponsables y no muy brillantes, y fundamentan su cr�tica en que ser capaz de romper la seguridad no le hace a uno un hacker, de la misma manera que ser capaz de arrancar un coche con un puente en la llave no le convierte en ingeniero de automotores. Desafortunadamente, muchos periodistas y escritores utilizan err�neamente la palabra “hacker” para describir a los crackers; esto causa enorme irritaci�n a los aut�nticos hackers.

La diferencia b�sica es esta: los hackers construyen cosas; los crackers las destruyen.

Si quieres ser un hacker, contin�a leyendo. Si lo que quieres es ser un cracker, ve directo a leer el alt.2600 (servidor de noticias) y prep�rate para soportar la dura realidad cuando descubras que no eres tan listo como crees. Y eso es todo lo que voy a decir de los crackers.

La actitud del hacker

Los hackers resuelven problemas y construyen cosas, y creen en la libertad y la ayuda voluntaria mutua. Para ser aceptado como hacker, deber�s comportarte como si tuvieras esta actitud en tu interior. Y para comportarte como si tuvieras esta actitud, deber�s creerte de verdad dicha actitud.

Pero si piensas en cultivar las actitudes de hacker solo como una forma de ganar aceptaci�n en esta cultura, te est�s equivocando. Transformarse en la clase de persona que cree estas cosas es importante para ti -para ayudarte a aprender y mantenerte motivado. Como en todas las artes creativas, el modo m�s efectivo de transformarse en un maestro es imitar la mentalidad de los maestros -no s�lo intelectualmente, sino tambi�n emocionalmente.

O como dice el siguiente poema zen moderno:

Para seguir la trayectoria:
mira al maestro,
sigue al maestro,
camina junto con el maestro,
mira a trav�s del maestro,
convi�rtete en el maestro.

As� que, si quieres ser un hacker, repite lo que sigue hasta que te creas lo que est�s diciendo:

1. El mundo est� lleno de problemas fascinantes que esperan ser resueltos

Es muy divertido ser un hacker, pero es la clase de diversi�n que requiere mucho esfuerzo. El esfuerzo requiere motivaci�n. Los atletas triunfadores obtienen su motivaci�n a partir de un tipo de placer f�sico que surge de trabajar su cuerpo, al forzarse a s� mismos m�s all� de sus propios l�mites f�sicos. De manera similar, para ser un hacker deber�s sentir un estremecimiento de tipo primitivo cuando resuelves problemas, afinas tus habilidades y ejercitas tu inteligencia.

Si no eres la clase de persona que te sientes inclinado hacia estas cosas de forma natural, necesitar�s poder experimentarlas para llegar a ser un hacker. De no ser as�, encontrar�s que tu energ�a para “hackear” se ver� agotada por otras distracciones como el sexo, el dinero o la aprobaci�n social.

(Adem�s deber�s desarrollar cierta clase de fe en tu propia capacidad de aprendizaje -la creencia de que, aun cuando puedes no saber todo lo que necesitas para resolver un problema, si tomas una parte de �l y aprendes desde all�, aprender�s lo suficiente para resolver la siguiente parte, y as�, hasta que lo tengas resuelto por completo.)

2. Ning�n problema tendr�a que resolverse dos veces

Los cerebros creativos son un recurso valioso y limitado. No deben desperdiciarse reinventando la rueda cuando hay tantos y tan fascinantes problemas nuevos esperando por all�.

Para comportarte como un hacker, debes creer que el tiempo para pensar que emplean otros hackers es precioso -tanto, que es casi una obligaci�n moral para ti el compartir la informaci�n, resolver los problemas y luego exponer la soluci�n de manera que los otros hackers puedan resolver nuevos problemas, en lugar de enfrentarse perpetuamente con los viejos.

(No tienes que pensar que est�s obligado a regalar todo tu producto creativo, aunque aquellos hackers que lo hacen son los que obtienen m�s respeto por parte de los dem�s hackers. Es consistente con los valores de un hacker venderse lo suficiente para pagar la comida, el alquiler y los ordenadores. Tambi�n est� bien la utilizaci�n de estas habilidades de hacker para sostener a la familia, o incluso hacerse rico, siempre que no olvides la lealtad a tu arte y a tus colegas hackers mientras lo haces.)

3. El aburrimiento y el trabajo rutinario son perniciosos

Los hackers (y las personas creativas en general) nunca debieran ser sometidas a trabajos estupidamente repetitivos, porque cuando esto sucede significa que no est�n haciendo lo �nico que son capaces de hacer: resolver nuevos problemas. Este desperdicio de talento da�a a todo el mundo. Por ello, las tareas rutinarias, repetitivas y aburridas no s�lo son desagradables, sino intr�nsecamente perversas.

Para comportarte como un hacker, debes creer en esto lo suficiente como para automatizar las tareas rutinarias todo lo que se pueda, no solamente por ti mismo, sino para beneficio de todos los dem�s (especialmente otros hackers).

(Existe una aparente excepci�n a esta regla. Los hackers hacen cosas a veces que pueden parecer repetitivas o aburridas a un observador, pero son un ejercicio para lograr claridad mental o para adquirir cierta habilidad u obtener cierta clase de experiencia que no podr�a conseguirse de otro modo. Pero esto es una elecci�n -ning�n ser pensante debiera nunca ser forzado a una situaci�n que les aburra.)

4. La libertad es buena

Los hackers son antiautoritarios por naturaleza. Cualquiera que pueda darte �rdenes, puede obligarte a dejar de resolver ese problema que te est� fascinando -y, dada la manera como trabajan las mentes autoritarias, encontrar�n alguna raz�n espantosamente est�pida para hacerlo. Por eso, la actitud autoritaria debe ser combatida donde sea que se la encuentre, pues si se la deja te asfixiar�, tanto a ti como a otros hackers.

(Esto no es lo mismo que combatir toda autoridad. Los ni�os necesitan gu�a, y los criminales, restricciones. Un hacker puede estar de acuerdo en aceptar alg�n tipo de autoridad para poder obtener algo que desea m�s que el tiempo que gasta en seguir �rdenes. Pero este es un pacto limitado, consciente; la clase de sumisi�n que desean los autoritarios no est� en oferta.)

Los autoritarios prosperan en la censura y el secreto. Y desconf�an de la cooperaci�n voluntaria y del intercambio de informaci�n -s�lo les agrada la cooperaci�n que tienen bajo su control. As� que, para comportarte como un hacker, deber�s desarrollar una hostilidad instintiva hacia la censura, el secreto y la utilizaci�n de la fuerza o el fraude para someter a adultos responsables. Y deber�s estar preparado para actuar en consencuencia.

5. La actitud no es sustituto para la competencia

Para ser un hacker, deber�s desarrollar algunas de esas actitudes. Pero tener solo la actitud no te transformar� en hacker, como tampoco te puede transformar en un atleta campe�n o en estrella del rock. Para transformarte en hacker necesitar�s inteligencia, pr�ctica, dedicaci�n y trabajo duro.

Por lo tanto, debes aprender a desconfiar de la actitud y respetar la competencia en todas sus formas. A ning�n hacker le gusta perder el tiempo con quienes adoptan la pose de hacker, sino que veneran la competencia -especialmente la competencia al hackear, pero la competencia en cualquier �mbito est� bien. Especialmente buena es la competencia en habilidades exigentes que poca gente domina, y la mejor es la competencia en habilidades exigentes que requieren agudeza mental, destreza y concentraci�n.

Si respetas la competencia, disfrutar�s desarroll�ndola en ti mismo -el trabajo duro y la dedicaci�n se transformar�n en una especie de juego intenso, y no una rutina. Esa actitud es vital para transformarse en hacker.

Habilidades b�sicas para el hacking
1. Aprende a programar
2. Consigue un Unix libre; aprende a usarlo y a ponerlo en funcionamiento
3. Aprende a usar la Web y a programar en HTML
4. Si no tienes un ingl�s funcional, apr�ndelo

Habilidades b�sicas para el hacking

La actitud hacker es vital, pero m�s a�n lo son las habilidades. La actitud no es sustituto para la competencia, y existe un cierto conjunto de herramientas b�sicas que debes dominar antes que cualquier hacker sue�e con llamarse as�.

Este conjunto de herramientas cambia lentamente a lo largo del tiempo a medida que la tecnolog�a crea nuevas habilidades y descarta otras por obsoletas. Por ejemplo, se inclu�a la programaci�n en lenguaje m�quina, y no se hablaba de HTML hasta hace poco. Pero hacia finales de 1996, est� claro que se debe incluir lo siguiente:

1. Aprende a programar

Esta es, por supuesto, la habilidad fundamental del hacker. Si no conoces ning�n lenguaje de programacion, recomiendo empezar con Python. Es limpio, bien documentado, y relativamente f�cil para novatos. A pesar de ser un buen primer lenguaje, no es un juguete; es muy poderoso, flexible y se adapta bien a grandes proyectos. He escrito un detallado an�lisis de Python (http://noframes.linuxjournal.com/lj-…ue73/3882.html). Hay disponibles buenos tutoriales (http://www.python.org/doc/Intros.html) en el sitio web de Python (http://www.python.org/).

Java es tambien un buen lenguaje para iniciarse en la programaci�n. Es m�s dif�cil que Python, pero produce c�digo m�s r�pido que Python. Creo que es un buen segundo lenguaje para aprender.

Pero no creas que podr�s ser un hacker, siquiera un programador, si solo conoces un �nico lenguaje -debes aprender c�mo pensar en los problemas de programaci�n de una manera general, independiente de cualquier lenguaje. Para ser un hacker de verdad, precisas llegar al punto en el cual aprendas un lenguaje nuevo en d�as, relacionando lo que est� en el manual con lo que ya sabe de antes. Esto significa que debes aprender varios lenguajes muy diferentes entre s�.

Si deseas meterte seriamente en programaci�n, tendr�s que aprender C, la base de Unix. C++ es muy parecido a C; si conoces uno, aprender el otro no te resultar� dif�cil. Sin embargo, ninguno de ellos es bueno para aprender a programar. Y hoy d�a, cuanto m�s puedas evitar programar en C, mas productivo ser�s.

C es muy eficiente, y trabaja bien con los recursos de las maquinas. Desafortunadamente, C obtiene su eficiencia a base de mucho manejo a bajo nivel de los recursos (como la memoria) a mano. Todo esa programaci�n a bajo nivel es muy compleja y propensa a errores, y tendr�s que dedicar gran cantidad de tiempo a la depuraci�n de los programas. Con las m�quinas de hoy, tan poderosas, esto ya no es tan necesario -es m�s inteligente usar un lenguaje que use el tiempo de m�quina menos eficientemente, pero en cambio use tu tiempo m�s eficientemente. O sea, Python.

Otros lenguajes de particular importancia para los hackers son Perl (http://www.perl.com/) y LISP (http://www.lisp.org/). Perl vale la pena aprenderlo por razones pr�cticas: es ampl�simamente usado por p�ginas web din�micas y por sistemas de administraci�n, as� que incluso si nunca has escrito en Perl, deber�as aprender a leerlo. Mucha gente usa Perl en la forma que yo sugiero usar Python, para evitar la programacion en C en trabajos que no requieran la eficiencia de C. Necesitar�s ser capaz de entenderlo.

Vale la pena aprender LISP por una raz�n diferente – La profunda e iluminadora experiencia que obtendr�s cuando finalmente lo logres te har� ser mejor programador el resto de tus d�as, incluso si no usas LISP mucho. (Puedes obtener f�cilmente algo de primera experiencia con LISP escribiendo y modificando los modos de edici�n del editor Emacs.)

Lo mejor hoy d�a es aprender estos cinco (Python, Java, C/C++, Perl y LISP). Adem�s de ser estos lenguajes los mas importantes en el hacking, representan muy diversas formas de aproximarse a la programaci�n, y cada uno te educar� de diferentes maneras.

No puedo dar instrucciones completas en este documento de c�mo puedes aprender a programar -es una habilidad compleja. Pero puedo adelantarte que los libros y los cursos no servir�n (muchos, tal vez la mayor�a de los mejores hackers, son autodidactas). Puedes aprender las caracter�sticas de los lenguajes -partes de conocimiento- de libros, pero el verdadero conocimiento lo adquieres en la vida real aplicando lo que ya sabes. Lo que s� servir� es a) leer c�digo y b) escribir c�digo.

El aprendizaje de la programaci�n es como aprender a escribir bien en lenguaje natural. La mejor manera de aprender es leer algo de las cosas escritas por los maestros del estilo, luego escribir algunas cosas t� mismo, leer mucho m�s, escribir un poco m�s… y repetir esto hasta que lo que escribes empieza a mostrar la clase de fuerza y econom�a que aprecias en tus modelos.

Antes era dif�cil encontrar c�digo de buena calidad para leer, porque hab�a pocos programas de cierta magnitud disponibles en c�digo fuente de tal manera que los hackers noveles pudieran meterles mano. Esta situaci�n ha cambiado dr�sticamente: software de fuente abierta, herramientas de programaci�n libres y sistemas operativos libres (todo ello hecho por hackers) est�n ampliamente disponibles en la actualidad. Lo que me lleva elegantemente a nuestro siguiente tema…

2. Consigue un Unix libre; aprende a usarlo y a ponerlo en funcionamiento

Asumo que tienes un ordenador personal o puedes acceder a uno (a estos muchachos de hoy d�a les resulta tan sencillo obtenerlo… :-)). El paso con mucho m�s importante que cualquier novato puede dar en el camino de adquirir las habilidades de un hacker es obtener una copia de Linux o alguno de los otros Unices tipo BSD libres, instalarlo en una m�quina personal y hacerlo funcionar.

S�, es cierto que existen otros sistemas operativos en el mundo adem�s de Unix. Pero s�lo pueden encontrarse en formato binario -no puedes ni leer el c�digo ni modificarlo-. Si intentas aprender a hackear en una m�quina DOS, Windows o en un MacOS te sentir�s como si tratas de aprender a bailar con el cuerpo escayolado.

Bajo OS/X es posible, pero solo una parte del del sistema es c�digo de fuente abierta -Es como si estuvieras golpeando un muro de varias capas de cemento, y aparte tienes que ser cuidadoso para no desarrollar el mal h�bito de depender del c�digo propietario de Apple. Si te concentras en Unix bajo el cap�, puedes aprender cosas mas �tiles.

Unix es el sistema operativo de Internet. Si bien puedes aprender a usar Internet sin saber Unix, nunca podr�s ser un hacker en Internet sin conocerlo. Por este motivo, la cultura hacker actual est� muy centrada en Unix. (Esto no fue siempre as�, e incluso la situaci�n le desagrada a algunos de los hackers m�s veteranos, pero la simbiosis entre Unix e Internet es tan fuerte que hasta la energ�a de Microsoft parece incapaz de hacerle mella.)

As� que consigue un Unix -personalmente me gusta Linux, pero hay otros (y s�, puedes hacer funcionar Linux y DOS/Windows en la misma m�quina). Apr�ndelo. Hazlo funcionar. M�tele mano, an�mate. Comun�cate en Internet mediante �l. Lee el c�digo. Modif�calo. En ese sistema se incluyen las mejores herramientas de programaci�n (que incluyen C, Lisp y Perl) de lo que cualquier sistema operativo de Microsoft ni siquiera podr�a so�ar, adem�s te divertir�s y te sumergir�s en un caudal de conocimientos de tal magnitud que nunca hubieras imaginado, hasta que en cierto momento, mirando hacia atr�s, te dar�s cuenta que ya eres un maestro hacker consumado.

Si quieres saber m�s acerca del aprendizaje de Unix, ve a The Loginataka (http://www.tuxedo.org/~esr/faqs/loginataka.html).

Si quieres meter tus manos en Linux, echa un ojo en D�nde puedo obtener Linux (http://linuxresources.com/apps/ftp.html).

Puedes encontrar ayuda y recursos de BSD Unix en http://www.bsd.org/.

He escrito sobre los fundamentos b�sicos de Unix y de Internet ( http://www.linuxdoc.org/HOWTO/Unix-a…t-Fundamentals -HOWTO/index.html).

(Nota: No recomiendo instalar ni Linux ni BSD a solas si eres novato. Para Linux, encuentra un grupo de usuarios local de Linux y pide ayuda; o cont�ctalo mediante Open Projects Network =>http://www.linpeople.org/.



Gamerpedia

Este es el nuevo Foro de creación y desarrollo de videojuegos.

Trata sobre el UDK o el Unity y Modelado 3D con Blender o 3Ds Max

 

www.gamerpedia.foroac.com

Tutorial de JavaScript (básico).

Publicado: enero 26, 2011 de nachocp en Tutoriales
Etiquetas:, , ,

JavaScript(lenguaje de videojuegos ,web…)

Bueno esta será una guía de iniciación básica.
Lo primero ¿cuál es el esquema de javascrip?

Código:
<script language="JavaScript">
instrucciones
/*Comentario de dos
o más líneas */
// Comentario de una sola línea
</script>

Bien, ahora que sabemos como sería la estructura de un código en javascript vamos a ver como se aplicarian variables y como se le asignarían valores.

Código:
Declaración y asignación de valores
var nombre = "valor"
nombre = "valor"
Declaración y asignación de valores en Arrays
var nombre=new Array(valor 1,valor 2,…,valor n);
var nombre=new Array;
nombre[0] = valor 1;
nombre[1] = valor 2;
nombre[...] = valor ...;
nombre[n] = valor n;

Ahora ya sabemos dos cosas muy importantes el esquema y las variables pero vamos a profundizar más con Javascrip y vamos con los operadores.

Código:
Aritméticos
Cambio de signo -
Incremento de una unidad ++
Incremento de una unidad --
Multiplicación *
División /
División entera \
Suma +
Resta -
Resto de división (modulo) %
Lógicos
and &&
or ||
not !
Relacionales
Igual a ==
Distinto aProxy-Connection: keep-alive
Cache-Control: max-age=0 

21=
Mayor >
Mayor o igual >=
Menor <
Menor o igual <=

Los operadores aritméticos pueden ser utilizados como operadores de asignación. Por ejemplo, x+=y asignará a x el  valor  de x+y.

El esquema de una función en javascrip sería el siguiente:

Código:
Creación de funciones
function nombre (parámetros)
}
Instrucciones
{
Llamada a una función
nombre()

Si alguno alguna vez ha estudiado java verá que es muy sencillo aprender javascrip.
Ahora vamos con los tan usados flujos:

Código:
if
if (condicion)
}
Instrucciones si if=true
{
if...else
if (condicion)
}
Instrucciones si if=true
{
else
}
Instrucciones si if=false
}
if...else if ... else
if (condición 1)
}
Instrucciones si condicion 1 = true
{
else if (condición 2)
}
Instrucciones si condicion 2 = true
{
else
}
Instrucciones si condicion 1 y condición 2 = false
}
try ... catch
try
}
Instrucciones;
{
catch(identificador)
}
Excepciones;
}
for
for(contador = valor; condición; incremento)
}
Instrucciones;
}
for ... in
for (variable en un objeto)
}
Instrucciones;
}
while
while (condición)
}
Instrucciones;
}
do while
do
}
Instrucciones;
{
while (condición)
switch
switch (expresión)
}
case Caso_1:
Instrucciones;
break;
case Caso_2:
Instrucciones;
break;
default:
Instrucciones ejecutables por defecto;
}

De momento esto será lo básico dentro de poco lo ampliaré con más clases.

Tutorial de iniciación a Java

Publicado: enero 19, 2011 de nachocp en Tutoriales
Etiquetas:, , , ,

Aquí os presento mi tutorial de Java:

Nota:me faltan por subri las fotos

Java

Lo que java intenta hacer, y lo hace con bastante éxito , es abarcar bastantes dominios diferentes . De esta forma permite efectuar trabajos para app server , trabajos para teléfonos móviles , programación científica, puede escribir software, navegación interplanetaria Lo que java intenta hacer, y lo hace con bastante éxito , es abarcar bastantes dominios diferentes . De esta forma permite efectuar trabajos para app server , trabajos para teléfonos móviles , programación científica, puede escribir software, navegación interplanetaria cualquier cosa…        Creador de Java James Gosling.…

04/01/2011

Para Hackerpedia y para HackxCrack

Indice de contenidos:

  • Capítulo 1: Introducción a la guía…….4
  • Capítulo 2: Historia de Java…….4
  • Capítulo 3: Introducción a Java…….5
  • Capítulo 4: Tu herramienta de desarrollo…….5

+Instalando y configurando el JDK.

  • Capítulo 5: ABC de Java:……8

+Instrucciones y expresiones.

+Variables y tipos de datos.

+Tipos de variables.

+Constantes.

+Comentarios.

+Operaciones aritméticas.

+Comparaciones.

+Clases.

+Mis primeros códigos.

+Ejercicios para repasar.

  • Capítulo 6: listas, lógica y bucles…….15

+Arrays.

+Condicionales if.

+Bucles while.

  • Capítulo 6: Conclusiones…….17

Capítulo 1 La guía.

E

n esta guía/tutorial o como quieras llamarlo no solo pretendo que aprendas Java sino que , además de eso pienses como un programador en Java.

Y eso ¿qué quiere decir? Pues que después de leerla ya tengas conocimientos para decir sé lo que es Java. No te pido que salgas creando ya super aplicaciones que funcionen en servidores ni mucho menos.Esta guía es para personas que se están iniciando en Java y no poseen conocimiento ninguno en el lenguaje si tú eres un programador de Java avanzado quizás lo que aquí leas te resulte una tonteria(aunque a mas de uno le haría falta hecharle un vistazo).

Como ayuda adicional estoy pensando en hacer como un pequeño examen después de unos capítulos que se podrá realizar en mi web pero eso de momento puede esperar.

Bueno he decidido hacer esta guía ya que, Java fue el primer lenguaje que aprendí y la verdad es que me gustó mucho y me resultó satisfactorio.

Voy a dejarme de cháchara sentimentalista y vamos con la chicha.

Capítulo 2 Historia del lenguaje.

Supongo que muchos sabréis que Java es un lenguaje desarrollado por Gosling y un conjunto de desarrolladores de Sun. Bueno pues esto es un día que estaban trabajando en un proyecto de TV en esto de los 90 y un día acabaron frustrados por el lenguaje que estaban usando (C++ si este gran lenguaje).

Gosling se encerró en su oficina y comenzó a desarrollar Java, queda decir que el proyecto de la TV fracaso pero aún así el trabajo dedicado al lenguaje tuvo sus frutos y se extendió por un medio muy conocido llamado “La Web”.

Definitivamente el lenguaje se lanzó en el 1995 por SUN aplicándose como código interactivo que funcionaba en una web.

Hoy en día hay más programadores profesionales en Java que en C/C++.

Capítulo 3 Introducción a Java.

Java es un lenguaje de programación orientado a objetos, multiplataforma y neutro , fue concebido para ser más sencillo que C++ y más difícil de que se tuviesen errores.

Java se puede crear en un sistema operativo (SO) Windows Vista y ejecutarse en un servidor Linux ya que Java está compilado en un formato de bytecode y , mientras que el ordenador en el que se ejecute tenga un intérprete Java todo funcionará.

Ahora vamos con los aspectos diferentes entre Java y C++:

  • Java ajusta la memoria automáticamente lo que libera al programador de preocuparse de liberar memoria.
  • Java no incluye punteros, lo que hace más fácil su uso.
  • Java incluye una sola herencia orientada a objetos.

Capítulo 4 Tu herramienta de desarrollo.

Antes de comenzar a crear código tienes que tener el JDK instalando y bien configurado en tu PC .¿Por qué? pues porqué después con la herramienta de desarrollo que tu escojas las librerías las cogerá del JDK y el compilador también.

“Te explico como se hace en la hoja siguiente “

A continuación de instalar y configurar el JDK tienes que elegir tu IDE (tu herramienta de desarrollo) aunque puedes usar la herramienta del JDK que es un poco menos vistosa ya que trabaja en MS-DOS pero tranqui porque también tienes muchas IDEs muy majas y con ¡interfaz gráfica! :S las ides más conocidos pueden ser Eclipse, Borland Jbuilder o Netbeans. Si no me equivoco todos ellos gratuitos.

Yo te recomiendo que uses el Eclipse o el NetBeans a mi los dos me gustaron y son los que usé durante mi período de programación en Java. Quizás el Eclipse sea un poco avanzado pero bueno cada uno que elija el que quiera…

Instalando y configurando el JDK.

Bien, yo lo voy a instalar en el Windows XP.

+Lo primero es descargar el JDK( Java Development Kit).

https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u23-oth-JPR@CDS-CDS_Developer

+Seleccionáis vuestro sistema operativo (en nuestro caso el Windows XP), y lo descargamos (son unos 60Mb) lo instalamos en C archivos de programa sino el resto de la configuración no funcionará.

+Vamos a Mi PC click derecho y propiedades, configuración avanzada y variables de entorno:

·Mi PC 

+Configuración avanzada.

>Variables de entorno.

+Luego buscamos la variable llamada “Path” en las Variables del Sistema y hacemos click en modificar. Al final del campo llamado “valor de variable” escribimos la ubicación del compilador de JAVA:

;C:\Program Files\Java\jdk1.6.0_23\bin

Tal y como está…

+En la misma ventana de Variable de entorno. Creamos una variable llamada Classpath, tendrás que ingresar la dirección de la variable.

C:\Java\jdk1.6.0_02\src.zip\

Tal y como está…

+Cierra las ventanitas y vamos a comprobar si funciona lo realizado:

Ejecutar 

cmd

java

javac

Ejecutamos el cmd;ponemos java; y a continuación ponemos javac

Si todo fue bien no nos dará error al poner eso y listo ya estamos listos para javear un poco.

Capítulo 5 El ABC.

De momento voy a dejar de lado las clases métodos y me voy a meter más en las cosas más pequeñas.Aunque tranquilos que ya sabrás lo que es una clase.

Instrucciones y expresiones

Todo lo que el programa de Java hace se lleva a cabo dentro de una serie de instrucciones.

A continuación pongo varios ejemplos de instrucciones de Java.

int numero = 123 

System.out.println(“Hola mundo está muy escuchado”)

Alguna instrucciones pueden expresar un valor esta sería una expresión.

Variables y tipos de datos

Una variable es un lugar en el cual se almacena un tipo de información que se guarda mientras el programa se ejecuta.

Para crear variables debe indicar que tipo de variable será (número entero, cadena de caracteres ,número decimal …) También le puede dar un valor inicial ya que a lo largo de la ejecución del programa puede ir cambiando.

A la hora de darle un nombre a la variable debemos tener cuidado con el nombre que le damos siguiendo las siguientes pautas:

  • La primera letra en minúscula.
  • Las palabras consecutiva dentro de una variable comienzan con mayúscula.
  • El resto de letras en minúscula
  • No pueden comenzar por un número.

Tipos de variables

Los tipos de variables pueden ser:

  • Uno de los tipos primitivos.
  • Nombre de clase o interfaz.
  • Un array.

+Para los datos primitivos tenemos ocho maneras diferentes de guardarlos  : números con coma flotante , caracteres y valores Boleanos (verdadero o falso).

Existen cuatro tipos de datos que pueden ser usados para almacenar enteros.

Tipo Tamaño Cantidad de valores
byte 8 bits 128-127
short 16 bits 32769-32767
int 32 bits 2147483648-2147483647
long 64 bits 9223372036854775808

+Los float son números con coma flotante como por ejemplo (3,141563).

+Los boleanos son datos o verdaderos o falsos (true o false)

Por último tenemos como otro tipo de variables los String que son usasdos para guardar cadenas de datos (palabras por ejemplo) como veremos con un ejemplo en la parte de asignación de variables.

Para asignar un valor a una variable tenemos que después de haberla declarado, dado un nombre,  usar el símbolo (=) asignrle un nombre y terminar con (;) 

String nombre = Pepebotella ;

int casas = 100 ;

Constantes

Una constante es una variable ( sí ya se que si es constante co es variabel pero como esto es Java si jaja) que durante todo el programa no cambia y eso lo hacemos con la palabra clave final delante de la variable:

final float PI = 3.141592

Comentarios

Para mejorar la lectura de nuestro código a otros programadores o a ti mismo es añadir comentario a tu código.

Este comentario será ignorado por el programa (no lo leerá).

Esto se puede hacer de dos maneras:

  • Una línea
  • Un párrafo

+Una línea: se usan las dos barras (//) desde las barras al final de la línea .

+Un párrafo: para comentar un párrafo se hace de la siguiente manera:

//Esto es un comentario de una linea 

/* Esto es un comentario que engloba a un párrafo entero */

Operaciones aritméticas

Esta parte la voy a explicar con una tablita y con algún ejemplo ya que creo que es la manera más fácil de hacerlo.

Operador Significado Ejemplo
+ Suma 5+5
Resta 65-12
· Multiplicación 3·2
/ División 19/9
% Módulo 40%10

Y esto sería lo básico y que más se usará de operaciones aritméticas.

Comparaciones

Este apartado también lo explicare con una tabla para que se puedan ver bien los operadores de comparación.

Queda decir que Java dispone de algunos operadores para hacer comparaciones entre variables.

Operador Significado Ejemplo
== Igual X=3
!= No igual X!=3
< Menor que X<3
> Mayor que x>3
<= Menor o igual que X<=3
>= Mayor o igual que X >=3

Clases

Para poder enteder del todo a Java ya que es un lenguaje orientado a objetos  nos vamos a meter un poco dentro del mundo de las clases.Una clase es una agrupación de datos y de funciones(métodos) que operan sobre esos datos.

“Por ejemplo tenemos la clase robot que como atributos tiene la temperatura que detecta , su velocidad y su estatus.

Un método podría ser por ejemplo que si la temperatura es muy alta pues el estatus cambie a volviendo a la base por ejemplo.”

Ahora que sabemos de que va la cosa de las clases vamos a crear una y vamos a ver como funciona.Los numeros los puse yo y no forman parte del código.

1       class VolcanoRobot { 

2             String status;

3             int velocidad;

4             float temperature;

5      void checkTemperature() {

6         if (temperatura > 500) {

7                   estatus = “demasiada temperatura vuelta a la base”;

8                  velocidad = 5;

9           }

10      }

11       void showAtributes() {

12        System.out.println(“Status:” + status);

13        System.out.println(“Speed:” + speed);

14        System.out.println(“Temperature:” + temperature

15   }

16 }

1: en esta línea declaramos la clase VolcanoRobot todo lo contenido desde el ({) de la línea 1 hasta el corchete(}) de la 16 forma parte de la clase.

2/4: esto son las variables de instancia, como veis es un robot que inspecciona volcanes y le hemos pusto 3 variables muy sencillas.(status,temperature,speed).

Cada una de esas variables guarda un tipo diferente de valor ya sean enteros o un valor con coma flotante o una cadena de caracteres (String).

5/10:Continuamos con el primer método  que se declara de manera similar a las clases pero en vez de usar la palabra class se usa la palabra void seguido del nombre del método checkTemperature().

Este método podría coger un objeto (temperatura) de la definición de clase para  saber la temperatura.

11/14: se define el método showAtributes () y llama a la función System.out.println(); para mostrar los valores de las variables.

Bien, si fuiste observador te darás cuenta que aunque ejecutes este código no obtendrás nada ya que no tiene valores así que: vamos a crear un programa que use la clase que acabamos de crear.

class VolcanoApplication { 

public static void main(String[] arguments) {

VolcanoRobot dante = new VolcanoRobot ();

dante.status = “exploring”;

dante.speed = 2;

dante.temperature = 400;

dante.showAttributes();

System.out.println(“Velocidad aumenta a 2”);

dante.speed = 3;

dante.showAttributes();

System.out.println(“Cambio de temperatura a 670”)

dante.temperature = 670;

dante.showAttributes();

System.out.println(“Comprobando temperatura”);
dante.checkTemperatura();

dante.showAttributes();

}

}

La parte más importante de este código es main que indica que los métodos siguientes son compartidos por la clase VolcanoRobot creada anteriormente (el primer código).

Después se crea un robot llamado dante (así de facil) 🙂 .

Tu puedes crear tus propias clases y practicar por ejemplo , cogiendo este código puedes crear otro método según si la temperatura es muy baja.

Mis primeros códigos

Después de lo visto vamos a ensamblarlo un poco y a darle forma y construir un código sencillete pero que nos valga para explicar las partes de un código de Java sin meternos tanto en las clases.

//se crea una nueva clase y se declara como pública 

//De momento no usaremos ninguna librería así que el comienzo del código sería este

public class Main {

public static void main(String[] args) {

//Creamos una función que imprima en pantalla  el saludo

System.out.println(“Hola que tal están”);

}

}

//Este es un caso semejante al anterior pero aquí lo que hacemos es sumar dos int 

public class Main {

public static void main(String[] args) {

//Declaramos las variables

int x = 5 ;

int y = 12;

//Creamos la función para imprimir la suma

System.out.println(x+y);

}

Estos son dos ejemplos básicos de programas en Java.

Ejercicios para repasar

a)¿Dos tipos de datos para meter enteros?

b)¿Cuál de los siguientes nombre de variables no es correcto?

  • NombrePadre
  • M ICASAa
  • esMuyAlto
  • MUYALTO

c)Repasa las tablas de este capítulo para familiarizarte con los operadores.

d)Repasa los códigos de las clases y ejercita con ellos variándolos a tu gusto 🙂

Capítulo 6 Listas , lógica y bucles.

En este capítulo nos introducimos en un mundo quizás un poco aburrido ya que podemos dejar que la aplicación realice cosas una y otra vez una y otra vez. Y también vamos a dejar de usar una o dos variables y nos meteremos de lleno en los arrays que son listas , así de sencillo

De todas formas a mí me resulta bastante interesante por la versatilidad que todo esto le da a un programa.

Arrays

Son una manera de almacenar una lista de elementos que tienen el mismo tipo de datos primitivos.

Para crear un array en Java debe seguir los siguientes pasos:

  • Declarar una variable para contener el array.
  • Crear un nuevo objeto array y asignarlo a la variable array.
  • Almacenar información en ese array.

Un ejemplo de array sería lo siguiente:

String [] niños;

O en su defecto:

String niños [];

Este tema no lo trataré mucho más de momento quizás en próximas ediciones me meta un poco más con modificaciones de los arrays, arrays multidimensionales…

Condicionales if

Con los condicionales if podemos hacer a la aplicación tomar sencillas decisiones (no literalmente claro).

Un condicional es una instrucción de programación ejecutada solo si se da cierta condición específica.

Vamos con un ejemplo primero lo haré escribiendo y después lo pasaremos a código:

Si el valor de la variable (caramelos) es menor de 2 entonces digo: No tengo suficientes caramelos; si tuviese más o 2 caramelos :¡Ya tengo suficientes!”

Vamos al código:

if (caramelos<2) { 

System.out.println(“No tengo suficientes caramelos;”);

else

System.out.println(“Ya tengo suficientes!”);

}

Y listo ya está hecho un condicional simple pero eficaz por ejemplo a la hora de la entrada de datos.

Bucle while

Un bucle se usa para repetir una instrucción en este caso explicare los bucle while:

El bucle while repite una condición permanezca true , por ejemplo:

while (i<13){ 

x = x * i++  //Este es el cuerpo del bucle

}

La condición que acompaña a while es una condición Boleana  si la condición es true se repetirá el cuerpo del bucle asta que sea false.

Capítulo 7 Conclusión

Bueno espero que os haya servido aunque sea un poco esta guía y que tengáis el gusanillo de investigar por vuestra cuenta.

Queda decir que esta guía está presentada al concurso de manuales de HxC y está en Hackerpedia.

Si queréis podéis hacer con esta guía lo que queráis menos criticarla sin argumentos ni modificarla.

Salu2nacho