Shadow_Reaper
Usuario (Argentina)

Bienvenidos a mi postHice este post para mostrarles un método que yo utilize para evitar la actualización del MSN, y puedo dar fe de que funcionó, para evitar la actualización del MSN 2009 a MSN 2011.El método es bastante sencillo. Básicamente consiste en "engañar" al MSN para que crea que tenemos instalada otra versión del mismo.para poder hacerlo deben hacer lo siguiente:1) Descargar el Resource Hacker e instalarlo, este programa nos permitirá modificar el MSN para que "crea" que esta actualizado.Aquí el http://www.angusj.com/resourcehacker/reshack_setup.exe 2) Antes de hacer nada debemos asegurarnos que el MSN este completamente cerrado, incluyendo que NO este el ícono en el área de notificación.3)Luego de haber hecho esto lo mejor sería crear un backup por seguridad del archivo ejecutable (.exe) del msn que se encuentra en la siguiente ubicación:C:Archivos de programaWindows LiveMessengerallí busquen el archivo "msnmsgr.exe" y cópienlo a alguna carpeta cualquiera.4) Una vez hecho lo anterior vayan a la ubicación de antes (C:/Archivos de programa/Windows Live/Messenger) y hagan clic derecho en el archivo "msnmsgr.exe" y allí elijan la opción "Open using Resource Hacker" del menú contextual.5) Una vez abierto el programa deben hacer clic en la opción "Version Info" de la izquierda. Luego aparecerá otra carpeta que se llama "1" a la cual le hacen clic, y ahora aparece la opción "1033" y hacen clic en ella.6) A la derecha les aparecerán una especie de configuraciones internas del ejecutable del MSN. Deben modificar los siguientes valores:FILEVERSION 14,0,8089,726PRODUCT VERSION 14,0,8089,726Y luego más abajoVALUE "FileVersion", "15.4.3502.922"VALUE "ProductVersion", "15.4.3502.922"Tiene que quedar esas cuatro líneas como en la imagen:7) Luego de haber hecho la modificación hacen clic en el botón que dice "Compile Script".8) Por último van a File y hacen clic en Save. Cierren el programa y luego ya deberían poder utilizar la versión 2009 tranquilamente (también lo probé en MSN 8.5, aunque debería funcionar en MSN 8.1 y anteriores, queda en ustedes probarlo, si yo lo llego a probar pondré aquí si se sirve en otras versiones o no).Básicamente eso es todo, el proceso es muy fácil de entender solo deben respetar cada paso tal cual está explicado para que no hayan errores.También he viso otro método que a mi no me sirvió pero que igual lo explicare porque tengo entendido que hay gente a la que le sirvió:1) Asegúrense de que el MSN esta completamente cerrado, incluyendo el ícono en el área de notificación. luego vayan a la ruta donde esta instalado el MSN (por defecto es "C:/Archivos de programa/Windows Live/Messenger" y hagan clic derecho en el archivo "msnmsgr.exe" y van a propiedades.2) Una vez allí elijan la solapa "Compatibilidad" y activan la opción "Ejecutar este programa en el modo de compatibilidad para:" y allí elijen Windows 2000.3) Por último le dan a aceptar y les debería funcionar con la versión 8.5.En Windows 7 es lo mismo de antes pero en lugar de Windows 2000 elijen Windows Server 2003.Este método de modificar la compatibilidad no me funciono, pero igual lo dejo para que lo prueben. Si les sirvió o tienen alguna duda solo pregunten.
Bienvenidos a mi primer postAquí voy a poner algunas soluciones para determinados problemas que he tenido que resolver en Linux, y que me han servido de mucho. Tengan en cuenta que es mi primer post a la hora de comentar y/o puntuar1) Modificar imagen de GRUB en Linux Ubuntu 10.04 LTS "Lucid Linx":Tuve bastantes problemas tratando de hacer esto hasta que finalmente logre modificar la imagen del GRUB. Aquí pondré directamente la solución que a mi me sirvió, aclaro que a mi me sirvió en Ubuntu 10.04 pero no se si funcione en otras versiones, prueben si les sirvió en otras versiones y después comentan.Para empezar hay que tener instalado el GRUB 2 para que este método funcione. Para actualizar desde una versión anterior a GRUB 2 (V 1.98) hay que ejecutar el siguiente comando desde la terminal:dijo:grub-install -vy les tiene que aparecer algo parecido lo siguiente:dijo:grub-install (GNU GRUB 1.98-1ubuntu5)Una vez hecho esto ya tenemos que tener instalado el GRUB 2.Luego pueden descargar imágenes desde los repositorios oficiales utilizando el siguiente comando:dijo:sudo aptitude install grub2-splashimagesLas imágenes quedan almacenadas en “/usr/share/images/grub”, y se pueden ver yendo hasta la ubicación o desde la misma terminal ejecutando el siguiente comando:dijo:nautilus /usr/share/images/grubTambién pueden crear una imagen o elegir una imagen que ustedes tengan, no es necesario usar las anteriores. La imagen que vayan a utilizar debe tener un tamaño de 640x480 píxeles y formato PNG (se supone que también funcionan con formato TGA o JPG pero yo solo probé el formato PNG). Luego de haberla creado abren la terminal y pegan la imagen en " /usr/share/images/grub" con el siguiente comando:dijo:sudo nautilus /usr/share/images/grubyo en cambio pegué la imagen en "/boot/grub" y utilicé el siguiente comando:dijo:sudo cp /home/mi-usuario/Escritorio /boot/grubLuego de haber elegido la imagen y haberla copiado al destino, solo queda configurar el GRUB 2 para que muestre la imagen que eligieron. Para hacerlo antes que nada deberían hacer una copia de seguridad del archivo que van a modificar con el siguiente comando:dijo:cp /etc/grub.d/05_debian_theme /home/TUUSUARIOEste comando copiara el archivo en cuestión a su carpeta personal. Luego deberán modificar este archivo con el siguiente comando:dijo:sudo gedit /etc/grub.d/05_debian_themeUna vez abierto el editor deben buscar en la parte que dice “# this allows desktop-base to override our settings” y buscar la línea que dice:dijo:WALLPAPER="/usr/share/images/desktop-base/moreblue-orbit-grub.png"Cuando encuentran esa línea la modifican poniendo la dirección en la que se encuentra su imagen como en el siguiente ejemplo:dijo:WALLPAPER="/usr/share/images/grub/su-imagen.png"Luego de haber hecho esto pueden guardar el archivo.Recuerden que la ruta va con las comillas tal cual esta en el ejemplo de arriba.Luego de hacer esto para guardar los cambios tienen que ejecutar el comando:dijo:sudo update-grub2si este no les sirva quizás deban utilizar este otro:dijo:sudo update-grub2) Modificar El color del texto del GRUB:Para modificar el color del texto del GRUB tiene que modificar el archivo que se utilizó anteriormente para modificar la imagen del GRUB. para abrir nuevamente el archivo escriben en la consola:dijo:sudo gedit /etc/grub.d/05_debian_themeUna vez abierto el archivo deben buscar la sección que dice "# this allows desktop-base to override our settings" y luego de esto verán que aparece lo siguiente:dijo:COLOR_NORMAL="black/black" COLOR_HIGHLIGHT="magenta/black"Allí eligen el color del texto (COLOR_NORMAL="black/black"; ), y el color de resaltado de la opción sobre la que están en el menú (COLOR_HIGHLIGHT="magenta=black"; ). para cambiar los colores deben respetar las comillas que tiene y pueden utilizar los siguientes colores: azul (blue), rojo (red), verde (green), cían (cyan), magenta (magenta), amarillo (yellow), blanco (white) y negro (black).Nuevamente, recuerden que luego de hacer esto para guardar los cambios tienen que ejecutar el comando:dijo:sudo update-grub2si este no les sirva quizás deban utilizar este otro:dijo:sudo update-grub3) Ajustar cuenta regresiva del GRUB:Para ajustar la cuenta regresiva del GRUB deben editar un archivo de configuración del GRUB mediante el siguiente comando:dijo:sudo gedit /etc/default/grubBusquen la línea que dice "GRUB_TIMEOUT=10"y allí modifican el tiempo por el número de segundos que quieren que el GRUB espere antes de iniciar por la opción por defecto.Además si se quiere cambiar el sistema operativo por defecto deberán modificar la línea que dice "GRUB_DEFAULT=1", aquí el número que aparece indica el número de sistema operativo, para saber cual es el "número de cada sistema operativo" deberán ejecutar en la terminal el siguiente comando:dijo:sudo gedit /boot/grub/grub.cfgAquí deben buscar las líneas que muestran los sistemas operativos. El primer sistema operativo que aparezca mencionado en este archivo sera el sistema N° 1, el segundo que aparezca el N° 2 y así hasta el final.luego que saben cual es el número del SO que ustedes quieren dejar por defecto solo deben ir hasta el archivo que abrieron antes y en la línea que dice "GRUB_DEFAULT=1" cambiar el número por el del SO que ustedes quieran.Nuevamente, recuerden que luego de hacer esto para guardar los cambios tienen que ejecutar el comando:dijo:sudo update-grub2si este no les sirva quizás deban utilizar este otro:dijo:sudo update-grubPor otra parte si no quieren que aparezca determinado sistema operativo o alguna otra opción en el GRUB (como por ejemplo los memtest), deben comentar la línea donde aparece la configuración del sistema operativo que no quieren que aparezca, para esto solo deben escribir un "#" (sin las comillas) al inicio de la línea.Nuevamente, recuerden que luego de hacer esto para guardar los cambios tienen que ejecutar el comando:dijo:sudo update-grub2si este no les sirva quizás deban utilizar este otro:dijo:sudo update-grub4) Agregar repositorio de Mozilla Firefox:Acá esta el método para agregar el repositorio de Mozilla Firefox para que se pueda actualizar.Para poder agregar el repositorio de Mozilla Firefox deben ejecutar lo siguiente desde la Terminal:dijo:sudo add-apt-repository ppa:mozillateam/firefox-stablesudo apt-get update && sudo apt-get upgradeLuego de haber ejecutado esto desde la Terminal deberán tener el repositorio que les permitirá actualizar Firefox mediante el Gestor de Actualizaciones.5) Eliminar kernels en desuso:Aquí vamos a borrar los kernels instalados que no se utilizan. para eso hay que hacer lo siguiente:ejecutar un comando en Terminal que muestra la lista de kernels instalados en el sistema:dijo:dpkg --get-selections | grep linux-imageAhora que ya saben que kernel borrar (lógicamente los más viejos) deben ejecutar el siguiente comando:dijo:sudo aptitude purge linux-image-version del kernel-genericles debería quedar algo así:dijo:sudo aptitude purge linux-image-2.6.32-33-generic Ahora ya han eliminado los kernels de sobra, les recomiendo siempre dejar alguno aunque no lo usen (además del que usan), por si llegan a tener algún error en sus máquinas.6) Que cosas hacer luego de haber instalado Ubuntu 10.04 "Lucid Linx" LTS:Esta es una lista de cosas que son recomendables luego de haber instalado Ubuntu 10.04, y que pueden llegar a ser bastante útiles.1) Actualizar la información de los repositorios y de todos los paquetes que hay instalados para evitar problemas futuros:Para esto deben ejecutar:dijo:sudo aptitude update && sudo aptitude safe-upgradeListo, ya están actualizados los repositorios del sistema.2) Añadir el repositorio Medibuntu:Medibuntu (Multimedia, entertainment & distractions in Ubuntu) es un repositorio con paquetes que no pueden ser incluidos en Ubuntu por razones legales (copyright, licencia, patentes, etc). El repositorio para Ubuntu 10.04 LTS Lucid Lynx incluye esta lista de paquetes .Para instalar este repositorio deben ejecutar esto:dijo:sudo wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).listY esto:dijo:sudo apt-get --quiet update && sudo aptitude -y --allow-untrusted install medibuntu-keyring && sudo aptitude update3) Instalar codecs:Aquí instalaremos codecs y librerías que nos permitirán reproducir gran cantidad de formatos de archivo. Para hacerlo debemos ejecutar:dijo:sudo aptitude -y install non-free-codecsEsto instalará codecs no libres en el sistema.para agregar soporte para DVD's deben ejecutar el siguiente comando:dijo:sudo aptitude -y install libdvdread4 && sudo /usr/share/doc/libdvdread4/install-css.shEsto permitira reproducir DVD's con encriptación CSS (Content Scrambling System) que poseen la mayoría de los DVD'S comerciales.4) Programas:Aquí voy a listar varios programas que pueden llegar a serles de utilidad:Reproductores de música:Banshee:dijo:sudo aptitude install banshee banshee-extension-lyrics banshee-extension-ubuntuonemusicstoreExaile:dijo:sudo apt-get install exaile exaile-plugin-ipodReproductores de video:VLC:dijo:sudo apt-get install vlcMPlayer:dijo:sudo apt-get install mplayerSMPlayerdijo:sudo apt-get install smplayerGNOME Media Player:dijo:sudo add-apt-repository ppa:gnome-media-player-development/development && sudo aptitude update && sudo aptitude install gnome-media-playerCompresores de archivos:Aquí hay varios programas que permitiran comprimir o descomprimir gran cantidad de archivos:dijo:sudo apt-get install rar unace p7zip-full p7zip-rar sharutils mpack lha arjNavegadores:Chromium:Proyecto de navegador libre en el que se basa Google Chromedijo:sudo aptitude -y install chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-nonfree chromium-codecs-ffmpeg chromium-codecs-ffmpeg-extraEpiphany:Navegador de GNOMEdijo:sudo add-apt-repository ppa:webkit-team/epiphany && sudo add-apt-repository ppa:webkit-team/ppa && sudo aptitude update && sudo aptitude -y install epiphany-browserProgramas de descargas:jDownloader:dijo:sudo add-apt-repository ppa:jd-team/jdownloader && sudo aptitude update && sudo aptitude install jdownloaderTucan:dijo:sudo apt-get install tucanaMule:dijo:sudo apt-get install amuleDeluge:dijo:sudo apt-get install delugeVuze:dijo:sudo apt-get install vuzeMultiget:dijo:sudo apt-get install multigetGwget:dijo:sudo apt-get install gwgetOtros:Wine:Permite ejecutar programas de WIndows en Linux.dijo:sudo apt-get install wine1.2dijo:sudo apt-get install gnome-exe-thumbnailerProgramas de grabación:K3b:dijo:sudo apt-get install k3b libk3b6-extracodecs language-pack-kde-es-baseEditores de video:OpenShot:dijo:sudo apt-get install openshotEditores de imagenes:GIMP (GNU Image Manipulation Program):dijo:sudo apt-get install gimpMensajeros instantáneos:Pidgin:dijo:sudo apt-get install pidginaMSN:dijo:sudo apt-get install amsnEmesene:dijo:sudo apt-get install emesene6) Cambiar posición de los botones de las ventanas:Esto mover los botones "Minimizar", "Maximizar" y "Cerrar" desde la esquina superior izquierda de la ventana hasta la esquina superior derecha de esta:dijo:gconftool-2 --type string --set /apps/metacity/general/button_layout "menu:minimize,maximize,close"Lanzadores de aplicaciones (docks):Aquí hay algunos docks para Ubuntu:Docky:dijo:sudo apt-get install dockyAWN:dijo:sudo apt-get install avant-window-navigatorCairo-Dock:dijo:sudo apt-get install cairo-dockBueno eso es todo, espero que todo esto les sirva y si les sirvió de alguna manera no olviden comentar y recomendar a sus seguidores, tengan en cuenta que este es mi primer post. Acepto críticas constructivas. aclaro que no me hago responsable de lo que vayan a hacer en sus máquinas. También aclaro que yo he tenido varios problemas hasta encontrar la solución de la imagen del GRUB y probé muchos métodos hasta encontrar el que posteé que es el que me sirvió, tal vez a ustedes este no les sirva pero si otro como me pasó a mi, busquen porque seguro algo van a encontrar. Por último aclaro que voy a borrar cualquier comentario ofensivo, inútil, poco inteligente, etc.Newbies que creen que Windows es mejor que Linux, ABSTENERSE DE COMENTAR.
Buenas gente, les traigo una info muy útil para aquellos que utilizamos bastante la Terminal. Espero que les sirva y, de ser así, comenten también en la fuente para apoyar al autor original. Betty - un asistente al estilo Siri o Google Now pero para Terminal: Betty es el Siri o Google Now de la línea de comandos. Bueno, algo así. La herramienta traduce frases simples en inglés a los comandos que realmente hace falta ejecutar para llevar a cabo la acción solicitada. Por el momento, no es posible controlar a Betty mediante comandos de voz, pero sí a través de instrucciones escritas en el terminal. Betty mostrará no sólo el resultado final sino también el comando que está siendo ejecutado detrás de escena. Características: Según aclaran en la página de GitHub del proyecto, Betty busca “proporcionar una manera de utilizar la computadora a través de un lenguaje natural”: En concreto, el beneficio radica en el hecho de hacer cosas con la computadora sin salirte de la línea de comandos o buscar en Internet el comando adecuado. Betty simplemente funciona. El ejemplo típico es la compresión/descompresión de archivos, que suele ser un tanto complicada desde el terminal si uno no recuerda exactamente los comandos y parámetros adecuados a cada tipo de archivo (zip, tar, rar, etc.). Con Betty, en cambio, es posible descomprimir un archivo sin complicaciones: betty uncompress archivo.tar.gz Esto crea cinco carpetas dentro de la carpeta trabajos, es como ingresar un comando a la vez. Creando los 5 directorios. Existen expansión por dos puntos .. esto crea una serie de números o caracteres que van de el valor inicial a el valor final, no se deben usar números con letras. Betty incluye soporte para una variedad de comandos, entre otros: count (cuenta el número de caracteres en un archivo, el número de palabras en un directorio, etc.);config (cambia tu nombre de usuario);datetime (fecha y hora actual, etc.);Find (busca archivos);Internet / web queries (descarga un archivo, muestra la previsión del clima, etc.);file / directory operations (comprimir/descomprimir archivos, muestra el tamaño de un archivo, cambia los permisos de un archivo, etc.);procesos;comandos de usuario (muestra el nombre de usuario, el nombre real, el número de IP, quién más está logueado, etc.);controla iTunes y Spotify;mucho más. Instalación 1.- Instalar Ruby (necesario para utilizar Betty) y el Curl (requerido por Betty para ejecutar algunos comandos). En Ubuntu, basta ejecutar el siguiente comando: sudo apt-get install ruby curl o sudo pacman -S ruby curl 2.- Instalar Git y descargar la última versión de Betty: sudo apt-get install git cd && git clone https://github.com/pickhardt/betty o sudo pacman -S git cd && git clone https://github.com/pickhardt/betty 3.- Y, por último, hay que asignar la ruta del archivo betty/main.rb al alias betty en su archivo ~/bashrc. Suponiendo que hayas descargado Betty en tu carpeta de usuario, basta ejecutar: echo "alias betty="~/betty/main.rb"" >> ~/.bashrc source ~/.bashrc Si les gustó este aporte: Y como siempre: Todo comentario desubicado, irrespetuoso y/o fuera de lugar será borrado y en caso de que sea necesario el usuario será bloqueado.
Buenas gente, les traigo una noticia interesante acerca de Firefox, espero que les sirva. Firefox 36 será multi-proceso: Electrolysis (e10s) es una de las características del núcleo de Firefox en las que Mozilla se encuentra trabajando actualmente. Esta característica o mejora, añade la tan aclamada arquitectura multi-proceso al navegador de Mozilla. La arquitectura multi-proceso, separa las pestañas abiertas entre sí y los plugins por otra parte, fortaleciendo no sólo la estabilidad del navegador, sino también la seguridad del mismo. No debemos confundir esto con el “sandbox”, pero de seguro es la puerta de entrada a que se haga realidad más adelante. Mozilla implementó Electrolysis en las versiones del canal Nightly de Firefox hace unos meses en febrero. La implementación fue experimental en aquel entonces y deshabilitada por defecto. Las pruebas mostraron que se necesita trabajar mucho, especialmente respecto a la estabilidad y la compatibilidad con los complementos. El trabajo en Electrolysis ha continuado y ya se tiene, por ahora, un roadmap para la planificación de la continuidad de esta característica hasta que salga totalmente estable. Este pudiera variar de acuerdo con los baches que puedan aparecer durante el desarrollo. Firefox multi-proceso, ¿dónde y cuándo? Roadmap para la arquitectura de Firefox multi-proceso 18 de julio, 2014 – Hito 1: hacer E10s usable para la media de los usuarios de las versiones Nightly pero deshabilitada por defecto.21 de julio, 2014 – Comienza el desarrollo de Firefox 34. Mozilla quiere usar las seis semanas siguientes para que los usuarios del canal Nightly y los desarrolladores de complementos prueben e10s y en especial la compatibilidad con los complementos.1 de septiembre, 2014 – Comienza el desarrollo de Firefox 35. Mozilla se plantea alcanzar el segundo hito en este período de desarrollo. Cuando se alcance el hito 2, Electrolysis está en un punto en el que puede ser habilitado por defecto para los usuarios de las versiones Nightly.13 de octubre, 2014 – Comienza el desarrollo de Firefox 36. Esta es la versión de Firefox, donde el multi-proceso será movido de canal en canal (Nightly > Aurora > Beta > Estable) hasta ser liberado en la versión estable el 16 de febrero de 2015 Compatibilidad con los complementos: Un cambio en la arquitectura, es un cambio mayor y una de las consecuencias de la implementación de e10s, es que hay complementos que no son compatibles con este. Los complementos que no son compatibles por el momento, entre otros, son Adblock Plus, LastPass, RequestPolicy, Greasemonkey, HTTPS Everywhere, BluHell Firewall o Video Download Helper. Mozilla le sigue el rastro a la compatibilidad de los complementos con e10s en la página Are We e10s yet. Aquí se puede ver el listado de bugs, para ver el progreso de lo que se hace para que ese complemento sea compatible. Muchos otros complementos también populares, no han sido probados aún. Aún así, los que son desarrollados constantemente y actualizados, serán corregidos para hacerlos compatibles con e10s en caso de que fuera necesario. Otros complementos, por el contrario, los que están abandonados por sus autores, pasarán a ser difuntos cuando e10s forme parte de la versión estable de Firefox. Si les gustó este aporte: Y como siempre: Todo comentario desubicado, irrespetuoso y/o fuera de lugar será borrado y en caso de que sea necesario el usuario será bloqueado.
Buenas gente, les traigo esta info interesante, disfruten! Curiosidades: Lenguajes de programación esotéricos Los lenguajes de programación esotéricos son lenguajes minimalistas, creados como prueba de concepto y/o reto, tanto para programar el lenguaje como para escribir para él. Veamos un repaso de algunos de ellos: Brainfuck Es el más conocido y el más popular, su sintaxis es bastante simple: ++++++++++ [ Bucle para iniciar las memorias (se repite 10 veces) >+++++++>++++++++++>+++++++++++>+++>+<<<<<- 70 100 110 30 10 ] >++. 'H' (72) 1 >>+. 'o' (111) 3 ---. 'l' (108) 3 <---. 'a' (97) 2 >>++. espacio (32) 4 <+. 'm' (109) 3 ++++++++. 'u' (117) 3 -------. 'n' (110) 3 <+++. 'd' (100) 2 >+. 'o' (111) 3 >+. '!' (33) 4 >. 'n' (10) 5 Para explicar su sintaxis lo mejor es recurrir a otros lenguajes de programación. Así, en su página de la Wikipedia nos proveen de esta tabla de equivalencias, en las que ptr equivale a un unsigned char: Ook! Está basado en el anterior, pero utiliza en su lugar la combinación de palabras Ook?, Ook! y Ook. Es una parodia del bibliotecario de Mundodisco, que es transformado en orangután y solo puede pronunciar esas tres palabras. Veamos un cacho de código. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook. Supuestamente este “programa” lo que hace es escribir el típico “hola mundo”. Befunge En mi opinión el más original de todos, su estructura de control de flujo se basa en flechas que le dicen al programa dónde ir. Además, facilita mucho la creación de código mutante (código que se modifica a sí mismo): vv < < 2 ^ v< v13v4 ^ ^ > >?> ?>5^ v v v97v6 v v< 8 . > > ^ ^< El código de arriba se trata de un generador de números aleatorios infinito, que generará un número entre el 1 y el 9. Bastante más legible que los anteriores. Malbolge Aquí tenemos a un lenguaje de programación creado para ser irritante e ilegible (no, no es C, y no, tampoco es Perl). Se trata de Malbolge, cuyo nombre proviene del 8º circulo del infierno de La Divina Comedia. Aquí tenemos un “hello world” (o eso me han contado que es): (=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk** hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@986543W10/.R,+O< Lolcat Una simple broma. Veamos su código: HAI CAN HAS STDIO? I HAS A VAR IM IN YR LOOP UP VAR!!1 VISIBLE VAR IZ VAR BIGGER THAN 10? KTHX IM OUTTA YR LOOP KTHXBYE Dado que es bastante más legible que los lenguajes de programación anteriores, dejaré que adivinéis que es lo que se supone que hace. INTERCAL Y por ultimo , pero no menos irritante tenemos a una parodia del lenguaje de programación FORTRAN . INTERCAL. Y aquí el hola mundo . DO ,1 <- #13 PLEASE DO ,1 SUB #1 <- #238 DO ,1 SUB #2 <- #108 DO ,1 SUB #3 <- #112 DO ,1 SUB #4 <- #0 DO ,1 SUB #5 <- #64 DO ,1 SUB #6 <- #194 DO ,1 SUB #7 <- #48 PLEASE DO ,1 SUB #8 <- #22 DO ,1 SUB #9 <- #248 DO ,1 SUB #10 <- #168 DO ,1 SUB #11 <- #24 DO ,1 SUB #12 <- #16 DO ,1 SUB #13 <- #162 PLEASE READ OUT ,1 PLEASE GIVE UP Bueno , y eso es todo. He de decir que algunos de estos lenguajes de programación son muy útiles para aprender sobre algunos conceptos informáticos. Por ejemplo, Brainfuck es perfecto para aprender sobre los punteros. Si les gustó este aporte: Y como siempre: Todo comentario desubicado, irrespetuoso y/o fuera de lugar será borrado y en caso de que sea necesario el usuario será bloqueado.
Buenas gente, les traigo un artículo de desmintiendo este tema siemre tn polémico. EL mismo es el número 90 (Año 2008) de La Revista Todo Linux. Su autor David Santo Orcero nos brinda de forma técnica (pero fácil de entender) la explicación del por qué GNU/Linux carece de este tipo de Software malicioso. Virus en GNU/Linux ¿Realidad o mito?: El debate sobre Linux y los virus no es algo nuevo. Cada cierto tiempo vemos un correo en alguna lista preguntando si existen virus para Linux; y automáticamente alguien responde afirmativamente y alega que si no son más populares es porque Linux no está tan extendido como Windows. También son frecuentes las notas de prensa de desarrolladores de antivirus diciendo que sacan versiones contra los virus de Linux. Personalmente he tenido alguna que otra discusión con distintas personas por correo, o por lista de distribución, respecto al tema de si existen o no los virus en Linux. se trata de un mito, pero es complejo derribar un mito o, mejor dicho, un bulo, especialmente si está causado por interés económico. A alguien le interesa transmitir la idea de que si Linux no tiene este tipo de problemas, es porque muy poca gente lo utiliza. A la hora de publicar este reportaje me hubiese gustado elaborar un texto definitivo sobre la existencia de virus en Linux. Desgraciadamente, cuando la superstición y el interés económico campan a sus anchas, es difícil construir algo definitivo. No obstante, intentaremos hacer aquí un argumentario razonablemente completo para desarmar los ataques de cualquiera que quiera discutirlo. Firefox multi-proceso, ¿dónde y cuándo? Roadmap para la arquitectura de Firefox multi-proceso 18 de julio, 2014 – Hito 1: hacer E10s usable para la media de los usuarios de las versiones Nightly pero deshabilitada por defecto.21 de julio, 2014 – Comienza el desarrollo de Firefox 34. Mozilla quiere usar las seis semanas siguientes para que los usuarios del canal Nightly y los desarrolladores de complementos prueben e10s y en especial la compatibilidad con los complementos.1 de septiembre, 2014 – Comienza el desarrollo de Firefox 35. Mozilla se plantea alcanzar el segundo hito en este período de desarrollo. Cuando se alcance el hito 2, Electrolysis está en un punto en el que puede ser habilitado por defecto para los usuarios de las versiones Nightly.13 de octubre, 2014 – Comienza el desarrollo de Firefox 36. Esta es la versión de Firefox, donde el multi-proceso será movido de canal en canal (Nightly > Aurora > Beta > Estable) hasta ser liberado en la versión estable el 16 de febrero de 2015 ¿Qué es un virus? Lo primero, vamos a comenzar definiendo qué es un virus. se trata de un programa que se copia y se ejecuta automáticamente, y que tiene por objeto alterar el normal funcionamiento de un ordenador, sin el permiso o el conocimiento del usuario. Para ello, los virus reemplazan archivos ejecutables por otros infectados con su código. La definición es estándar, y es un resumen de una línea de la entrada sobre virus que aparece en la Wikipedia. La parte más importante de esta definición, y la que diferencia el virus del resto del malware, es que un virus se instala solo, sin el permiso o conocimiento del usuario. si no se instala solo, no es un virus: podría ser un ser un rootkit, o un troyano. Un rootkit es un parche al kernel que permite ocultar determinados procesos a las utilidades de área de usuario. Dicho de otra forma, es una modificación del código fuente del kernel que tiene como objeto que las utilidades que permiten ver qué se está ejecutando en cada momento no visualicen un determinado proceso, o un determinado usuario. Un troyano es análogo: es una modificación al código fuente de un servicio concreto para ocultar determinada ac tividad fraudulenta. En ambos casos es necesario obtener el código fuente de la versión exacta instalada en la máquina Linux, parchear el código, recompilarlo, obtener privilegios de administrador, instalar el ejecutable parcheado, e inicializar el servicio –en el caso del troyano– o el sistema operativo completo –en el caso del rootkit–. El proceso, como vemos, no es trivial, y nadie puede hacer todo esto “por error”. Tanto unos como otros exigen en su instalación que alguien con privilegios de administrador, de forma consciente, ejecute una serie de pasos tomando decisiones de índole técnica. Lo cual no es un matiz semántico sin importancia: para que un virus se instale, basta con que ejecutemos un programa infectado como usuario común. Por otro lado, para la instalación de un rootkit o de un troyano es imprescindible que un humano malicioso entre personalmente en la cuenta de root de una máquina, y de forma no automatizada realice una serie de pasos que son potencialmente detectables. un virus se propaga con rapidez y eficiencia; un rootkit o un troyano necesitan que vayan específicamente a por nosotros. La transmición de virus en Linux: El mecanismo de transmisión de un virus, por lo tanto, es lo que realmente lo define como tal, y es la base de la existencia de los mismos. un sistema operativo es más sensible a los virus cuanto más fácil sea desarrollar un mecanismo eficiente y automatizado de transmisión de estos. Supongamos que tenemos un virus que quiere transmitirse solo. Supongamosque ha sido lanzado por un usuario normal, de forma inocente, al lanzar un programa. Dicho virus tiene exclusivamente dos mecanismos de transmisión: Replicarse tocando la memoria de otros procesos, anclándose a ellos en tiempo de ejecución. Abriendo los ejecutables del sistema de ficheros, y añadiendo su código –payload– al ejecutable. Todos los virus que podemos considerar como tales tienen al menos uno de estos dos mecanismos de transmisión. O los dos. No hay más mecanismos. Respecto al primer mecanismo, recordemos la arquitectura de memoria virtual de Linux y cómo funcionan los procesadores intel. Estos poseen cuatro anillos, numerados de 0 a 3; a menor número, mayores los privilegios que tiene el código que se ejecute en dicho anillo. Estos anillos corresponden con estados del procesador, y, por lo tanto, con lo que se puede hacer con un sistema estando en un anillo concreto. Linux hace uso del anillo 0 para el kernel, y del anillo 3 para los procesos. no hay código de proceso que se ejecute en anillo 0, y no hay código de kernel que se ejecute en anillo 3. Solo hay un único punto de entrada al kernel desde el anillo 3: la interrupción 80h, que permite saltar del área donde está el código de usuario al área donde está el código de kernel. La arquitectura de Unix en general y de Linux en particular no hace factible la dispersión de virus. El kernel mediante el uso de la memoria virtual hace creer a cada proceso que tiene toda la memoria para él solo. Un proceso –que trabaja en anillo 3– solo puede ver la memoria virtual que le han configurado, por el anillo en el que opera. No es que la memoria de los otros procesos esté protegida; es que para un proceso la memoria de los otros está fuera del espacio de direcciones. Si un proceso diese una batida a todas las direcciones de memoria, no sería capaz ni de referenciar una dirección de memoria de otro proceso. ¿Por qué esto no se puede trampear? Para modificar lo comentado –por ejemplo, generar puntos de entrada en anillo 0, modificar los vectores de interrupciones, modificar la memoria virtual, modificar la LGDT…– solo es posible desde el anillo 0. Es decir, para que un proceso pudiese tocar la memoria de otros procesos o del kernel, debería ser el propio kernel. Y el hecho de que haya un único punto de entrada y que los parámetros se pasen por registros complica la trampa –de hecho, se pasa por registro hasta lo que se debe hacer, que se implementa luego como un case en la rutina de atención a la interrupción 80h–. Otro escenario es el caso de sistemas operativos con cientos de llamadas no documentadas al anillo 0, donde esto sí es posible –siempre puede quedar una llamada olvidada mal implementada sobre la que se pueda desarrollar una trampa–, pero en caso de un sistema operativo con un mecanismo de paso tan simple, no lo es. Por ello, la arquitectura de memoria virtual impide este mecanismo de transmisión; ningún proceso –ni siquiera los que tienen privilegios de root– tienen forma de acceder a la memoria de otros. Podríamos argumentar que un proceso puede ver el kernel; lo tiene mapeado a partir de su dirección de memoria lógica 0xC0000000. Pero, por el anillo del procesador en el que se ejecuta, no puede modificarlo; generaría un trap, ya que son zonas de memoria que pertenecen a otro anillo. La “solución” sería un programa que modificara el código del kernel cuando es un fichero. Pero el hecho de que estos se recompilen, lo hace imposible. No se puede parchear el binario, ya que hay millones de kernels binarios distintos en el mundo. Simplemente con que al recompilarlo le hubiesen puesto o quitado algo al ejecutable del kernel, o le hubiesen cambiado el tamaño de alguna de las etiquetas que identifican la versión de compilación –algo que se hace incluso involuntariamente– el parche binario no se podría aplicar. La alternativa sería descargar el código fuente de Internet, parchearlo, configurarlo para el hardware apropiado, compilarlo, instalarlo y reiniciar la máquina. Todo esto lo debería hacer un programa, de forma automática. Todo un reto para el campo de la Inteligencia Artificial. Como vemos, ni siquiera un virus como root puede saltar esta barrera. La única solución que queda es la transmisión entre ficheros ejecutables. Lo que tampoco funciona como veremos a continuación. Mi experiencia como administrador: En más de diez años que llevo administrando Linux, con instalaciones en cientos de máquinas de centros de cálculo, laboratorios de alumnos, empresas, etc. Nunca me ha “entrado” un virus Nunca he conocido a alguien que le haya ocurrido Nunca he conocido a alguien que haya conocido a alguien que le haya ocurrido Conozco a más gente que ha visto al monstruo del Lago Ness a que haya visto virus para Linux. Personalmente, reconozco que he sido un temerario, y he lanzado varios programas que los autoprocramados “especialistas” denominan “virus para Linux” -en adelante, los denominaré virus, para no hacer pedante el texto-, desde mi cuenta habitual contra mi máquina, para ver si es posible un virus: tanto el virus bash que circula por ahí -y que, por cierto, no me infectó ningún fichero-, como un virus que se hizo muy famoso, y salió en la prensa. Intenté instalarmelo; y después de veinte minutos de trabajo, me rendí cuando vi que entre sus exigencias estaba tener el directorio tmp en una partición del tipo MSDOS. Personalmente, no conozco a nadie que cree una partición específica para tmp y la formatee en FAT. De hecho, algunos supuestos virus que he probado para Linux necesitan un nivel de conocimientos altos y la clave de root para ser instalados. Podríamos calificar, cuanto menos, de “cutre” un virus si necesita nuestra intervención activa para que nos infecte la máquina. Además, en algún caso requieren amplios conocimientos de UNIX y la clave de root; lo que está bastante lejos de la instalación automática que se le supone. Infectando ejecutables en Linux: En Linux, un proceso puede hacer simplemente lo que le permita su usuario efectivo y su grupo efectivo. Es cierto que existen mecanismos para intercambiar el usuario real con el efectivo, pero poco más. Si nos fijamos donde están los ejecutables, veremos que solamente root tiene privilegios de escritura tanto en dichos directorios, como en los ficheros contenidos. Dicho de otro modo, solamente root puede modificar dichos archivos. Esto es así en Unix desde los 70, en Linux desde sus orígenes, y en un sistema de ficheros que soporte privilegios, aún no ha aparecido ningún error que permita otro comportamiento. La estructura de los ficheros ejecutables ELF es conocida y está bien documentada, por lo que es técnicamente posible que un fichero de este tipo cargue el payload en otro fichero ELF… siempre que el usuario efectivo del primero o el grupo efectivo del primero tengan privilegios de lectura, escritura y ejecución sobre el segundo fichero. ¿Cuántos ejecutables del sistema de ficheros podría infectar como usuario común? Esta pregunta tiene una respuesta simple, si queremos saber a cuántos ficheros podríamos “infectar”, lanzamos el comando: $ find / -type f -perm -o=rwx -o ( -perm -g=rwx -group `id -g` ) -o ( -perm -u=rwx -user `id -u` ) -print 2> /dev/null | grep -v /proc Excluimos el directorio /proc porque es un sistema de ficheros virtual que muestra información sobre cómo funciona el sistema operativo. Los archivos de tipo fichero y con privilegios de ejecución que encontraremos no suponen un problema, ya que con frecuencia son enlaces virtuales que constan como que pueden leerse, escribirse y ejecutarse, y si un usuario lo intenta, nunca funciona. También descartamos los errores, abundantes –ya que, especialmente en /proc y en /home, hay muchos directorios donde un usuario común no puede entrar–.Este script tarda bastante. En nuestro caso particular, en una máquina donde trabajamos cuatro personas, la respuesta fue: /tmp/.ICE-unix/dcop52651205225188 /tmp/.ICE-unix/5279 /home/irbis/kradview-1.2/src /kradview La salida muestra tres ficheros que podrían infectarse si se ejecutase un hipotético virus. Los dos primeros son ficheros de tipo Unix socket que se borran en arranque –y que no pueden verse afectados por un virus–, y el tercero es un fichero de un programa en desarrollo, que cada vez que se recompila se borra. El virus, desde el punto de vista práctico, no se propagaría. Por lo que vemos, la única forma de propagar el payload es siendo root. En ese caso para que un virus funcione es necesario que los usuarios tengan siempre privilegios de administrador. En ese caso sí puede infectar archivos. Pero aquí viene la trampa: para transmitir la infección, necesita tomar otro ejecutable, mandarlo por correo a otro usuario que solamente emplee la máquina como root, y que repita el proceso. En sistemas operativos donde es necesario ser administrador para tareas comunes o para ejecutar muchas aplicaciones diarias, esto sí se puede dar. Pero en Unix es necesario ser administrador para configurar la máquina y modificar los archivos de configuración, así que es escaso el número de usuarios que emplea como cuenta diaria la de root. Es más; algunas distribuciones de Linux ni siquiera tienen habilitada la cuenta de root. En casi todas, si accedes como tal al entorno gráfico, el fondo se cambia a rojo intenso, y se repiten mensajes constantes que recuerdan que no se debe emplear esta cuenta. Finalmente, todo lo que se debe hacer como root es posible hacerlo mediante un comando sudo sin riesgo. Por ello, en Linux un ejecutable no puede infectar a otros siempre que no estemos usando la cuenta de root como cuenta de uso común; y aunque las compañías antivirus se empeñan en decir que hay virus para Linux, realmente lo más parecido que se puede crear en Linux es un troyano en área de usuario. La única forma de que estos troyanos puedan afectar algo del sistema es ejecutándolo como root y con lo privilegios necesarios. Si solemos emplear la máquina como usuarios de a pie, no es posible que un proceso lanzado por un usuario común infecte al sistema. Mitos y mentiras: Encontramos una gran cantidad de mitos, bulos y simplemente mentiras sobre los virus en Linux. Hagamos una relación de los mismos basándonos en una discusión acontecida hace ya tiempo con un representante de un fabricante de antivirus para Linux que se ofendió mucho por un artículo publicado en esta misma revista. Aquella discusión es un buen ejemplo de referencia, ya que toca todos los aspectos sobre los virus en Linux. Vamos a repasar todos estos mitos uno a uno según se comentaron en aquella discusión concreta, pero que tantas veces se ha repetido en otros foros. Mito 1: “No todos los programas malignos, particularmente los virus, necesitan privilegios de root para infectar, sobre todo en el caso particular de los virus ejecutables (formato ELF) que infectan otros ejecutables”. Respuesta: Quien realice semejante afirmación desconoce cómo funciona el sistema de privilegios de Unix. Para poder afectar a un fichero, un virus necesita el privilegio de lectura –hay que leerlo para modificarlo–, y de escritura –hay que escribirlo para que la modificación sea válida– sobre el fichero del ejecutable que quiere ejecutar. Esto es así siempre, sin excepciones. Y en todas y cada una de las distribuciones, los usuarios que no son root no disponen de estos privilegios. Luego simplemente con no ser root, la infección no es posible. Prueba empírica: En la sección anterior vimos un simple script para comprobar el rango de ficheros que pueden ser afectados por una infección. Si lo lanzamos en nuestra máquina, veremos como es ínfimo, y respecto a ficheros de sistema, nulo. Además, a diferencia de operativos como Windows, no es necesario tener privilegios de administrador para realizar tareas comunes con programas que emplean comúnmente usuarios normales. Mito 2: “Tampoco necesitan ser root para entrar en el sistema por vía remota, es el caso de Slapper un gusano que explotando una vulnerabilidad en el SSL de Apache (los certificados que permiten comunicación segura), creó su propia red de máquinas zombie en septiembre de 2002”. Respuesta: Ese ejemplo no alude a un virus, sino un gusano. La diferencia es muy importante: un gusano es un programa que explota un servicio de cara a Internet para transmitirse. No afecta a programas locales. Por ello, solamente afecta a los servidores; no a máquinas particulares. Los gusanos han sido siempre muy pocos y de incidencia ínfima. Los tres realmente importantes nacieron en los 80, una época en la que Internet era inocente, y todo el mundo se fiaba de todo el mundo. Recordemos que eran los que afectaban a sendmail, fingerd y rexec. Hoy en día la cosa es más complicada. Aunque no podemos negar que sigue habiéndolos y que, si no se controlan, son extremadamente peligrosos. Pero ahora, los tiempos de reacción ante los gusanos son muy cortos. Es el caso del Slapper: un gusano creado sobre una vulnerabilidad descubierta –y parcheada– dos meses antes de la aparición del propio gusano. Aún suponiendo que todo el mundo que usara Linux tuviese Apache instalado y funcionando siempre, simplemente con actualizar mensualmente los paquetes hubiese sido más que suficiente para que nunca se corriera ningún riesgo. Es cierto que el fallo de SSL que originó Slapper era crítico –de hecho, el mayor fallo encontrado en toda la historia de SSL2 y SSL3–, y como tal fue solucionado en pocas horas. Que dos meses más tarde de que se encontrara y se solucionara dicho problema, alguien hiciera un gusano sobre un error ya corregido, y que ese sea el ejemplo más potente que se puede dar como vulnerabilidad, cuando menos tranquiliza. Como regla general, la solución a los gusanos no es comprar un antivirus, instalarlo y desperdiciar tiempo de cómputo manteniéndolo residente. La solución es hacer uso del sistema de actualizaciones de seguridad de nuestra distribución: teniendo la distribución actualizada, no habrá problemas. Ejecutar solamente los servicios que necesitamos es también una buena idea por dos razones: mejoramos el aprovechamiento de recursos, y evitamos problemas de seguridad. Mito 3: “No creo que el núcleo sea invulnerable. De hecho existe un grupo de programas malignos denominados con las siglas LRK (Linux Rootkits Kernel), que se basan precisamente en que explotan vulnerabilidades de módulos del kernel y sustituyen los binarios del sistema”. Respuesta: Un rootkit es básicamente un parche al kernel que permite ocultar la existencia de determinados usuarios y procesos ante las herramientas habituales, gracias a que no aparecerán en el directorio /proc. Lo normal es que lo utilicen al final de un ataque, en primer lugar, van a explotar una vulnerabilidad remota para tener acceso a nuestra máquina. Después emprenderán una secuencia de ataques, para hacer escalado de privilegios hasta llegar a tener la cuenta de root. El problema cuando lo consiguen es cómo instalar un servicio en nuestra máquina sin ser detectados: ahí entra el rootkit. Se crea un usuario que será el usuario efectivo del servicio que queremos que se oculte, instalan el rootkit, y ocultan tanto dicho usuario como todos los procesos pertenecientes a dicho usuario. De cómo ocultar la existencia de un usuario es útil a un virus es algo que podríamos discutir largamente, pero un virus que emplee un rootkit para instalarse parece divertido. Imaginemos la mecánica del virus (en pseudocódigo): 1) El virus entra en el sistema. 2) Localiza el código fuente del kernel. Si no está lo instala él mismo. 3) Configura el kernel para las opciones de hardware que procedan para la máquina en cuestión. 4) Compila el kernel. 5) Instala el nuevo kernel; modificando LILO o GRUB si es preciso. 6) Reinicia la máquina. Los pasos (5) y (6) necesitan privilegios de root. Es algo complicado que los pasos (4) y (6) no sean detectados por el infectado. Pero lo divertido es que haya alguien que crea que existe un programa que puede hacer el paso (2) y (3) automáticamente. Como colofón, si nos encontramos con alguien que nos dice “cuando haya más máquinas con Linux habrá más virus”, y nos recomienda “disponer de un antivirus instalado y actualizarlo constantemente”, posiblemente esté relacionado con la empresa que comercializa el antivirus y las actualizaciones. Desconfía, posiblemente sea el mismo dueño. Antivirus para Linux: Es cierto que existen antivirus para Linux buenos. El problema es que no hacen lo que los defensores de los antivirus argumentan. Su función es filtrar el correo que pasa de malware y virus para Windows, así como verificar la existencia de virus de Windows en carpetas exportadas vía SAMBA; con lo que si empleamos nuestra máquina como gateway de correo o como NAS para máquinas Windows, podemos protegerlas. ClamAV: No terminaremos nuestro reportaje sin hablar del principal antivirus existente para GNU/Linux: ClamAV. ClamAV es un potentísimo antivirus bajo GPL que compila para la mayor parte de los Unix disponibles del mercado. Está diseñado para analizar los adjuntos a los mensajes de correo que pasen por la estación y filtrarlos de virus. Esta aplicación se integra perfectamente con sendmail para permitir el filtrado de los virus que puedan almacenarse en los servidores Linux que proveen de correo a las empresas; disponiendo de una base de datos de virus que se actualiza diariamente, con soporte a forma digital. La base de datos se actualiza varias veces al día, y es un proyecto vivo y muy interesante. Este potente programa es capaz de analizar virus incluso en adjuntos en formatos más complejos de abrir, como pueda ser RAR (2.0), Zip, Gzip, Bzip2, Tar, MS OLE2, MS Cabinet files, MS CHM (HTML COmprimido), y MS SZDD. ClamAV soporta también mbox, Maildir, y archivos de correo en formato RAW, y ficheros Portable Executable comprimidos con UPX, FSG, y Petite. La pareja Clam AV y spamassassin son la pareja perfecta para proteger a nuestros clientes Windows desde los servidores de correo Unix. CONCLUSIÓN A la pregunta ¿Existen vulnerabilidades en sistemas Linux? la respuesta es ciertamente sí. Nadie en su sano juicio lo duda; Linux no es OpenBSD. Otra cosa es la ventana de vulnerabilidad que tiene un sistema Linux que sea actualizado adecuadamente. Si nos preguntamos ¿existen herramientas para aprovechar estos agujeros de seguridad, y explotarlos? Pues también sí, pero eso no son virus, son exploits. El virus debe saltar varias dificultades más que siempre se han puesto como un defecto/problema de Linux por los defensores de Windows, y que complican la existencia de virus reales –kernels que se recompilan, muchas versiones de muchas aplicaciones, muchas distribuciones, cosas que no pasan automáticamente de forma transparente al usuario, etc.–. Los teóricos “virus” actuales hay que instalarlos a mano desde la cuenta de root. Pero eso no puede ser considerado un virus. Como siempre digo a mis alumnos: no me creáis, por favor. Descargad e instalaros un rootkit en la máquina. Y si queréis más, leed el código fuente de los “virus” que hay en el mercado. La verdad está en el código fuente. Es difícil a un “autoproclamado” virus seguir nombrándolo de esa forma después de leer su código. Y si no sabéis leer código, una única medida de seguridad sencilla que os recomiendo: usad la cuenta de root solo para administrar la máquina, y mantener al día las actualizaciones de seguridad. Solamente con eso es imposible que os entren virus y muy poco probable que lo hagan gusanos o que alguien ataque vuestra máquina con éxito. Si les gustó este aporte: Y como siempre: Todo comentario desubicado, irrespetuoso y/o fuera de lugar será borrado y en caso de que sea necesario el usuario será bloqueado.
Buenas gente, les traigo una info muy útil para aquellos que utilizamos bastante la Terminal. Espero que les sirva y, de ser así, comenten también en la fuente para apoyar al autor original. Brace Expansion - expansión de llaves en Bash: En Español expansión de llaves me parece que es una función inspirada por C Shell, esta genera combinaciones entre los caracteres que se ingresen dentro de las llaves, el orden que usa es de izquierda a derecha. No tiene nada de complicado pero es una opción que nos será muy útil en nuestros recorridos por GNU/Linux. Ejemplo: $ echo a{1,2,3} a1 a2 a3 Cuando se usa con comas (,) genera combinaciones entre el valor a y los valores dentro de las llaves. Si no existiera un valor fuera de las llaves solo mostraría una vez cada valor que contiene la llave. $ echo {a,b,c} a b c No es nada complejo su uso, existen otros ejemplo mas comunes como crear muchos directorios en una carpeta $ mkdir ~/Trabajos/{uno,dos,tres,cuatro,cinco} Esto crea cinco carpetas dentro de la carpeta trabajos, es como ingresar un comando a la vez. Creando los 5 directorios. Existen expansión por dos puntos .. esto crea una serie de números o caracteres que van de el valor inicial a el valor final, no se deben usar números con letras. $ echo {1..5} #Correcto 1 2 3 4 5 $ echo {a..f} #Correcto a b c d f $ echo {a..5} #Incorrecto {a..5} Podemos ahorrar tiempo al crear un ciclo for: #En lugar de escribir $ for (( i=1; i<=5; i++ )); do echo "Mi numero $i"; done Mi numero 1 Mi numero 2 Mi numero 3 Mi numero 4 Mi numero 5 #Ahorramos código usando brace expansion. $ for i in {1..5}; do echo "Mi numero $i; done Mi numero 1 Mi numero 2 Mi numero 3 Mi numero 4 Mi numero 5 #Claro que es valido usar aunque la salida es diferente. $ echo "Mi numero "{1..5} Mi numero 1 Mi numero 2 Mi numero 3 Mi numero 4 Mi numero 5 Bueno creo que ya quedo claro el concepto haha ahora solo comentare que es combinable y anidado ¿A que me refiero con esto? Con combinable a que podemos juntar una o mas llaves: $ echo {a..c}{1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3 Con anidado como muchos imaginaran puedes usar llaves de expansion dentro de llaves de expansión: $ echo {a,c{1..3},d} a c1 c2 c3 d Y por ultimo desde Bash 4 es posible incrementar los valores: $echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20 YAPA - Como crear un /bin local: Cuando digo un bin local me refiero a un directorio en el que tengamos scripts propios y sea posibles ejecutarlos como un simple comando… Lograr esto es relativamente fácil, lo primero que se necesita hacer es crear un directorio donde guardaremos los scripts. mkdir ~/.bin #En este ejemplo estará oculta Ahora tenemos nuestra carpeta para guardar los script pero no funcionara hasta que agregamos la ruta de el nuevo .bin a $PATH Para esto se edita el archivo bash_profile, y se agrega la linea. export PATH=$PATH:~/.bin Y listo eso es suficiente para crear un bin local, claro que pedirá permisos de root si es necesario para un ejemplo escribimos un script rápido. #!/bin/bash echo "Hola $1, ¿Como estas?" Guardarlo con el nombre de hola Al script se le da permiso de ejecución y solo bastará llamarlo desde la terminal $ hola wada #Esto mostrará el mensaje Hola wada, ¿Como estás? Así con este truco rápido podrás ejecutar mas rápidos tus scripts Si les gustó este aporte: Y como siempre: Todo comentario desubicado, irrespetuoso y/o fuera de lugar será borrado y en caso de que sea necesario el usuario será bloqueado.

Buenas gente, les traigo una posible solución a "la falla" de seguridad en Ubuntu en cuanto a la falta de encrptación de contraseñas de redes inalámbricas almacenadas en el sistema. Espero que les sirva! Configuración de NetworkManager en /home: Antes que nada decir que pueden encontrar más información sobre este problema en este post. Cabe destacar que dicho "problema" también lo encontré en Arch Linux, que es el sistema que yo uso, por eso ma pareció conveniente aportar una posible solución a este problema, que sirve en caso de que tengamos nuestra carpeta /home encriptada. El programa NetworkManager (Gestor de red) en Ubuntu (y como comprobé, también en Arch y seguro tantas otras distros que usen este gestor de red en particular), almacena los archivos de configuración de Wi-Fi y VPN fuera de la carpeta home, dentro del directorio /etc/NetworkManager (A no ser que hayas desactivado la opción "Todos los usuarios deben conectarse a esta red" o "Disponible para todos los usuarios", junto con las contraseñas almacenadas como texto plano en estos mismos archivos. Ese no es el comportamiento que esperás si tenés habilitada la encriptación par tu carpeta home Precaución: Los siguientes pasos estan hechos para ser implementados en sistemas con un solo usuario con encriptación de la carpeta home habilitada.Un desarrollador de Ubuntu indicó que esta solución introduciría un agujero en la seguridad en caso de que un atacante tenga el control del sistema. Pasos a seguir: Crear carpeta, copiar y enlazar contenido: Ya que mover completa la carpeta NetworkManager parece no funcionar, solo moveremos los subdirectorios relevantes: 1) Crear una carpeta para los archivos: mkdir ~/.NetworkManager sudo mv /etc/NetworkManager/system-connections ~/.NetworkManager/ sudo ln -s ~/.NetworkManager/system-connections/ /etc/NetworkManager/ Lo que hago aquí es: primero crear la carpeta .NetworkManager en mi home.Segundo muevo el contenido de la carpeta " /etc/NetworkManager/system-connections" a la carpeta que acabo de crear, y por últimocreo un enlace simbólico (acceso directo) de la carpeta "~/.NetworkManager/system-connections/" a la carpeta "/etc/NetworkManager/"Nota: Si notaste la carpeta VPN: Aparentemente no tiene que ser movida ya que NetworkManager también almacena los archivos de configuración de PPTP y OpenVPN en /system-connections. Escribí un programa para reiniciar NetworkManager: Para hacer que NetworkManager se "entere" de que sus archivos de configuración están disponibles nuevamente al iniciar sesión o volver de la suspensión, necesitamos reiniciarlo. Como el único usuario capaz de reiniciarlo es el superusuario, necesitamos crear un programa en formato binario para poder agregarle el bit SUID. De esa forma podemos reiniciar el servicio de NetworkManager como usuario regular. 1)Creamos un archivo de C: cd ~/.NetworkManager nano restartnetworkmanager.c 2) Agregamos lo siguiente y guardamos: #include <stdlib.h> int main() { setuid(0); return system("sudo service network-manager restart"; } 3) Compilamos: gcc restartnetworkmanager.c -o restartnetworkmanager 4) Se fijan el propietario, los permisos y se agrega el bit SUID: sudo chown root restartnetworkmanager sudo chmod u+s restartnetworkmanager 5) Se mueve el ejecutable a nuestra carpeta de binarios: sudo mv restartnetworkmanager /usr/local/bin/ Hacer que se inicie automáticamente al inicio del sistema: 1) Agregar un archivo .desktop de inicio automático: nano ~/.config/autostart/restartnetworkmanager.desktop 2) Insertar lo siguiente: [Desktop Entry] Type=Application Name=Restart NetworkManager Comment=Mirá http://echt.guth.so/moving-networkmanager-config-files-to-home/ Exec=restartnetworkmanager Ejecutarlo al volver de la suspensión: 1) Hacer un script: sudo nano /etc/pm/sleep.d/restart-wifi 2) Insertar lo siguiente: #!/bin/bash case "${1}" in resume|thaw) /usr/local/bin/restartnetworkmanager ;; esac 3) Hacerlo ejecutable: sudo chmod +x /etc/pm/sleep.d/restart-wifi Recursos útiles: http://askubuntu.com/questions/22174/where-does-network-manager-store-wpa-keys-when-available-to-all-users-is-ticke Si les gustó este aporte: Y como siempre: Todo comentario desubicado, irrespetuoso y/o fuera de lugar será borrado y en caso de que sea necesario el usuario será bloqueado.

Buenas, en este post les traigo un creepypasta que me gustó bastante cuando lo leí y quiero compartirlo con ustedes para aportar algo nuevo y no crapear siempre con los mismos creepys o con los killers (gracias a Dios parece que ya pararon con eso). Aclaro antes que nada que no soy el autor del creepy, solo un lector que lo comparte en Taringa. Si les gusta el creepy califiquenlo y/o comentenlo en el enlace que dejo como fuente, que es el enlace original. Stranger: Que tengas un buen día: Seguramente todos habréis oído acerca de Omegle: Talk to Strangers. Esa página en donde te conectan aleatoriamente con alguien del mundo y, sin saber nada de él o ella, comienzas una conversación. El caso es que llevo mucho tiempo en dicha página, encontrándome con lo típico: el que viene y pone “asl” (Age, Sex, Location, la página es en inglés). Como ya estoy harto de contestar a eso, simplemente los trolleo un poco y me desconecto. Hasta que un día pasó algo distinto. MUY distinto. Se conectó un Strange y yo ya estaba esperando el asl, cuando coge y pone (la conversación estaba en inglés, pero os la traduzco al español): Stranger: Hola (3) Yo pensé, “¿Un 3? ¿Por qué un 3?”, pero el tío o tía no había soltado el infame asl, así que le respondí. Luego la cosa fue más o menos así: You (éste soy yo): Hola Stranger: Cómo estás? (3) You: Por qué pones el (3)? Stranger: Cómo estás? (2) You: No vas a responderme? Stranger: Cómo estás? (1) Ahí ya entendí que era una cuenta regresiva, así que para seguirle el juego, le contesté. La pregunta no volvió a repetirse, simplemente me preguntó por el clima, con el “(3)” detrás de la pregunta, como siempre. La conversación fue avanzando y al final parecía algo más normal. Seguía poniendo “(3)” detrás de las preguntas y bajaba a “(2)” si no contestaba a la primera, pero al final no me importó. Tras un buen rato conversando, le dije que me tenía que ir, y que había sido un placer hablar con él o ella (sí, para un@ que encuentro sin el asl, se agradece). Su respuesta fue lo que me pareció raro: Stranger: Que tengas un buen día. Puedes mirar detrás de ti. Y se desconectó. Al día siguiente se lo conté a un amigo, al cual le fascinan estas cosas raras, y se puso todo emocionado por querer probar lo que pasaría si se quedaba sin números en la cuenta regresiva. Yo sabía que las probabilidades de volver a ver a esa persona serían muy pocas, pero aun así mi amigo insistió en venir a mi casa e intentarlo. Una vez frente al ordenador, mi amigo se puso al mando del teclado. Entramos en Omegle y comenzó a ir comprobando a la gente, estilo “si preguntan asl, fuera, si dicen hola y nada más, fuera”. Pasaron muchos conectarse y desconectarse, y al final comencé a aburrirme, hasta que finalmente, y para mi sorpresa, apareció. Stranger: Hola (3) Mi amigo, eufórico, comenzó a hablar con él. No dejaba que el número decayera, por alguna razón lo ponía a prueba, hasta que se cansó, y en una pregunta no respondió. Stranger: Y qué haces para pasar el rato? (3) Mi amigo no contestó, esperó pacientemente. Stranger: Y qué haces para pasar el rato? (2) Nada. Comenzaba a ponerme nervioso. Yo no había dejado que la cuenta regresiva llegara a cero y había recibido aquel mensaje final. A saber qué recibiría mi amigo. Stranger: Y qué haces para pasar el rato? (1) Estuve a punto de escribirle para responderle, pero mi amigo me cogió de las manos y, medio arrastrándome, me dejó sobre la cama, diciendo que me quedase quieto, que sólo era una chorrada de internet y que me estaba afectando demasiado. Me quedé en el sitio en donde él me dejó, sin saber por qué sentía tanta ansiedad. Aunque estaba en mi cama, aún podía ver perfectamente la conversación. El extraño habló de nuevo, su última frase: Stranger: …que tengas…un buen…día…No mires…detrás de ti… Y acto seguido se desconectó. Mi amigo se rió ahí mismo, y me miró. Me puso cara de “¿Y por esta tontería estás asustado?”. Iba a replicarle, cuando algo tocó mi cabeza, algo como una mano fría y grande. No miré hacia atrás, más que nada porque la mano sujetaba firmemente mi cabeza; pero pude ver en la expresión de mi amigo una pista de lo que sucedía. Mi amigo había volteado hacia atrás para verme, y fuera lo que fuese que estaba viendo, no me dejaba mirarle. Lo siguiente que sentí fue como si me adormilara, y caí dormido. Lo siguiente que vi fue el techo blanco de mi habitación en el hospital. Al parecer mi madre nos estuvo llamando tras aquello, y como no respondíamos, fue a vernos y nos encontró a ambos inconscientes… bueno, al menos yo estaba inconsciente. No quieren decirme qué le ha pasado a mi amigo, simplemente me dicen que no puedo ir a verle. Pero por alguna extraña razón, no me importa. Como me toca quedarme un par de días por si acaso, le he pedido a mi madre mi portátil. Me la ha traído hoy mismo, y en el hospital hay internet inalámbrico. Entro en Omegle y me encuentro con un extraño. No sé por qué, hacer esto está muy bien. En realidad, noto que hay algo distinto en mí. Stranger: Asl? Sonrío. Mis dedos escriben solos. You: Hola (3) Asegúrate de responderme a tiempo… Que tengas un buen día… Si les gustó este aporte: Y como siempre: Todo comentario desubicado, irrespetuoso y/o fuera de lugar será borrado y en caso de que sea necesario el usuario será bloqueado.

Buenas, en este post les traigo un creepypasta que me gustó bastante cuando lo leí y quiero compartirlo con ustedes para aportar algo nuevo y no crapear siempre con los mismos creepys o con los killers (gracias a Dios parece que ya pararon con eso). Aclaro antes que nada que no soy el autor del creepy, solo un lector que lo comparte en Taringa. Si les gusta el creepy califiquenlo y/o comentenlo en el enlace que dejo como fuente, que es el enlace original. Tal vez en otra vida...: A veces cuando nos aburrimos recurrimos directamente a recostarnos en algún lugar, lo cual nos lleva a pensar a recordar, por alguna razón raramente vienen a nuestra mente imágenes que no creíamos recordar, que no nos parecía importar. En la tarde de ayer, una tarde calurosa de verano cerca de la noche de navidad descansaba sobre mi sofá pensando en la noche que me esperaba, ya que este sería el primer año que puedo salir con mis amigos luego de la medianoche; entre aquellos pensamientos y demás un rostro lleno de lágrimas y odio vino de repente a mi mente aunque no entendía el porqué, se trataba de una compañera de la secundaria la cual solía sentarse sola o llorar sujetándose la cabeza, nadie la ayudaba pero todos pensábamos en que sucedía, supongo que ella nunca lo supo. Luego de pensarlo un poco más recordé que estaba viendo fotografías de este año en la escuela e inconscientemente habré pasado la vista sobre ella, era extraño como en tantas fotos salía sonriente pero en la última no era igual, sonreía pero falsamente, dándole cierto tono extraño a la fotografía que no podía entender. Pero ya fue demasiado pensamiento por el momento, debía prepararme para ir a casa de mis abuelos y festejar la navidad, como siempre. Después de unas largas horas junto a la familia al fin tocarían las doce, contamos como cada año los diez segundos y comenzamos a saludarnos y abrazarnos entre todos por una feliz navidad, entonces así llegaría mi libertad, al fin, ya no sería la chica estudiosa que nunca sale de su casa, ahora todo cambiaria. Eran las doce y media cuando mis amigas llegaron y nos dispusimos a ir a algún buen lugar para festejar, pero como siempre algo se interpondría en esta felicidad. Pues era navidad y todo parecía estar cerrado, no había donde ir ni que hacer así que la única solución fue quedarse en casa de alguna comiendo y tomando algo mientras veíamos unas películas, así como siempre. Le pedí a mi padre que por favor me llevara a la casa de mi amiga Aldana y así fuimos las cinco, ahora lo único que faltaba era conseguir que tomar que comer, además de las sobras junto con una amiga decidimos que lo mejor sería comprar algo en algún lugar, estando cerca del centro no es tan complicado, o eso pensaba. Ambas salimos algo nerviosas pues llevábamos puesto ropas algo vistosas y nos daba cierto miedo el salir así por allí, a pesar de la luz que poco nos hacía sentir seguras sentía que algo no iba bien. Faltaba poco para las dos de la madrugada y luego de tanto caminar me sentía rendida, convenciendo a mi amiga de volver escuche pasos, podía ser cualquiera pero por si acaso nos tomamos de los brazos para no perdernos de vista. No quería demostrarlo pero sentía mucho miedo, aún más que ella, mi corazón latía muy rápido y se aceleraba con cada paso que escuchaba. Entonces las cosas empeoraban cuando escuche un llanto provenir de algún lugar cercano, mi compañera no lo escuchaba simplemente caminaba, pero al avanzar el llanto era más fuerte es por esto que le pedí tomar otro camino sin importar la escaza luz mientras ella seguía adelante como si nada más importara. Ella no me escuchaba, insistía e insistía tanto que no encontré más solución que gritarle dejándola paralizada, pero algo más sucedió por esto, el llanto se detuvo y vi a unos metros a una chica levantarse del suelo, parecía ser mi compañera del colegio pero eso no era lo malo, lo malo fue verla con las manos y un vestido manchado con sangre, bajar la mirada y ver el cuerpo tirado a sus pies fue la razón suficiente para tomar la mano de mi amiga y salir corriendo aunque ella no sepa el porqué. La recuerdo gritar: - Oye basta ¡Deja de asustarme! Haz hecho que pierda mi bolso - ¡Eso no importa ahora! No seas idiota y sígueme! - Ya deja las tonterías ¿Si? Me voy por el camino más iluminado luego de recuperar mi bolso… – no importaba cuanto insista ella no me escucharía, no éramos necesariamente muy amigas como para que me crea tales ilusiones, pero yo aun oía los pasos aún más fuertes y firmes que antes, al contrario ya no eran pasos era alguien corriendo. Fui directamente hacia ella gritando que no me deje sola que me perdone, en cuanto levanto su bolso y se dio vuelta hacia mi queriéndome regañar vi que su cara se convirtió en un rostro estupefacto y me sentí aturdida, abrí mis ojos sintiendo que todo era tan lento, demostrando el terror sin poder terminar de girar y la vi a ella, la chica de mi secundaria con un gran pedazo de vidrio el cual corto parte de mi rostro y me hizo caer al suelo gritando de dolor, pero mi amiga no hizo más que quedarse allí observando, no lo entendía solo quería correr por tan horror, no estaba equivocada esa chica era una psicópata ¡una asesina! Quien lo creería, al ver mejor note que el vidrio que tenía en su mano ahora se encontraba clavado en la garganta de un chico que al parecer se encontraba detrás mío, ella me miro con varias lágrimas en los ojos y unas ojeras negras que mucho se hacían notar, limpiando sus manos en su vestido simplemente salió corriendo diciendo que llamemos una ambulancia. Mis pensamientos no eran claros, tan solo quería correr y dejar de sentir tanto dolor, y junto a mi amiga fue lo que hicimos, solo quería estar segura en casa, no quería volver a salir ya nunca más en la noche. Es por esto que al contarle a todos decidimos vernos solamente de día, y no quise volver a salir sola nunca, tenía miedo, tengo miedo. Aún más cuando el día de hoy al caminar junto a mi madre antes de cruzar vi que del otro lado de la calle se encontraba ella con un ramo de flores y un vestido negro muy notorio, se encontraba de la mano con un muchacho vendado y con sangre que parecía salir de su estómago. Ambos se encontraban pálidos y con grandes ojeras negras, cuando cruce la calle junto a mi madre ella simplemente camino sin verlos y a punto de chocarlos iba a hacer que se detenga pero mi corazón se detuvo por un momento al ver que ella los atravesó como si de aire se tratara, guarde silencio y continúe, la culpa no me la quitaría nadie… sobre todo al girar y verlos mirándome fijamente con un rostro triste, que teniéndolos ya a más de tres metros pude escuchar como ella decía “volveré por lo que es mío”. Si tan solo hubiera llamado a la ambulancia, ahora encerrada en mi habitación no puedo cerrar los ojos sin ver sus rostros observándome con tristeza, los siento cerca, tengo miedo, no quiero cerrar los ojos nunca más, ella vendrá por mí, lo sé, no estoy loca, lo se ¡No estoy loca! Ella está allí, está en todas partes, ella buscara lo que es suyo, volverá, para siempre para arrancarte la vida, con esa mirada, tal vez, tal vez… “Tal vez en otra vida podamos ser felices juntos”. ———— “Tal vez en otra vida… podamos ser felices juntos” esa fue la frase que escribió la joven adolescente que cometió suicidio hace un par de días al igual que una amiga suya que se ahogó en el río. Es una lástima, tan joven, como aquella pareja que falleció luego de defenderse de un asaltante, la joven había escrito en una caja de regalo la cual contenía anillos de oro “Tal vez en otra vida podamos ser felices juntos”. Es curioso, pero cosas como esta no son más que coincidencias. ¿Tú qué crees? Si les gustó este aporte: Y como siempre: Todo comentario desubicado, irrespetuoso y/o fuera de lugar será borrado y en caso de que sea necesario el usuario será bloqueado.