<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>La Comunidad DragonJAR &#187; Programación</title> <atom:link href="http://www.dragonjar.org/tag/programacion/feed" rel="self" type="application/rss+xml" /><link>http://www.dragonjar.org</link> <description>Noticias de actualidad y seguridad informática, herramientas de seguridad, documentación y una excelente COMUNIDAD.</description> <lastBuildDate>Sat, 11 Feb 2012 22:13:24 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Curso de Python dictado por Google</title><link>http://www.dragonjar.org/curso-de-python-dictado-por-google.xhtml</link> <comments>http://www.dragonjar.org/curso-de-python-dictado-por-google.xhtml#comments</comments> <pubDate>Tue, 11 May 2010 06:01:57 +0000</pubDate> <dc:creator>DragoN</dc:creator> <category><![CDATA[Documentacion]]></category> <category><![CDATA[Desarrollo]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Programación]]></category> <category><![CDATA[Programador]]></category> <category><![CDATA[python]]></category> <category><![CDATA[Trabajo]]></category><guid
isPermaLink="false">http://www.dragonjar.org/?p=4299</guid> <description><![CDATA[Debido a que el curso sobre desarrollo seguro de aplicaciones web dictado por Google, fué tan bien recibido, me puse en la tarea de buscar mas contenidos similares y encontré un excelente curso de 2 días para aprender Python dictado por Google a sus desarrolladores. El curso de  Python dictado por Google es totalmente gratuito [...]]]></description> <content:encoded><![CDATA[<p>Debido a que el <a
title="Enlace permanente a Curso sobre desarrollo seguro de aplicaciones web por Google" rel="bookmark" href="../curso-gratis-desarrollo-seguro-aplicaciones-web-google.xhtml">curso sobre desarrollo seguro de aplicaciones web</a> dictado por <a
href="http://www.dragonjar.org/tag/google" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Google">Google</a>, fué tan bien recibido, me puse en la tarea de buscar mas contenidos similares y encontré un excelente <a
href="http://www.dragonjar.org/tag/curso" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Curso">curso</a> de 2 días para aprender Python dictado por <a
href="http://www.dragonjar.org/tag/google" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Google">Google</a> a sus desarrolladores.</p><p
style="text-align: center;"><img
title="Video Tutorial Python" src="http://img227.imageshack.us/img227/3465/pythonlogomasterv3tm300.png" alt="pythonlogomasterv3tm300 Curso de Python dictado por Google" width="300" height="101" /></p><p>El curso de  Python dictado por Google es totalmente gratuito y se enfocada en personas con un poco de experiencia en <a
href="http://www.dragonjar.org/tag/programacion" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Programación">programación</a> que quieran aprender Python. Las clase incluye materiales escritos, vídeos de conferencias, y un montón de ejercicios para practicar el código Python. Estos materiales se utilizan en Google para introducir Python a personas que acaban de experimentar un poco de <a
href="http://www.dragonjar.org/tag/programacion" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Programación">programación</a>. Los primeros ejercicios de <a
href="http://www.dragonjar.org/tag/trabajo" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Trabajo">trabajo</a> en los conceptos básicos de Python como <a
href="http://www.dragonjar.org/tag/cadenas" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Cadenas">cadenas</a> y listas, hasta llegar a los ejercicios posteriores que se trata de programas completos archivos de texto, los procesos y las conexiones http. La clase está dirigida para personas que tienen un poco de experiencia en <a
href="http://www.dragonjar.org/tag/programacion" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Programación">programación</a> en algún lenguaje, lo suficiente para saber lo que es una &#8220;variable&#8221; o un &#8220;if&#8221; . Más allá de eso, no es necesario ser un <a
href="http://www.dragonjar.org/tag/programador" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Programador">programador</a> experto para usar este material.<span
id="more-4299"></span></p><h2>1.1 Introducción las cadenas</h2><p
style="text-align: center;"><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="allowFullScreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="src" value="http://www.youtube.com/v/tKTZoB2Vjuk&amp;hl=es_ES&amp;fs=1&amp;" /><param
name="allowfullscreen" value="true" /><embed
type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/tKTZoB2Vjuk&amp;hl=es_ES&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><h2>1.2 Listas de  y ordenamiento</h2><p
style="text-align: center;"><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="allowFullScreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="src" value="http://www.youtube.com/v/EPYupizJYQI&amp;hl=es_ES&amp;fs=1&amp;" /><param
name="allowfullscreen" value="true" /><embed
type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/EPYupizJYQI&amp;hl=es_ES&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><h2>1.3 Manejo de archivos</h2><p
style="text-align: center;"><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="allowFullScreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="src" value="http://www.youtube.com/v/haycL41dAhg&amp;hl=es_ES&amp;fs=1&amp;" /><param
name="allowfullscreen" value="true" /><embed
type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/haycL41dAhg&amp;hl=es_ES&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><h2>2.1 Expresiones Regulares</h2><p
style="text-align: center;"><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="allowFullScreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="src" value="http://www.youtube.com/v/kWyoYtvJpe4&amp;hl=es_ES&amp;fs=1&amp;" /><param
name="allowfullscreen" value="true" /><embed
type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/kWyoYtvJpe4&amp;hl=es_ES&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><h2>2.2 Utilidades</h2><p
style="text-align: center;"><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="allowFullScreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="src" value="http://www.youtube.com/v/uKZ8GBKmeDM&amp;hl=es_ES&amp;fs=1&amp;" /><param
name="allowfullscreen" value="true" /><embed
type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/uKZ8GBKmeDM&amp;hl=es_ES&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><h2>2.3 Utilidades (urllib)</h2><p
style="text-align: center;"><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="allowFullScreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="src" value="http://www.youtube.com/v/Nn2KQmVF5Og&amp;hl=es_ES&amp;fs=1&amp;" /><param
name="allowfullscreen" value="true" /><embed
type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/Nn2KQmVF5Og&amp;hl=es_ES&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><h2>2.4 Conclusiones</h2><p
style="text-align: center;"><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="allowFullScreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="src" value="http://www.youtube.com/v/IcteAbMC1Ok&amp;hl=es_ES&amp;fs=1&amp;" /><param
name="allowfullscreen" value="true" /><embed
type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/IcteAbMC1Ok&amp;hl=es_ES&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><p>El material mencionado en los videos, lo puedes encontrar <a
href="http://code.google.com/intl/es-ES/edu/languages/google-python-class/">en la pagina oficial del Curso de Python dictado por Google</a>.</p><p><strong>Tambien te puede interesar:</strong><br
/> <a
href="http://pyspanishdoc.sourceforge.net/">Documentación de Python en Español</a><br
/> <a
href="http://aprenderpython.com/">Aprender Python (excelente sitio para aprender python en español)</a></p><h3  class="related_post_title">También puede interesarte...</h3><ul
class="related_post"><li><a
href="http://www.dragonjar.org/curso-gratis-desarrollo-seguro-aplicaciones-web-google.xhtml" title="Curso sobre desarrollo seguro de aplicaciones web por Google">Curso sobre desarrollo seguro de aplicaciones web por Google</a></li><li><a
href="http://www.dragonjar.org/google-por-linea-de-comandos.xhtml" title="Google por linea de comandos">Google por linea de comandos</a></li><li><a
href="http://www.dragonjar.org/el-perro-se-comio-la-tarea.xhtml" title="El perro se comió la tarea">El perro se comió la tarea</a></li><li><a
href="http://www.dragonjar.org/top-25-errores-mas-peligrosos-en-el-desarrollo-de-software.xhtml" title="TOP 25 errores más peligrosos en el desarrollo de software">TOP 25 errores más peligrosos en el desarrollo de software</a></li><li><a
href="http://www.dragonjar.org/the-social-engineer-toolkit.xhtml" title="The Social-Engineer Toolkit">The Social-Engineer Toolkit</a></li><li><a
href="http://www.dragonjar.org/google-hacking.xhtml" title="Google Hacking">Google Hacking</a></li><li><a
href="http://www.dragonjar.org/seguridad-informatica-un-reto-para-la-ingenieria-del-software-o-una-necesidad.xhtml" title="Seguridad Informática, un reto para la Ingeniería del Software o una necesidad">Seguridad Informática, un reto para la Ingeniería del Software o una necesidad</a></li><li><a
href="http://www.dragonjar.org/dll-hijacking-con-metasploit.xhtml" title="DLL Hijacking con Metasploit">DLL Hijacking con Metasploit</a></li></ul>]]></content:encoded> <wfw:commentRss>http://www.dragonjar.org/curso-de-python-dictado-por-google.xhtml/feed</wfw:commentRss> <slash:comments>12</slash:comments> </item> <item><title>Curso sobre desarrollo seguro de aplicaciones web por Google</title><link>http://www.dragonjar.org/curso-gratis-desarrollo-seguro-aplicaciones-web-google.xhtml</link> <comments>http://www.dragonjar.org/curso-gratis-desarrollo-seguro-aplicaciones-web-google.xhtml#comments</comments> <pubDate>Thu, 06 May 2010 15:43:34 +0000</pubDate> <dc:creator>DragoN</dc:creator> <category><![CDATA[Seguridad Web]]></category> <category><![CDATA[Curso]]></category> <category><![CDATA[Diseño]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Programación]]></category> <category><![CDATA[Programador]]></category> <category><![CDATA[Programadores]]></category> <category><![CDATA[Seguridad]]></category> <category><![CDATA[Sitios]]></category> <category><![CDATA[Vulnerabilidad]]></category> <category><![CDATA[Vulnerabilidades]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[XSS]]></category><guid
isPermaLink="false">http://www.dragonjar.org/?p=4279</guid> <description><![CDATA[Google acaba de lanzar un nuevo curso en línea para el diseño y desarrollo de aplicaciones Web, con este, que los programadores aprenderán a evitar los errores comunes de seguridad que se presentan en las aplicaciones web y que pueden llevar a la creación de vulnerabilidades en sus sitios. El curso, que es parte del [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.dragonjar.org/tag/google" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Google">Google</a> acaba de lanzar un nuevo <a
href="http://www.dragonjar.org/tag/curso" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Curso">curso</a> en línea para el <a
href="http://www.dragonjar.org/tag/diseno" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Diseño">diseño</a> y desarrollo de <a
href="http://www.dragonjar.org/tag/aplicaciones" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con aplicaciones">aplicaciones</a> Web, con este, que los <a
href="http://www.dragonjar.org/tag/programadores" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Programadores">programadores</a> aprenderán a evitar los errores comunes de <a
href="http://www.dragonjar.org/tag/seguridad" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Seguridad">seguridad</a> que se presentan en las aplicaciones web y que pueden llevar a la creación de <a
href="http://www.dragonjar.org/tag/vulnerabilidades" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Vulnerabilidades">vulnerabilidades</a> en sus sitios.</p><p
style="text-align: center;"><img
class="aligncenter" src="http://img265.imageshack.us/img265/7680/jarlsbergimgassistcusto.png" border="0" alt="jarlsbergimgassistcusto Curso sobre desarrollo seguro de aplicaciones web por Google"  title="Curso sobre desarrollo seguro de aplicaciones web por Google" /></p><p>El curso, que es parte del proyecto <a
href="http://anonym-url.com/go.php?to=http://code.google.com/edu/" target="_blank">Google Code University</a>, se basa en el concepto de aplicaciones de tipo Twitter, denominada <a
href="http://jarlsberg.appspot.com/start" target="_blank">Jarlsberg</a>, un programa que Google liberó para este fin. Conocido como &#8220;<a
href="http://jarlsberg.appspot.com/part1" target="_blank">Web Application Exploits and Defenses</a>,&#8221; desde el cual se da la oportunidad de visualizar el funcionamiento interno de una aplicación insegura, analizar las vulnerabilidades y aprender de los errores de programación que generaron estas fallas.<span
id="more-4279"></span></p><p>Ademas de aprender desarrollo, también tendremos una serie de retos que requieren que los estudiantes se esfuercen e identifiquen vulnerabilidades especificas en el código de Jarlsberg. Después de que los estudiantes aprenden los fundamentos de una <a
href="http://www.dragonjar.org/tag/vulnerabilidad" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Vulnerabilidad">vulnerabilidad</a>, como CSRF, <a
href="http://www.dragonjar.org/tag/xss" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con XSS">XSS</a>, se les pide que encuentren una forma de utilizar esta falla para realizar una acción maliciosas especifica en la aplicación, como cambiar algunos detalles en la cuenta de registro de los usuarios sin que ellos se enteren.</p><h2 style="text-align: center;"><a
href="http://code.google.com/intl/es-ES/edu/">Ingresa al Curso de Google sobre Seguridad Web</a></h2><p><strong>Más Información:</strong><br
/> <a
href="http://comunidad.dragonjar.org/f150/google-ofrece-curso-gratuito-para-diseno-seguro-de-aplicaciones-web-9852/#post26053">Anuncio de Hans en la Comunidad</a></p><h3  class="related_post_title">También puede interesarte...</h3><ul
class="related_post"><li><a
href="http://www.dragonjar.org/presentacion-conceptos-basicos-seguridad-web.xhtml" title="Presentación de conceptos básicos en Seguridad Web">Presentación de conceptos básicos en Seguridad Web</a></li><li><a
href="http://www.dragonjar.org/revisa-la-seguridad-de-tu-sitio-web-gratis.xhtml" title="Revisa la seguridad de tu sitio web Gratis">Revisa la seguridad de tu sitio web Gratis</a></li><li><a
href="http://www.dragonjar.org/x5s-encuentra-fallos-xss-lfi-y-rfi-facilmente.xhtml" title="X5S &#8211; Encuentra fallos XSS, LFI y RFI fácilmente">X5S &#8211; Encuentra fallos XSS, LFI y RFI fácilmente</a></li><li><a
href="http://www.dragonjar.org/top-10-fallos-de-seguridad-en-aplicaciones-web.xhtml" title="TOP 10 Fallos de Seguridad en Aplicaciones Web">TOP 10 Fallos de Seguridad en Aplicaciones Web</a></li><li><a
href="http://www.dragonjar.org/multiples-vulnerabilidades-smf.xhtml" title="Multiples Vulnerabilidades en SMF">Multiples Vulnerabilidades en SMF</a></li><li><a
href="http://www.dragonjar.org/charla-de-seguridad-web-gratuita-barcelona-espana.xhtml" title="Charla de Seguridad Web Gratuita &#8211; Barcelona España ">Charla de Seguridad Web Gratuita &#8211; Barcelona España </a></li><li><a
href="http://www.dragonjar.org/descargar-gratis-internet-explorer-8-final.xhtml" title="Descargar Gratis Internet Explorer 8 Final">Descargar Gratis Internet Explorer 8 Final</a></li><li><a
href="http://www.dragonjar.org/cursos-gratis-de-diseno-web-en-el-sena-virtual.xhtml" title="Cursos Gratis de Diseño Web en el Sena Virtual">Cursos Gratis de Diseño Web en el Sena Virtual</a></li></ul>]]></content:encoded> <wfw:commentRss>http://www.dragonjar.org/curso-gratis-desarrollo-seguro-aplicaciones-web-google.xhtml/feed</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Ingeniería Inversa en Aplicación JAVA y JNLP</title><link>http://www.dragonjar.org/crackear-aplicacion-java-jnlp.xhtml</link> <comments>http://www.dragonjar.org/crackear-aplicacion-java-jnlp.xhtml#comments</comments> <pubDate>Wed, 02 Dec 2009 17:12:39 +0000</pubDate> <dc:creator>DragoN</dc:creator> <category><![CDATA[Documentacion]]></category> <category><![CDATA[Noticias Software]]></category> <category><![CDATA[Decompilar]]></category> <category><![CDATA[Ingenieria Inversa]]></category> <category><![CDATA[JAVA]]></category> <category><![CDATA[JNLP]]></category> <category><![CDATA[Programación]]></category><guid
isPermaLink="false">http://www.dragonjar.org/?p=3444</guid> <description><![CDATA[En lo personal nunca me ha gustado JAVA como lenguaje de programación, siempre hice los trabajos universitarios con este lenguaje por obligación pero nunca me convenció del todo, ya que es mas lento que otros lenguajes y es muy sencillo decompilar un código creado con java utilizando herramientas gratuitas como Java Decompiler (aunque se puede [...]]]></description> <content:encoded><![CDATA[<p>En lo personal nunca me ha gustado <a
href="http://www.dragonjar.org/tag/java" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con JAVA">JAVA</a> como lenguaje de <a
href="http://www.dragonjar.org/tag/programacion" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Programación">programación</a>, siempre hice los trabajos universitarios con este lenguaje por obligación pero nunca me convenció del todo, ya que es mas lento que otros lenguajes y es muy sencillo<a
href="http://java.decompiler.free.fr/?q=jdgui#downloads"> decompilar un código creado con java</a> utilizando herramientas gratuitas como <a
href="http://java.decompiler.free.fr/">Java Decompiler</a> (<a
href="http://www.plentyofcode.com/2007/08/java-decompilers-and-obfuscators.html">aunque se puede ofuscar el código</a>). No estoy diciendo que sea un mal lenguaje de programación, es mas tiene varias ventajas frente a muchos otros lenguajes, como el echo de ser multiplataforma y que prácticamente existen clases para casi todo lo que necesitas hacer, solo digo que a mi en lo personal no me pasa.</p><p
style="text-align: center;"><img
class="alignnone" title="Decompilar JAVA" src="http://imgur.com/ySIid.png" alt="ySIid Ingeniería Inversa en Aplicación JAVA y JNLP" width="250" height="332" /></p><p>En esta ocasión les traigo un vídeo creado por JavaGuru en el que nos enseña de una forma practica, como realizar ingeniería inversa a un juego de ajedrez desarrollado en JAVA y <a
href="http://www.dragonjar.org/tag/jnlp" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con JNLP">JNLP</a>, el vídeo muestra como eliminar una de las restricciones implementadas en este juego, pero los conceptos pueden ser aplicados en cualquier aplicación desarrollada en JAVA y que utilice <a
href="http://www.dragonjar.org/tag/jnlp" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con JNLP">JNLP</a>.<br
/> <span
id="more-3444"></span></p><div
align="center"><p
id="preview"><embed
id="player" type="application/x-shockwave-flash" width="500" height="300" src="http://miliw0rm.securitytube.net/player.swf" name="player" quality="high" allowfullscreen="true" allowscriptaccess="always" flashvars="file=http://videos.securitytube.net/Java-and-JNLP-Application-Hacking.flv"></embed></p><p><script src="http://miliw0rm.securitytube.net/swfobject.js" type="text/javascript"></script><script type="text/javascript">// <![CDATA[
 var s1 = new SWFObject('http://miliw0rm.securitytube.net/player.swf','player','500','300','9'); s1.addParam('allowfullscreen','true'); s1.addParam('allowscriptaccess','always'); s1.addParam('flashvars','file=http://videos.securitytube.net/Java-and-JNLP-Application-Hacking.flv'); s1.write('preview');
// ]]&gt;</script></div><h3  class="related_post_title">También puede interesarte...</h3><ul
class="related_post"><li><a
href="http://www.dragonjar.org/cursos-gratuitos-de-programacion-sena-virtual.xhtml" title="cursos de programacion gratuitos en el sena virtual">cursos de programacion gratuitos en el sena virtual</a></li><li><a
href="http://www.dragonjar.org/taller-del-hacking-day-en-el-ack-security-conference.xhtml" title="Taller del Hacking Day en el ACK Security Conference">Taller del Hacking Day en el ACK Security Conference</a></li><li><a
href="http://www.dragonjar.org/entrevista-a-cesar-cerrudo.xhtml" title="Entrevista a César Cerrudo">Entrevista a César Cerrudo</a></li><li><a
href="http://www.dragonjar.org/video-tutorial-set-social-engineering-toolkit.xhtml" title="Video Tutorial SET (Social Engineering Toolkit)">Video Tutorial SET (Social Engineering Toolkit)</a></li><li><a
href="http://www.dragonjar.org/curso-de-python-dictado-por-google.xhtml" title="Curso de Python dictado por Google">Curso de Python dictado por Google</a></li><li><a
href="http://www.dragonjar.org/curso-gratis-desarrollo-seguro-aplicaciones-web-google.xhtml" title="Curso sobre desarrollo seguro de aplicaciones web por Google">Curso sobre desarrollo seguro de aplicaciones web por Google</a></li><li><a
href="http://www.dragonjar.org/soporte-para-flash-y-java-en-el-iphone-ipod-touch.xhtml" title="Soporte para Flash y JAVA en el iPhone / iPod Touch">Soporte para Flash y JAVA en el iPhone / iPod Touch</a></li><li><a
href="http://www.dragonjar.org/memorias-del-black-hat-usa-2009.xhtml" title="Memorias del Black Hat USA 2009">Memorias del Black Hat USA 2009</a></li></ul>]]></content:encoded> <wfw:commentRss>http://www.dragonjar.org/crackear-aplicacion-java-jnlp.xhtml/feed</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Cursos Gratis de Diseño Web en el Sena Virtual</title><link>http://www.dragonjar.org/cursos-gratis-de-diseno-web-en-el-sena-virtual.xhtml</link> <comments>http://www.dragonjar.org/cursos-gratis-de-diseno-web-en-el-sena-virtual.xhtml#comments</comments> <pubDate>Sun, 22 Feb 2009 04:05:48 +0000</pubDate> <dc:creator>DragoN</dc:creator> <category><![CDATA[Documentacion]]></category> <category><![CDATA[Acceder]]></category> <category><![CDATA[adobe photoshop]]></category> <category><![CDATA[beca]]></category> <category><![CDATA[becas]]></category> <category><![CDATA[Cursos]]></category> <category><![CDATA[cursos gratis]]></category> <category><![CDATA[cursos virtuales]]></category> <category><![CDATA[Diseño]]></category> <category><![CDATA[Empresas]]></category> <category><![CDATA[Flash]]></category> <category><![CDATA[Gratis]]></category> <category><![CDATA[Informática]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Programación]]></category> <category><![CDATA[sen a]]></category> <category><![CDATA[SENA]]></category> <category><![CDATA[sena virtualç]]></category> <category><![CDATA[senavirtual]]></category> <category><![CDATA[Servicio]]></category> <category><![CDATA[virtual sena]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[www.senavirtual.edu.co]]></category><guid
isPermaLink="false">http://www.dragonjar.org/?p=2025</guid> <description><![CDATA[El SENA (Servicio Nacional de Aprendizaje), en su página www.senavirtual.edu.co o su plataforma sena sofia plus está implementando nuevos cursos virtuales sobre diseño web, entre las temáticas encontramos lenguajes como HTML, PHP, CSS , JAVASCRIPT, ademas de cursos para manejar los programas mas populares para el diseño  Photoshop, Autocad, Corel Draw, Flash,  Solid Edge, Dreamweaver [...]]]></description> <content:encoded><![CDATA[<p
style="text-align: center;"><img
class="aligncenter" title="Cursos Gratuitos de Programacion en el SENA VIRTUAL" src="http://img355.imageshack.us/img355/6241/sinttulo2cz9.jpg" alt="sinttulo2cz9 Cursos Gratis de Diseño Web en el Sena Virtual"  /></p><p>El SENA (<a
href="http://www.dragonjar.org/tag/servicio" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Servicio">Servicio</a> <a
href="http://www.dragonjar.org/tag/nacional" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Nacional">Nacional</a> de Aprendizaje), en su página www.<a
href="http://www.dragonjar.org/tag/senavirtual" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con senavirtual">senavirtual</a>.edu.co o su plataforma <strong><a
href="http://www.dragonjar.org/tag/sena-sofia" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con sena sofia">sena sofia</a> plus</strong> está implementando nuevos cursos virtuales sobre diseño <a
href="http://www.dragonjar.org/tag/web" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Web">web</a>, entre las temáticas encontramos lenguajes como HTML, PHP, CSS , <a
href="http://www.dragonjar.org/tag/javascript" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con JavaScript">JAVASCRIPT</a>, ademas de cursos para manejar los programas mas populares para el diseño  Photoshop, Autocad, Corel Draw, Flash,  Solid Edge, Dreamweaver y FrontPage.<span
id="more-2025"></span></p><p>Recordemos que al terminar los cursos en el sena virtual te dan un certificado del sena y entras automáticamente en la bolsa de empleo del SENA donde podrás ser llamado para trabajar en prestigiosas empresas del sector tecnológico del país.</p><p><script type="text/javascript">// <![CDATA[
google_ad_client = "pub-5474472965666825";
/* DJAR - Sena Enlaces */
google_ad_slot = "3038482239";
google_ad_width = 200;
google_ad_height = 90;
// ]]&gt;</script><br
/><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script></p><p><strong><span
style="text-decoration: underline;"><span
style="color: #000000;">El listado de cursos que puedes realizar en el senavirtual sobre diseño web:</span></span></strong></p><p><span
style="color: #0000ff;">Programación de páginas Web con HTML y JAVASCRIPT<br
/> Diseño Web con Macromedia Dreamweaver Mx<br
/> Manejo de <a
href="http://www.dragonjar.org/tag/adobe-photoshop" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con adobe photoshop">Adobe Photoshop</a><br
/> Manejo de Herramientas Informáticas: Solid Edge<br
/> Autocad 2D<br
/> Autocad 3D<br
/> Corel Draw &#8211; Utilización de herramientas de diseño Vectorial<br
/> Corel Draw &#8211; Textos y Organización de Objetos<br
/> Corel Draw &#8211; Transformación de Objetos y Efectos Especiales<br
/> <a
href="http://www.dragonjar.org/tag/desarrollo" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Desarrollo">Desarrollo</a> y publicación de <a
href="http://www.dragonjar.org/tag/sitios" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Sitios">sitios</a> Web utilizando la herramienta Frontpage<br
/> Diseño de Sitios Web, estrategias y usos de herramientas de diseño &#8211; Frontpage<br
/> Flash &#8211; Animacion en 2D</span><br
/><script type="text/javascript">// <![CDATA[
google_ad_client = "pub-5474472965666825";
/* DJAR - Sena Enlaces */
google_ad_slot = "3038482239";
google_ad_width = 200;
google_ad_height = 90;
// ]]&gt;</script><br
/><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script></p><p>Para acceder a estos cursos gratuitos del SENA solo tienes que entrar al <a
href="http://anonym-url.com/go.php?to=http://sis.senavirtual.edu.co/oferta.php?areaid=10">enlace del sena virtual.</a></p><p
align=center><iframe
width="580" height="465" src="http://www.youtube.com/embed/43QnhMXDDfI" frameborder="0" allowfullscreen></iframe></p><h3  class="related_post_title">También puede interesarte...</h3><ul
class="related_post"><li><a
href="http://www.dragonjar.org/cupos-disponibles-en-el-sena.xhtml" title="Cupos disponibles en el SENA">Cupos disponibles en el SENA</a></li><li><a
href="http://www.dragonjar.org/cursos-virtuales-gratis-en-el-sena.xhtml" title="www.senavirtual.edu.co – Cursos virtuales GRATIS en el Sena">www.senavirtual.edu.co – Cursos virtuales GRATIS en el Sena</a></li><li><a
href="http://www.dragonjar.org/curso-gratis-de-seguridad-y-redes-en-el-sena-virtual.xhtml" title="Curso Gratis de Seguridad y Redes en el Sena Virtual">Curso Gratis de Seguridad y Redes en el Sena Virtual</a></li><li><a
href="http://www.dragonjar.org/curso-en-el-sena-virtual-sobre-auditoria-en-seguridad.xhtml" title="Curso en el Sena Virtual sobre Auditoria en Seguridad">Curso en el Sena Virtual sobre Auditoria en Seguridad</a></li><li><a
href="http://www.dragonjar.org/cursos-gratuitos-de-programacion-sena-virtual.xhtml" title="cursos de programacion gratuitos en el sena virtual">cursos de programacion gratuitos en el sena virtual</a></li><li><a
href="http://www.dragonjar.org/curso-gratuito-de-ingles-con-el-sena-virtual.xhtml" title="Curso Gratuito de Ingles con el Sena Virtual">Curso Gratuito de Ingles con el Sena Virtual</a></li><li><a
href="http://www.dragonjar.org/cursos-gratis-de-informatica-en-el-sena-virtual.xhtml" title="Sena Virtual Cursos Gratis de Informática">Sena Virtual Cursos Gratis de Informática</a></li><li><a
href="http://www.dragonjar.org/sena-sofia-plus.xhtml" title="SENA Sofia Plus">SENA Sofia Plus</a></li></ul>]]></content:encoded> <wfw:commentRss>http://www.dragonjar.org/cursos-gratis-de-diseno-web-en-el-sena-virtual.xhtml/feed</wfw:commentRss> <slash:comments>50</slash:comments> </item> <item><title>cursos de programacion gratuitos en el sena virtual</title><link>http://www.dragonjar.org/cursos-gratuitos-de-programacion-sena-virtual.xhtml</link> <comments>http://www.dragonjar.org/cursos-gratuitos-de-programacion-sena-virtual.xhtml#comments</comments> <pubDate>Sat, 20 Dec 2008 18:08:28 +0000</pubDate> <dc:creator>DragoN</dc:creator> <category><![CDATA[Documentacion]]></category> <category><![CDATA[aplicaciones]]></category> <category><![CDATA[Aprendizaje]]></category> <category><![CDATA[beca]]></category> <category><![CDATA[becas]]></category> <category><![CDATA[calidad de software]]></category> <category><![CDATA[Curso]]></category> <category><![CDATA[Cursos]]></category> <category><![CDATA[cursos virtuales]]></category> <category><![CDATA[Diseño]]></category> <category><![CDATA[excepciones en java]]></category> <category><![CDATA[JAVA]]></category> <category><![CDATA[Microsoft]]></category> <category><![CDATA[microsoft access 2000]]></category> <category><![CDATA[Nacional]]></category> <category><![CDATA[plus]]></category> <category><![CDATA[plus sofia]]></category> <category><![CDATA[Programación]]></category> <category><![CDATA[sen a]]></category> <category><![CDATA[SENA]]></category> <category><![CDATA[sena plus]]></category> <category><![CDATA[sena sofia]]></category> <category><![CDATA[sena sofia plus]]></category> <category><![CDATA[sena virtualç]]></category> <category><![CDATA[senavirtual]]></category> <category><![CDATA[sofia]]></category> <category><![CDATA[sofia plus]]></category> <category><![CDATA[SQL]]></category> <category><![CDATA[variables]]></category> <category><![CDATA[Virtual]]></category> <category><![CDATA[virtual sena]]></category> <category><![CDATA[www.senavirtual.edu.co]]></category><guid
isPermaLink="false">http://www.dragonjar.org/?p=1672</guid> <description><![CDATA[cursos de programacion hay muchos, pero ninguno como los cursos de programacion gratuitos que hace el sena virtual. El SENA (Servicio Nacional de Aprendizaje), en su página www.senavirtual.edu.co o en su plataforma sena sofia plus está implementando nuevos cursos programacion virtuales, entre las temáticas de estos cursos de programacion encontramos lenguajes como JAVA, C++, modelado de [...]]]></description> <content:encoded><![CDATA[<p><strong>cursos de programacion</strong> hay muchos, pero ninguno como los <em>cursos de programacion</em> gratuitos que hace el <a
href="http://www.dragonjar.org/tag/sena" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con SENA">sena</a> <a
href="http://www.dragonjar.org/tag/virtual" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Virtual">virtual</a>.</p><p
style="text-align: center;"><img
class="aligncenter" src="http://img355.imageshack.us/img355/6241/sinttulo2cz9.jpg" alt="sinttulo2cz9 cursos de programacion gratuitos en el sena virtual"  title="cursos de programacion gratuitos en el sena virtual" /></p><p>El SENA (<a
href="http://www.dragonjar.org/tag/servicio" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Servicio">Servicio</a> Nacional de <a
href="http://www.dragonjar.org/tag/aprendizaje" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Aprendizaje">Aprendizaje</a>), en su página www.senavirtual.edu.co o en su plataforma <strong><a
href="http://www.dragonjar.org/tag/sena-sofia-plus" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con sena sofia plus">sena sofia plus</a></strong> está implementando nuevos cursos programacion virtuales, entre las temáticas de estos cursos de programacion encontramos lenguajes como JAVA, C++, modelado de datos y <a
href="http://www.dragonjar.org/tag/calidad-de-software" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con calidad de software">calidad de software</a>.</p><p>Recordemos que al terminar los cursos de programacion en el sena virtual te dan un certificado del sena y entras automáticamente en la bolsa de empleo del SENA donde podrás ser llamado para trabajar en prestigiosas empresas del sector tecnológico del país.</p><p>El listado de cursos de programacion que puedes realizar en el senavirtual es el siguiente:<br
/> <span
id="more-1672"></span></p><p><script type="text/javascript">// <![CDATA[
        google_ad_client = "pub-5474472965666825"; /* DJAR - Sena Enlaces */ google_ad_slot = "3038482239"; google_ad_width = 200; google_ad_height = 90;
// ]]&gt;</script><br
/><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script><br
/> <br
/> <strong><span
style="text-decoration: underline;"><span
style="color: #000000;"><strong>Cursos de Programacion - </strong>Programación Orientada A Objetos</span></span></strong> <span
style="color: #0000ff;"><br
/> <a
href="http://www.dragonjar.org/tag/variables" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con variables">Variables</a> y estructuras de Control en la Programación orientada a objetos: Java<br
/> Desarrollo de <a
href="http://www.dragonjar.org/tag/aplicaciones" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con aplicaciones">aplicaciones</a> con Interfaz Gráfica, Manejo de Eventos, Clases y Objetos : Java<br
/> Desarrollo de Aplicaciones con Manejo de Datos en la Memoria- Java<br
/> Desarrollo de Aplicaciones con Manejo de Archivos de Texto y el Manejo de <a
href="http://www.dragonjar.org/tag/excepciones-en-java" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con excepciones en java">Excepciones en JAVA</a><br
/> Desarrollo de Aplicaciones con Manejo de Proceso Simultaneo y Uso de Menús: Java<br
/> Desarrollo de Applets/Aplicaciones con Uso de Base de Datos, Redes, Servlets y Multimedia<br
/> Estructura del Lenguaje de Programación c++ ( Nivel I del cursos de programacion)<br
/> Módulos, estructura de almacenamiento y POO utilizando el lenguaje de programación C++ ( Nivel II)<br
/> Uso de clases, objetos, métodos y archivos secuenciales en POO con lenguaje de programación C++ ( Nivel III)<br
/></span><script type="text/javascript">// <![CDATA[
        google_ad_client = "pub-5474472965666825"; /* DJAR - Sena Enlaces */ google_ad_slot = "3038482239"; google_ad_width = 200; google_ad_height = 90;
// ]]&gt;</script><br
/><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script><br
/> <br
/> <strong><span
style="text-decoration: underline;"><span
style="color: #000000;">cursos de programacion - Modelado De Datos</span></span></strong><br
/> <span
class="Apple-style-span" style="color: #0000ff;"><a
href="http://www.dragonjar.org/tag/informatica" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Informática">Informática</a>: Administración de bases de datos utilizando Microsoft® Access 2000</span><br
/> <span
style="color: #0000ff;"> Informática: <a
href="http://www.dragonjar.org/tag/diseno" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Diseño">Diseño</a> de bases de datos en SQL<br
/> Metodología de la Programación de Sistemas Informáticos<br
/> Estructuras de datos Lineales<br
/> Estructuras de datos No Lineales<br
/> Modelación de Sistemas &#8211; Modelación<br
/> Modelación de Sistemas &#8211; Simulación<br
/> Base de datos: Conceptuación y sistemas de Administración<br
/> Diseño de Casos de Uso<br
/> Metodologías de Análisis y Diseño de Sistemas-de la incepción al diseño de la arquitectura<br
/> Metodologías de Análisis y Diseño de Sistemas-del diseño a la implementación<br
/> Principios del análisis y diseño orientado a objetos, utilizando el estándar UML<br
/> Aplicación metodología orientada a objetos utilizando el estándar UML</span></p><p><span
style="color: #0000ff;">Para acceder a estos <a
href="http://www.dragonjar.org/cursos-virtuales-gratis-en-el-sena.xhtml">cursos de programacion</a> gratuitos del SENA solo tienes que entrar al enlace de los <a
href="http://anonym-url.com/go.php?to=http://sis.senavirtual.edu.co/oferta.php?areaid=10">cursos de programacion</a> en el sena virtual.</span></p><p
align="center"><iframe
src="http://www.youtube.com/embed/43QnhMXDDfI" frameborder="0" width="580" height="465"></iframe></p><h3  class="related_post_title">También puede interesarte...</h3><ul
class="related_post"><li><a
href="http://www.dragonjar.org/cursos-virtuales-gratis-en-el-sena.xhtml" title="www.senavirtual.edu.co – Cursos virtuales GRATIS en el Sena">www.senavirtual.edu.co – Cursos virtuales GRATIS en el Sena</a></li><li><a
href="http://www.dragonjar.org/curso-gratis-de-seguridad-y-redes-en-el-sena-virtual.xhtml" title="Curso Gratis de Seguridad y Redes en el Sena Virtual">Curso Gratis de Seguridad y Redes en el Sena Virtual</a></li><li><a
href="http://www.dragonjar.org/cupos-disponibles-en-el-sena.xhtml" title="Cupos disponibles en el SENA">Cupos disponibles en el SENA</a></li><li><a
href="http://www.dragonjar.org/curso-en-el-sena-virtual-sobre-auditoria-en-seguridad.xhtml" title="Curso en el Sena Virtual sobre Auditoria en Seguridad">Curso en el Sena Virtual sobre Auditoria en Seguridad</a></li><li><a
href="http://www.dragonjar.org/cursos-gratis-de-informatica-en-el-sena-virtual.xhtml" title="Sena Virtual Cursos Gratis de Informática">Sena Virtual Cursos Gratis de Informática</a></li><li><a
href="http://www.dragonjar.org/curso-gratuito-de-ingles-con-el-sena-virtual.xhtml" title="Curso Gratuito de Ingles con el Sena Virtual">Curso Gratuito de Ingles con el Sena Virtual</a></li><li><a
href="http://www.dragonjar.org/cursos-gratis-de-diseno-web-en-el-sena-virtual.xhtml" title="Cursos Gratis de Diseño Web en el Sena Virtual">Cursos Gratis de Diseño Web en el Sena Virtual</a></li><li><a
href="http://www.dragonjar.org/sena-sofia-plus.xhtml" title="SENA Sofia Plus">SENA Sofia Plus</a></li></ul>]]></content:encoded> <wfw:commentRss>http://www.dragonjar.org/cursos-gratuitos-de-programacion-sena-virtual.xhtml/feed</wfw:commentRss> <slash:comments>101</slash:comments> </item> <item><title>Programar para el iPhone, un negocio rentable</title><link>http://www.dragonjar.org/programar-para-el-iphone-un-negocio-rentable.xhtml</link> <comments>http://www.dragonjar.org/programar-para-el-iphone-un-negocio-rentable.xhtml#comments</comments> <pubDate>Tue, 11 Nov 2008 04:13:05 +0000</pubDate> <dc:creator>DragoN</dc:creator> <category><![CDATA[Documentacion]]></category> <category><![CDATA[Noticias Hardware]]></category> <category><![CDATA[Como programar para el iPhone]]></category> <category><![CDATA[IPhone]]></category> <category><![CDATA[Ipod Touch]]></category> <category><![CDATA[Manuales]]></category> <category><![CDATA[Programación]]></category><guid
isPermaLink="false">http://www.dragonjar.org/?p=1457</guid> <description><![CDATA[Tras el éxito de la serie de artículos sobre convertir el iPhone o el iPod touch en una herramienta portable de seguridad informática escrito por 4v4t4r (feliz poseedor de un iPod Touch) me llene de curiosidad sobre el desarrollo de aplicaciones para estos dispositivos, me puse a buscar información sobre esto y en el proceso [...]]]></description> <content:encoded><![CDATA[<p>Tras el éxito de la serie de artículos sobre <a
href="http://www.dragonjar.org/iphoneipod-touch-como-herramienta-de-test-de-penetracion-iii-de-iii.xhtml">convertir el iPhone o el iPod touch en una herramienta portable de seguridad informática</a> escrito por 4v4t4r (feliz poseedor de un <a
href="http://www.dragonjar.org/tag/ipod-touch" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Ipod Touch">iPod Touch</a>) me llene de curiosidad sobre el <a
href="http://www.dragonjar.org/tag/desarrollo" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Desarrollo">desarrollo</a> de <a
href="http://www.dragonjar.org/tag/aplicaciones" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con aplicaciones">aplicaciones</a> para estos dispositivos, me puse a buscar información sobre esto y en el proceso y encontré con una serie de historias de éxito sobre desarrolladores de <a
href="http://www.dragonjar.org/tag/aplicaciones" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con aplicaciones">aplicaciones</a> para el <a
href="http://www.dragonjar.org/tag/iphone" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con IPhone">iPhone</a>. Algunos de los más populares, que están en el <a
href="http://www.apple.com/iphone/appstore/">top 25 de la tienda iTunes</a>, ganan por ejemplo entre $1,000-$2,000 dolares al día, solo por las ventas de sus aplicaciones y dependiendo de cuánto estén cobrando por programa (por lo general son solo 0.99 centavos de dolar) &#8230;</p><p
style="text-align: center;"><img
class="aligncenter" src="http://img444.imageshack.us/img444/2243/iphonedollarvq7.jpg" alt="iphonedollarvq7 Programar para el iPhone, un negocio rentable"  title="Programar para el iPhone, un negocio rentable" /></p><p><span
id="more-1457"></span><a
href="http://arstechnica.com/journals/apple.ars/2008/08/04/app-store-bringing-in-strong-revenue-for-some-iphone-devs">Una de estas historias</a> es la de Tapulous,  creador del megapopular Tap Tap Revenge (ver vídeo), con las ventas conseguidas en un periodo de 7 días, de <a
href="http://www.youtube.com/watch?v=oes7TUR2cyY">Where To?</a>, habían conseguido $6,927, y esto, después del 30% que Apple se lleva como porcentaje.</p><p
style="text-align: center;"><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="allowFullScreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="src" value="http://www.youtube.com/v/jkhypMAkGRs&amp;hl=es&amp;fs=1" /><embed
type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/jkhypMAkGRs&amp;hl=es&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><p>Ya sabemos que es muy rentable desarrollar para el iPhone (y eso que todavía no es tan popular), ahora les dejo un listado de los recursos que encontré para aprender a programa aplicaciones para el iPhone y el iPod Touch.</p><ul><li><a
href="http://comunidad.dragonjar.org/index.php/topic,1121.0.html">Primero el Clásico &#8220;Hola mundo&#8221; para iPhone Vídeo Tutorial</a></li><li><a
href="http://www.stanford.edu/class/cs193p/cgi-bin/index.php">Cursos paso “paso a paso” en PDF para desarrollo de aplicaciones del iPhone dictado por la Universidad de Stanford.</a></li><li><a
href="http://developer.apple.com/iphone/">Los recursos que publica Apple para que desarrollen en su producto</a></li><li><a
href="http://www.iphonedevcentral.org/home.php">iPhone Dev Central, portal con muchos vídeo tutoriales enseñando como programar para el iPhone</a></li></ul><p>Si alguien conoce algún otro que comente para añadirlo a la lista.</p><p>Para que vean un ejemplo de lo que se puede hacer en el iPhone o el iPod Touch les dejo varios vídeos del software &#8220;Ocarine&#8221;, la aplicación mas vendida en estos momentos de la tienda iTunes (cuesta solo 0.99 centavos de dolar).</p><p
style="text-align: center;"><img
class="aligncenter" src="http://img266.imageshack.us/img266/8421/mzlqqnktvph480x48075po3.png" alt="mzlqqnktvph480x48075po3 Programar para el iPhone, un negocio rentable"  title="Programar para el iPhone, un negocio rentable" /></p><p
style="text-align: center;"><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="allowFullScreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="src" value="http://www.youtube.com/v/kfrONZjakRY&amp;hl=es&amp;fs=1" /><embed
type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/kfrONZjakRY&amp;hl=es&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><p>Para los fanáticos de The Legend of Zelda &#8211; Ocarina of Time hay una edición especial <img
src='http://www.dragonjar.org/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Programar para el iPhone, un negocio rentable" class='wp-smiley' title="Programar para el iPhone, un negocio rentable" /> &#8230;</p><p
style="text-align: center;"><object
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param
name="allowFullScreen" value="true" /><param
name="allowscriptaccess" value="always" /><param
name="src" value="http://www.youtube.com/v/RhCJq7EAJJA&amp;hl=es&amp;fs=1" /><embed
type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/RhCJq7EAJJA&amp;hl=es&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p><p>Ya saben los que quieran aprender saben que hay buen mercado&#8230;</p><h3  class="related_post_title">También puede interesarte...</h3><ul
class="related_post"><li><a
href="http://www.dragonjar.org/jailbreak-a-cualquier-iphone-ipod-touch-e-ipad.xhtml" title="Jailbreak a Cualquier iPhone, iPod Touch e iPad">Jailbreak a Cualquier iPhone, iPod Touch e iPad</a></li><li><a
href="http://www.dragonjar.org/las-peores-contrasenas-para-el-iphone-ipod-o-ipad.xhtml" title="Las peores Contraseñas para el iPhone, iPod o iPad ">Las peores Contraseñas para el iPhone, iPod o iPad </a></li><li><a
href="http://www.dragonjar.org/recuperar-el-codigo-contrasena-de-iphone-ipod-touch-o-ipad.xhtml" title="Recuperar el Codigo (Contraseña) de iPhone, iPod Touch o iPad">Recuperar el Codigo (Contraseña) de iPhone, iPod Touch o iPad</a></li><li><a
href="http://www.dragonjar.org/descargar-firmware-ios-para-iphone-ipod-touch-ipad-y-apple-tv.xhtml" title="Descargar Firmware (iOS) para iPhone, iPod Touch, iPad y Apple TV">Descargar Firmware (iOS) para iPhone, iPod Touch, iPad y Apple TV</a></li><li><a
href="http://www.dragonjar.org/importar-musica-del-iphone-o-ipod-touch-al-disco-duro.xhtml" title="Importar Musica del iPhone o iPod Touch al Disco Duro">Importar Musica del iPhone o iPod Touch al Disco Duro</a></li><li><a
href="http://www.dragonjar.org/parchear-problema-de-seguridad-de-safari-en-iphone-ipod-touch-e-ipad.xhtml" title="Parchear problema de seguridad de Safari en iPhone, iPod Touch e iPad">Parchear problema de seguridad de Safari en iPhone, iPod Touch e iPad</a></li><li><a
href="http://www.dragonjar.org/iphoneipod-touch-como-herramienta-de-test-de-penetracion-bonus.xhtml" title="iPhone/iPod Touch como herramienta de Test de Penetración (Bonus)">iPhone/iPod Touch como herramienta de Test de Penetración (Bonus)</a></li><li><a
href="http://www.dragonjar.org/soporte-para-flash-y-java-en-el-iphone-ipod-touch.xhtml" title="Soporte para Flash y JAVA en el iPhone / iPod Touch">Soporte para Flash y JAVA en el iPhone / iPod Touch</a></li></ul>]]></content:encoded> <wfw:commentRss>http://www.dragonjar.org/programar-para-el-iphone-un-negocio-rentable.xhtml/feed</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Programación Segura: Problemas de cadena de formato</title><link>http://www.dragonjar.org/programacion-segura-problemas-de-cadena-de-formato.xhtml</link> <comments>http://www.dragonjar.org/programacion-segura-problemas-de-cadena-de-formato.xhtml#comments</comments> <pubDate>Tue, 20 Nov 2007 06:21:38 +0000</pubDate> <dc:creator>DragoN</dc:creator> <category><![CDATA[Artículos sobre seguridad]]></category> <category><![CDATA[Cadenas]]></category> <category><![CDATA[Formato]]></category> <category><![CDATA[Programación]]></category> <category><![CDATA[Segura]]></category><guid
isPermaLink="false">http://www.dragonjar.org/?p=747</guid> <description><![CDATA[Continúa desde “Programación Segura: Desbordamientos del Búfer” Revisión General de los Problemas de cadena de formato. Los problemas de cadena de formato contituyen uno de los pocos ataques realmente nuevos que surgieron en años recientes. Al igual que con muchos problemas de seguridad, la principal causa de los errores de cadena de formato es aceptar [...]]]></description> <content:encoded><![CDATA[<p>Continúa desde “<a
href="../programacion-segura-desbordamientos-del-bufer.xhtml" target="_blank">Programación Segura: Desbordamientos del Búfer</a>”</p><p><strong>Revisión General de los Problemas de cadena de formato.</strong></p><p>Los problemas de cadena de formato contituyen uno de los pocos ataques realmente nuevos que surgieron en años recientes.<br
/> Al igual que con muchos problemas de <a
href="http://www.dragonjar.org/tag/seguridad" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Seguridad">seguridad</a>, la principal causa de los errores de cadena de formato es aceptar sin validar la entrada proporcionada por el usuario. En<a
href="http://es.wikipedia.org/wiki/C%2B%2B" target="_blank"> C/C++</a> es posible utilizar errores de cadena de formato para escribir en ubicciones de memoria arbitrarias, y el aspecto mpas peligroso es que esto llega a suceder sin manipular bloques de memoria adyacentes. Esta capacidad de diseminación permite a un atacante eludir protecciones de pila, e incluso modificar partes my pequeñas de memoria. El problema también llega a ocurrir cuando las <a
href="http://www.dragonjar.org/tag/cadenas" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Cadenas">cadenas</a> de formato se leen a partir de una ubicación no confiable que controla el atacante. Este último aspecto del problema tiende a ser más frecuente en sistemas <a
href="http://es.wikipedia.org/wiki/Unix" target="_blank">UNIX</a> y <a
href="http://es.wikipedia.org/wiki/Linux" target="_blank">Linux</a>. En sistemas Windows las tablas de cadena de aplicación suelen mantenerse dentro del progrma ejecutable o de las bibliotecas de vínculo dinámico (<a
href="http://es.wikipedia.org/wiki/Dynamic_Linking_Library" target="_blank">DLL, Dynamic Link Libraries</a>) del recurso. Si un atacante reeescribe el ejecutable principal o de las DLL, tendrá la posibilidad de realizar ataques mucho más directos que con errores de cadena de formato.<span
id="more-747"></span></p><p>Aunque no esté trabajando con C/C++, los ataques de cadena de formato quizá conduzcan a problemas importantes; el más obvio es engañar a los usuarios, pero bajo ciertas circustancias es posible que un atacante lance ataques de creación de script de sitio cruzado o de inyección de <a
href="http://www.dragonjar.org/tag/sql" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con SQL">SQL</a>, los cuales también se utilizan para corregir o transformar datos.</p><p><strong>Lenguajes Afectados</strong></p><p>El lenguaje más afectado es C/C++. Un ataque exitoso quizá conduzca de manera inmediata a la ejecución de código arbitrario y a revelación de información. Por lo general otros lenguajes no permiten la ejecución de código arbitario, pero, como ya se observó, son proporcionados por entrada del usuario, pero podría serlo si las cadenas de formato se leen a partir de datos manipulados.</p><p><strong>Explicación del problema de cadena de formato</strong></p><p>El formateo de datos para despliegue o almacenamiento tal vez represente una tarea un poco difícil; por tanto, en muchos lenguajes de computadora se incluyen rutinas para reformatear datos con facilidad. En casi todos los lenguajes la información de formato se describe a través de un tipo de cadena, denominada cadena de formato. En realidad, la cadena de formato se define con el uso de lenguaje de procesamiento de datos limitado que está diseñado para facilitar la descripción de formatos de salida. Sin embargo, muchos desarrolladores cometen un sencillo error: utilizan datos de usuarios no confiables como cadena de formato; el resultado es que los atacantes pueden escribir cadenas en el lenguaje de procesamiento de datos para causar muchos problemas.</p><p>El diseño de C/C++ hace que esto sea especialmente peligroso: dificulta la detección de problemas de cadena de formato, y entre las cadenas de formato se incluyen algunos comandos muy peligrosos (en particular %n) que no existen en lenguajes de cadena de formato de algunos otros lenguajes.</p><p>En C/C++ puede declararse una función para que tome un número de variable de argumentos al especificar puntos suspensivos (…) como el último (o único) argumento. El problema es que la función a la que se llama no tiene manera de saber cuántos argumentos se están pasando. El conjunto más común de funciones que toman argumentos de longitud variable es la familia de printf: printf, sprintf, snprintf, vprintf, etc. Las extensas funciones de carácter que realizan la misma función tienen el mismo problema. Veamos un ejemplo:</p><p><em>#include &lt;studio.h&gt;<br
/> int main (int argc, char* argv[])<br
/> {<br
/> if (argc &gt; 1)<br
/> printf(argv[1]);<br
/> return 0;<br
/> }</em></p><p>Algo muy sencillo. Ahora veamos lo que está mal. El programador está esperando que el usuario introduzca algo benigno como <em>Hola mundo</em>. Si lo intenta, obtendrá <em>Hola mundo</em>. Ahora cambiemos un poco la entrada: pruebe <em>%x %x</em>. En un sistema Windows XP con la línea de comandos predeterminada (cmd. exe) , ahora obtendrá lo siguiente:</p><p><em>E:\proyectos\<a
href="http://www.dragonjar.org/tag/programacion" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Programación">programación</a>_<a
href="http://www.dragonjar.org/tag/segura" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Segura">segura</a>\format_bug&gt;format_bug.exe “%x %x”<br
/> 12ffc0 4011e5</em></p><p>Observe que si está ejecutando un sistema operativo diferente o utilizando un interprete de línea de comandos diferente, tal vez necesite realizar algunos cambios para alimentar esta cadena exacta en su programa, y es posible que los resultados sean diferentes. Para facilitar su uso podría colocar los argumentos en una línea de comandos de shell o en un archivo de procesamiento por lotes.</p><p>¿Qúe sucedió? La función de printf tomó una cadena de entrada que hizo que esperara a que se colocaran dos argumentos en la pila antes de llamar a la función. Los especificadores <em>%x</em> le permiten leer la pila, de cuatro en cuatro bytes, hasta donde se desee. No es difícil imaginar que si tuviera una función más compleja que almacenara un secreto en una variable de pila, el atacante tendría la posibilidad de leerlo. Aquí la salida es la dirección de la ubicación de la pila <em>(0×12ffc0)</em>, seguida de la ubicación del código en que se devolverá la función <em>main()</em> . Como se imagina, ambas son piezas de información muy importantes que se filtran al atacante.</p><p>Tal vez ahora se esté preguntando cómo utiliza el atacante un error de cadena de formato para escribir en la memoria. Uno de los especificadores de formato menos utilizados es <em>%n</em>, que escribe el número de caracteres que deben haberse escrito hasta el momento en la dirección de la variable que proporcionó como argumento correspondiente. He aquí cómo debe utilizarse:</p><p><em>unsigned int bytes;<br
/> printf (”%s%n\n”, argv[1], &amp;bytes);<br
/> printf (su entrada fue de %d caracteres de largo\n, bytes”);</em></p><p>La salida sería:</p><p><em>E:\proyectos\programacion_segura\format_buf&gt;format_bug2.exe “alguna salida aleatoria”<br
/> Alguna entrada aleatoria<br
/> Su entrada fue 17 caracteres de largo</em></p><p>En una plataforma con enteros de cuatro bytes el especificador<em> %n</em> escribirá cuatro bytes a la vez, y <em>%hn </em>escribirá dos bytes. Ahora los atacantes sólo tienen que imaginar cómo obtener la dirección que desean en la posición apropiada de la pila y ajustar los especificadores de ancho de campo hasta que el número de bytes escrito sea el que desean.</p><p><strong>C/C++</strong></p><p>A diferencia de muchos otros errores que examinaremos, éste es basatante fácil de localizar como defecto de código. Es muy sencillo:</p><p><em>printf (entrada_usuario);</em><br
/> Es incorrecto, y</p><p><em>printf (”%s”, entrada_usuario);</em><br
/> Es correcto .</p><p><strong>Localización de problemas de cadena de formato</strong></p><p>Cualquier aplicación que tome entrada del usuario y la pase a una función de formateo está en riesgo. Un ejemplo muy frecuente de este problema sucede junto con aplicaciones que registran la entrada de usuario. Además, algunas funciones tal vez implanten formateo de manera interna.<br
/> En C/C++ busque funciones de la familia printf. Entre los problemas que habrá de localizar se encuentran los siguientes:</p><p><em>printf (entrada_usuario) ;<br
/> fprintf (STDOUT, entrada_usuario);</em></p><p>Si se encuentra con una  función con el siguiente aspecto:</p><p><em>fprintf (STDOUT, msg_format, arg1, arg2);</em></p><p>necesitará verificar dónde se almacena la cadena a la que hace referencia msg_formato y si está bien protegida.<br
/> Hay muchas otras llamadas de sistema y <a
href="http://es.wikipedia.org/wiki/Application_Programming_Interface" target="_blank">API</a> que también son vulnerables, syslog es una de ellas. Cuando vea una definición de función que incluya <em>… </em>en la lista de argumentos, esta viendo algo que posiblemente represente un problema.<br
/> Muchos escáneres de código fuente, aun los de léxico como <a
href="http://www.fortifysoftware.com/security-resources/rats.jsp" target="_blank">RATS</a> y <a
href="http://www.dwheeler.com/flawfinder/" target="_blank">Flawfinder</a>, detectan esto. Incluso <a
href="http://www.mirrors.au.wiretapped.net/security/development/auditing/pscan/test.c" target="_blank">PSCAN</a> se diseñó de manera especifica con este propósito.<br
/> Además, existen herramientas de respuesta que se integran en el proceso de compilación; por ejemplo <a
href="http://citeseer.ist.psu.edu/cowan01formatguard.html" target="_blank">FormatGuard</a> de Crispin Cowan.</p><p><strong>Técnicas de prueba para encontrar el problema de cadena de formato</strong></p><p>Pase especificadores de formateo a la aplicación y vea si se regresan valores hexadecimales. Por ejemplo, si tiene una aplicación que espera un nombre de archivo y regresa un mensaje de error que contiene la entrada cuando no se encuentra el archivo, entonces trate de proporcionarle nombres de archivo como <em>NoProbable%x%x.txt</em>. Si obtiene un mensaje de error parecido a las siguientes líneas “<em>NoProbable12fd234104587</em>“, acaba de encontrar una <a
href="http://www.dragonjar.org/tag/vulnerabilidad" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Vulnerabilidad">vulnerabilidad</a> de cadena de formato.</p><p><strong>Ejemplos de Problemas de Cadena de Formato </strong></p><p>Entradas en la lista Common Vulnerabilities and Exposures, CVE.</p><p><a
href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2000-0573" target="_blank">CVE-2000-0573</a><br
/> <a
href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2000-0844" target="_blank"> CVE-2000-0844</a></p><p><strong>Métodos de prevención</strong></p><p>El primer paso es nunca pasar entradas de usuario directamente a un función de formateo, además de asegurarse de hacerlo en cada nivel de manipulación de salida formateada. Como nota adicional, las funciones de formateo tienen una sobrecarga de <a
href="http://www.dragonjar.org/tag/trabajo" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Trabajo">trabajo</a> importante. Si está interesado, busque <em>_output</em> en el archivo fuente, tal vez sea conveniente escribir:</p><p><em>fprintf (STDOUT, buf);</em></p><p>la anterior línea de código no es sólo peligrosa, sino que también consume muchos ciclos de CPU adicionales.</p><p>El segundo paso que habrá de darse consiste en asegurar que las cadenas de formato que utiliza su aplicación se lean desde lugares confiables, y que las rutas a las cadenas no sean controladas por el atacante.</p><p><strong>Medidas defensivas adicionales</strong></p><p>Verifique y limite la ubicación a valores válidos. No utilice la familia de funciones printf, si puede evitarlas. Por ejemplo, si está empleando C++, use operadores de flujo:</p><p><em>#include &lt;iostream&gt;<br
/> //…<br
/> std::cout &lt;&lt;entrada_usuario<br
/> //…</em></p><p><strong>Resumen</strong></p><ul><li>Utilice cadenas de formato fijas o cadenas de formato provenientes de una fuente confiable.</li><li>Compruebe y limite los requerimientos del lugar a valores válidos.</li><li>No pase entrada de usuario directamente como la cadena de formato a funciones de formateo.</li><li>Tome en cuenta el uso de lenguajes de más alto nivel que tiendan a ser menos vulnerables a este problema.</li></ul><h3  class="related_post_title">También puede interesarte...</h3><ul
class="related_post"><li><a
href="http://www.dragonjar.org/programacion-segura-desbordamientos-del-bufer.xhtml" title="Programación Segura: Desbordamientos del Búfer ">Programación Segura: Desbordamientos del Búfer </a></li><li><a
href="http://www.dragonjar.org/los-peores-passwords-en-espanol.xhtml" title="Las peores Contraseñas en Español">Las peores Contraseñas en Español</a></li><li><a
href="http://www.dragonjar.org/malas-contrasenas-para-utilizar.xhtml" title="Las Peores 500 Contraseñas de Todos los Tiempos">Las Peores 500 Contraseñas de Todos los Tiempos</a></li><li><a
href="http://www.dragonjar.org/biohacking-una-nueva-era-de-desarrollo-o-de-terror.xhtml" title="BioHacking – ¿Una nueva era de desarrollo? o ¿de terror?">BioHacking – ¿Una nueva era de desarrollo? o ¿de terror?</a></li><li><a
href="http://www.dragonjar.org/busquedas-cifradas-en-google.xhtml" title="Tus busquedas en Google ahora Cifradas">Tus busquedas en Google ahora Cifradas</a></li><li><a
href="http://www.dragonjar.org/rompen-sistema-criptografia-cuantica.xhtml" title="Rompen el primer sistema de criptografía cuántica">Rompen el primer sistema de criptografía cuántica</a></li><li><a
href="http://www.dragonjar.org/curso-de-python-dictado-por-google.xhtml" title="Curso de Python dictado por Google">Curso de Python dictado por Google</a></li><li><a
href="http://www.dragonjar.org/curso-gratis-desarrollo-seguro-aplicaciones-web-google.xhtml" title="Curso sobre desarrollo seguro de aplicaciones web por Google">Curso sobre desarrollo seguro de aplicaciones web por Google</a></li></ul>]]></content:encoded> <wfw:commentRss>http://www.dragonjar.org/programacion-segura-problemas-de-cadena-de-formato.xhtml/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Programación Segura: Desbordamientos del Búfer</title><link>http://www.dragonjar.org/programacion-segura-desbordamientos-del-bufer.xhtml</link> <comments>http://www.dragonjar.org/programacion-segura-desbordamientos-del-bufer.xhtml#comments</comments> <pubDate>Mon, 12 Nov 2007 06:20:30 +0000</pubDate> <dc:creator>DragoN</dc:creator> <category><![CDATA[Artículos sobre seguridad]]></category> <category><![CDATA[Búfer]]></category> <category><![CDATA[Desbordamiento]]></category> <category><![CDATA[Programación]]></category> <category><![CDATA[Segura]]></category><guid
isPermaLink="false">http://www.dragonjar.org/?p=743</guid> <description><![CDATA[Revisión General del Desbordamiento del Búfer Durante mucho tiempo se ha reconocido que los desbordamientos del Búfer son un problema en lenguajes de bajo nivel. La esencia del problema es que los datos de usuario y la información de control de flujo del programa se mezclan en beneficio del desempeño, y los lenguajes de bajo [...]]]></description> <content:encoded><![CDATA[<p><strong>Revisión General del <a
href="http://www.dragonjar.org/tag/desbordamiento" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Desbordamiento">Desbordamiento</a> del Búfer</strong></p><p>Durante mucho tiempo se ha reconocido que los <a
href="http://es.wikipedia.org/wiki/Buffer_overflow" target="_blank">desbordamientos del Búfer</a> son un problema en lenguajes de bajo nivel. La esencia del problema es que los datos de usuario y la información de control de flujo del programa se mezclan en beneficio del desempeño, y los lenguajes de bajo nivel permiten acceso directo a la memoria de aplicación. <a
href="http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_C" target="_blank">C</a> y <a
href="http://es.wikipedia.org/wiki/C%2B%2B" target="_blank">C++</a> son los dos lenguajes más populares afectados por los desbordamientos del Búfer.<span
id="more-743"></span></p><p>En sentido estricto, ocurren desbordamiento del Búfer cuando un programa permite la entrada de escritura más allá del final del Búfer asigando, pero hay varios problemas asociados que a menudo tienen el mismo efecto; uno de los más interesantes consiste en los errores de cadena de <a
href="http://www.dragonjar.org/tag/formato" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Formato">formato</a>, que se analizarán en “Problemas de cadena de <a
href="http://www.dragonjar.org/tag/formato" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Formato">formato</a>” . Otra personificación del problema ocurre cuando se permite que un atacante escriba en una ubicación arbitraria de memoria fuera de una matriz en la aplicación, y aunque no se trata, de manera estricta, de un desbordamiento clásico del Búfer, también lo estudiaremos aquí.</p><p>El efecto de un desbordamiento del Búfer es amplio, desde la caída del sistema hasta la apropiación completa del control de la aplicación por parte del atacante, y si la aplicación se ejecuta como usuario de alto nivel (raíz, administrador o sistema local), entonces el atacante entre sus manos el control de todo el sistema operativo y de todos los usuarios que hayan iniciado sesión o la iniciarán en el futuro. Si la aplicación en cuestión es un <a
href="http://www.dragonjar.org/tag/servicio" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Servicio">servicio</a> de red, el resultado del error podría ser un gusano. El primer gusano bien conocido de Internet aprovechó un desbordamiento del servidor finger, y fue conocido como <a
href="http://es.wikipedia.org/wiki/Gusano_Morris" target="_blank">gusano finger de Robert T. Morris</a> ( o sólo Morris). Aunque al parecer hemos aprendido a evitar desbordamientos del Búfer desde que uno casi colapsó Internet en 1998, aun vemos con frecuencia informes desbordamientos del Búfer en muchos tipos de software.</p><p>Aunque podría pensarse que sólo programadores perezosos y descuidados serían víctimas de los desbordamientos del Búfer, el problema es complejo; muchas de las soluciones no son simples y cualquier persona que el escrito suficiente código C/C++ ha cometido, casi sin lugar a dudas, este error.</p><p><strong>Lenguajes afectados</strong></p><p>C el lenguaje que se usa con más frecuencia para crear desbordamientos del Búfer, seguido de cerca por C++. Es fácil crear desbordamientos del búfer cuando se escribe en <a
href="http://es.wikipedia.org/wiki/Ensamblador" target="_blank">ensamblador</a>, porque no cuenta con ningún tipo de protección. Aunque inherentemente C++ es tan peligroso como C porque se trata de un superconjunto de éste, el uso cuidadoso de la <a
href="http://es.wikipedia.org/wiki/C++#Biblioteca_Est.C3.A1ndar_de_Plantillas_.28STL.29" target="_blank">Biblioteca Estándar de Plantillas</a> (STL, Standar Template Library) llega a reducir gran medida la posibilidad de manejar erróneamente las cadenas. El aumento en el rigor del compilador de C++ ayudará al <a
href="http://www.dragonjar.org/tag/programador" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Programador">programador</a> a evitar algunos errores. nuestro consejo es que aunque esté escribiendo código C puro, el uso del compilador de C++ dará como resultado un código más limpio.</p><p>Los lenguajes de más alto nivel inventados en fecha reciente abstraen del programador el acceso directo a la memoria, por lo general con un coste importante para el desempeño. Lenguajes como <a
href="http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Java" target="_blank">Java</a>, <a
href="http://es.wikipedia.org/wiki/C_Sostenido" target="_blank">C#</a> y <a
href="http://es.wikipedia.org/wiki/Visual_Basic" target="_blank">Visual Basic</a> tienen tipos de cadenas nativos, matrices de límites verificados y, por lo general, prohiben el acceso directo a la memoria. Aunque algunos dirían que esto hace que los desbordamientos del Búfer sean imposibles, es más preciso decir que son menos probables. En realidad, casi todos estos lenguajes se implementan en C/C++, y es posible que las fallas en la implementación produzcan desbordamientos del Búfer. Otra fuente posible de desbordamientos del Búfer en código de más alto nivel se debe a que el código hace interfaz en última instancia con un sistema operativo, ya que éste se encuentra escrito casi con toda seguridad en C/C++. C# le permite trabajar sin red al declarar secciones inseguras; sin embargo, aunque proporciona una interoperabilidad más fácil con el sistema operativo y bibliotecas escritas en C/C++, tal vez cometa los mismos errores que en C/C++. En caso de que programen primordialmente en lenguajes del más alto nivel, la principal acción que deberá realizar es seguir validando los datos pasados a bibliotecas externas, o puede actuar como conducto para sus errores.</p><p>Aunque vamos a proporcionar una lista de lenguajes afectados, casi todos los lenguajes más antiguos son vulnerables a desbordamientos del Búfer.</p><p> <strong>Explicación del desbordamiento del Búfer.</strong></p><p>A la personificación clásica de un desbordamiento del Búfer se le conoce como “rompimiento de la pila”. En un programa compilado la pila se utiliza para contener la información de control, como argumentos, a la que debe regresar la aplicación una vez que haya terminado con la función y, debido a la pequeña cantidad de registros disponibles en procesadores <a
href="http://es.wikipedia.org/wiki/X86" target="_blank">X86</a>, muy a menudo los registros se almacenan de manera temporal en la pila. Por desgracia, las <a
href="http://www.dragonjar.org/tag/variables" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con variables">variables</a> que se asigna de manera local también se almacenan en la pila. Algunas veces a estas <a
href="http://www.dragonjar.org/tag/variables" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con variables">variables</a> de pila se les identifica en forma imprecisa como si se les asigna de manera estática, en oposición a la asignación de memoria dinámica. Si escucha a alguien hablar sobre un desbordamiento del Búfer estático, lo que en realidad quiere decir es desbordamiento del Búfer de pila. la raíz del problema es que si la aplicación escribe más allá de los límites de una matriz asignada la pila, el atacante tiene la posibilidad de especificar información de control. Y esto es crítico para lograr su objetivo; el atacante busca la modificación de la información de control por valores que el controla.</p><p>Uno se preguntaría por qué seguir utilizando un sistema tan evidentemente peligroso. Tenemos una oportunidad de evitar el problema, cuando menos en parte, con la migración al chip Itanium de 64 bits de Intel, donde las direcciones de regreso se almacenan en un registro. El problema es que hemos tenido que tolerar una pérdida de compatibilidad importante con versiones anteriores; al momento de escribir esto, es posible que el chip <a
href="http://es.wikipedia.org/wiki/Arquitectura_Intel_Itanium" target="_blank">X64</a> termine convirtiéndose en el chip más popular.</p><p>Tal vez también se esté preguntando por qué no todos miramos a un código que realice verificación de matriz estricta y desactive el acceso directo a la memoria. El problema es que, en muchos tipos de aplicaciones, las características de desempeño de lenguajes de más alto nivel no son adecuadas. Una solución intermedia consiste en utilizar lenguajes de más alto nivel para las interfases de alto nivel que interactúan con elementos peligrosos (¡como los usuarios! ), y lenguajes de más bajo nivel para el código principa. Otra solución es utilizar plenamente las opciones que ofrece C++ y y emplear bibliotecas de cadena y clases de colección. Por ejemplo, el servidor <a
href="http://www.dragonjar.org/tag/web" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Web">web</a> <a
href="http://es.wikipedia.org/wiki/Internet_Information_Services" target="_blank">Internet Information Server</a> (IIS) 6.0 cambió por completo una clase de cadena C++ para manejo de entrada, y un desarrollador valiente afirmó que se amputaría su dedo meñique si encontraba algún desbordamiento del Búfer en su código. Al momento de escribir esto, el desarrollado aún tenía su dedo y no se habían publicado boletines de seguridad contra el servidor web en los casi dos años desde su lanzamiento. Los compiladores modernos se relacionan de manera adecuada en clases de plantillas, y es posible escribir código C++ de muy elevado desempeño.</p><p><strong>C/C++</strong><br
/> Hay demasiadas maneras de desbordar un búfer en C/C++. He aquí lo que causó el gusano finger de Morris:</p><p><em>char buf [20];<br
/> gets (buf);</em></p><p>No hay manera de utilizar gets para leer entrada desde stdin sin arriesgarse a un sobreflujo de búfer (es mejor utilizar fgets). Quizás la segunda manera más popular de desbordar bufers es mediante el uso de strcpy. A continuación se muestra otra forma de causar problemas:</p><p><em>char buf [20];<br
/> char prefix [] = “http://”;<br
/> strcpy (buf, prefix);<br
/> strncat (buf, path, sizeof (buf));</em></p><p>¿Qué fue lo que estuvo mal? El problema aquí es que strncar tiene una interfaz diseñada de manera deficiente. La función busca el número de caracteres del búfer disponible, o espacio restante, no el tamaño total del búfer de destino. He aquí otra manera predilecta de causar sobreflujos:</p><p><em>char buf [MAX_PATH];<br
/> sprintf(buf, “%s &#8211; %d\n”, path, errno);</em></p><p>Resulta casi imposible, excepto en unos cuantos casos de esquina, utilizar sprintf de manera <a
href="http://www.dragonjar.org/tag/segura" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Segura">segura</a>. Se publicó un boletín de seguridad crítico para <a
href="http://www.dragonjar.org/tag/microsoft" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Microsoft">Microsoft</a> Windows debido a que se empleó sprintf en una función de inicio de sesión de depuración. Consulte el boletín MS04-011 para conocer más información.<br
/> He aquí otro favorito:</p><p><em>char buf [32];<br
/> strncpy (buf, data, strlen(data));</em></p><p>¿Qué estuvo mal aquí? El último argumento es la longitud del búfer entrante, ¡no el tamaño del búfer de destino!</p><p>Otra manera de causar problemas es confundir el conteo de caracteres con el de bytes. Si está trabajando con caracteres ASCII, son iguales, pero si lo hace con Unicode, hay dos bytes por cada caracter. He aquí un ejemplo:</p><p><em>_snwprintf(wbuf, sizeof(wbuf), “%s\n”, entrada);</em></p><p>El siguiente desbordamiento es un poco más interesante:</p><p><em>bool CopyStructs(InputFile* pInfile, unsigned long count)<br
/> {<br
/> unsigned long i;<br
/> m_pStructs = new Structs [count];<br
/> for(i = 0; i &lt;count; i++)<br
/> {<br
/> if(!ReadFronFile(pInFile, &amp;(m_pStructs[i])))<br
/> break;<br
/> }<br
/> }</em></p><p>¿Cómo puede fallar esto?  Tome en cuenta que cuando llama el operador new[] de C++, es similar al siguiente código:<br
/> <em> ptr = malloc (sizeof(type)) * count);</em></p><p>Si el usuario suministra count, es difícil especificar un valor que desborde la operación de multiplicación de manera interna. Debido a esto, asiganará un búfer mucho más pequeño de lo que necesita, con lo que el atacante podrá escribir sobre su búfer. El compilador de C++ de Microsoft Visual Studio 2005 contiene una comprobación interna para evitar este problema. El mismo problema llega a ocurrir de manera interna en muchas implementaciones de calloc, que realizan la misma operación. Éste es el meollo de muchos errore de sobreflujo de enteros: no es el sobreflujo de enteros lo que causa el problema de seguridad, sino que el desbordamiento del búfer que se origina con rapidez es el causante de los dolores de cabeza.</p><p><strong>Localización del patrón del desbordamiento del Búfer</strong></p><ul><li>Entrada, si se lee de la red, un archivo o la línea de comandos</li></ul><ul><li>Transferencia de datos de la entrada mencionada a estructuras internas</li></ul><ul><li>Uso de llamadas inseguras a manejo de cadeas</li></ul><ul><li>Uso de aritmética para calcular un tamaño de asignación o el tamaño del búfer restante</li></ul><p><strong>Ejemplos de desbordamiento del Búfer</strong></p><p>Las siguientes entradas, que se obtuvieron directamente del la lista <a
href="http://cve.mitre.org/" target="_blank">Common Vulnerabilities and Exposures</a> (<a
href="http://www.dragonjar.org/tag/vulnerabilidades" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con Vulnerabilidades">Vulnerabilidades</a> y exposiciones comunes), o CVE, son ejemplos de desbordamientos del búfer.</p><p><a
href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-1999-0042" target="_blank">CVE-1999-0042</a><br
/> <a
href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2000-0389" target="_blank"> CVE-2000-0389-CVE-2000-0392</a><br
/> <a
href="http://nvd.nist.gov/nvd.cfm?cvename=CVE-2002-0842" target="_blank"> CVE-2002-0842</a>, <a
href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-0095" target="_blank">CVE-2003-0095</a>, <a
href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0096" target="_blank">CAN-2003-0096</a><br
/> <a
href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0352" target="_blank"> CAN-2003-0352</a></p><p><strong>Metodos de prevención</strong></p><p>El camino a la prevención de los debordamientos del búfer es largo y está lleno de obstáculos. Analizaremos una amplia varidad de técnicas que le ayudarán a evitar desbordamientos del búfer y varias otras para reducir el daño que llegan a causar dichos desbordamientos.</p><ul><li>Reemplace funciones peligrosas de manejo de cadenas</li></ul><ul><li> Deberá, por lo menos, reemplazar funciones inseguras como strcpy, strcat con las versiones validas de cada una de estas funciones. Tiene varias opciones a su disposicón para reemplazarlas. Tenga en mente que las funciones válidas más antiguas tienen problemas de interfaz, y en muchos casos se le csolicitará que realice operaciones aritméticas para determinar parámetros.</li></ul><p><strong>Audite asignaciones</strong><br
/> Otra fuente de desbordamientos del búfer proviene de errores aritméticos.</p><p><strong>Verifique bucles y accesos a matrices</strong><br
/> Una tercera manera en que se originan desbordamientos del búfer es cuando no se verifica adecuadamente la terminación en bucles ni los límites de matriz antes de escribir el acceso. Se trata de una de las áreas más dificiles, y encontrará que, en algunos casos, el problema y su solución están en módulos por completo diferentes.</p><p><strong>Reemplace bufers de cadena de C con cadenas de C++</strong><br
/> Esto es más eficaz que sólo reeplazar las llamadas de C habituales, pero es posible que cause gran cantidad de cambios en código existente, en particular si el código no está ya compilado como C++.</p><p><strong>Reemplace matrices estáticas con contenedores de STL</strong><br
/> Todos los probelmas mencionados se aplican a contenedores de STL como vector, pero un problema adicional es que no todas las implementaciones de la contrucción <a
href="http://msdn2.microsoft.com/en-us/library/3xyxtaft%28VS.80%29.aspx" target="_blank">vector::iterator</a> verifican el acceso fuera del límite.</p><p><strong>Utilice herramiemtas de análisis</strong><br
/> En el mercado están disponibles algunas buenas herramientas que analizan el código de C/C++ en busca de defectos de seguridad; entre los ejemplos se encuentran <a
href="http://www.coverity.com/" target="_blank">Coverty</a>, <a
href="http://www.microsoft.com/whdc/devtools/tools/PREfast.mspx" target="_blank">PREfast</a> y <a
href="http://www.klocwork.com/" target="_blank">Klocwork</a>.</p><p><strong>Medidas defensivas adicionales</strong><br
/> <strong> Protección de pila</strong><br
/> La protección de pila fué incluida por primera vez por Crispin Cowan en su producto <a
href="http://en.wikipedia.org/wiki/Stack-smashing_protection" target="_blank">Stackguard</a> y fue implementada de manera independiente por Microsoft como conmutador del compilador /GS. En su forma más básica, la protección de pila coloca un valor conocido como canary en la pila entre las variables locales y la dirección de regreso.</p><p><strong>Pila y heap no ejecutables</strong><br
/> Esta medida ofrece protección importante contra un atacnate, pero tal vez tenga impacto considerable en la compatibilidad de la apliación. Algunas aplicaciones compilan y ejecutan de manera legítima código al vuelo, como es el caso de muchas aplicaciones escritas en <a
href="http://www.dragonjar.org/tag/java" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con JAVA">Java</a> y C#. Además, es importante obervar que si el atacante puede causar que su aplicación sea presa de un regreso en un ataque de libc, donde se realiza un llamada legítima a función para finales dañinos, entonces puede eliminarse la protección de ejecución en la página de memoria.</p><p><strong>Resumen</strong></p><ul><li>Verifique con mucho cuidado sus accesos al búfer a través de funciones de manejo de cadena y búfer seguras.</li></ul><ul><li> Utilice defensas basadas en el compilador, como /GS y ProPolice.</li></ul><ul><li> Utilice defensas contra el desbordamiento del búfer para el sistema operativo, como DEP y PaX.</li></ul><ul><li> Determine cuáles son los datos que el atacante controla y administre esos datos de manera segura en su código.</li></ul><ul><li> No suponga que las defensas del compilador y el sistema operativos son suficientes; no lo son; sólo se trata de defensas adicionales.</li></ul><ul><li> No cree nuevo código que utilice funciones inseguras.</li></ul><ul><li> Tome en cuenta la actualización de su compilador C/C++, por que los autores del compilador agregan más defensa al código generado.</li></ul><ul><li> Tome en cuenta la eliminación de funciones inseguras de código antiguo con el tiempo.</li></ul><ul><li> Tome en cuenta el empleo de clases de cadena y contenedor de C++ en lugar de las funciones de cadena de C de más bajo nivel.</li></ul><h3  class="related_post_title">También puede interesarte...</h3><ul
class="related_post"><li><a
href="http://www.dragonjar.org/programacion-segura-problemas-de-cadena-de-formato.xhtml" title="Programación Segura: Problemas de cadena de formato ">Programación Segura: Problemas de cadena de formato </a></li><li><a
href="http://www.dragonjar.org/los-peores-passwords-en-espanol.xhtml" title="Las peores Contraseñas en Español">Las peores Contraseñas en Español</a></li><li><a
href="http://www.dragonjar.org/malas-contrasenas-para-utilizar.xhtml" title="Las Peores 500 Contraseñas de Todos los Tiempos">Las Peores 500 Contraseñas de Todos los Tiempos</a></li><li><a
href="http://www.dragonjar.org/busquedas-cifradas-en-google.xhtml" title="Tus busquedas en Google ahora Cifradas">Tus busquedas en Google ahora Cifradas</a></li><li><a
href="http://www.dragonjar.org/rompen-sistema-criptografia-cuantica.xhtml" title="Rompen el primer sistema de criptografía cuántica">Rompen el primer sistema de criptografía cuántica</a></li><li><a
href="http://www.dragonjar.org/curso-de-python-dictado-por-google.xhtml" title="Curso de Python dictado por Google">Curso de Python dictado por Google</a></li><li><a
href="http://www.dragonjar.org/curso-gratis-desarrollo-seguro-aplicaciones-web-google.xhtml" title="Curso sobre desarrollo seguro de aplicaciones web por Google">Curso sobre desarrollo seguro de aplicaciones web por Google</a></li><li><a
href="http://www.dragonjar.org/bits-y-qubits-camino-de-la-criptografia-partei.xhtml" title="Bits y Qubits, El camino de la criptografía &#8211; Parte I">Bits y Qubits, El camino de la criptografía &#8211; Parte I</a></li></ul>]]></content:encoded> <wfw:commentRss>http://www.dragonjar.org/programacion-segura-desbordamientos-del-bufer.xhtml/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Código fuente para Sistemas de Matriculas, Ventas, Biblioteca, Odontología, Administración de Autos en .NET</title><link>http://www.dragonjar.org/codigo-fuente-para-sistemas-de-matriculas-ventas-biblioteca-odontologia-administracion-de-autos-en-net.xhtml</link> <comments>http://www.dragonjar.org/codigo-fuente-para-sistemas-de-matriculas-ventas-biblioteca-odontologia-administracion-de-autos-en-net.xhtml#comments</comments> <pubDate>Mon, 01 Oct 2007 14:48:36 +0000</pubDate> <dc:creator>DragoN</dc:creator> <category><![CDATA[General]]></category> <category><![CDATA[.NET]]></category> <category><![CDATA[Microsoft]]></category> <category><![CDATA[Programación]]></category> <category><![CDATA[SQL]]></category> <category><![CDATA[VisualBasic]]></category><guid
isPermaLink="false">http://www.dragonjar.org/?p=157</guid> <description><![CDATA[Aquí les dejo Varios Códigos fuente escritos en .NET para crear un Sistema de Matriculas (VB.NET y SQLServer), Sistema Ventas, Sistema Biblioteca, Sistema Odontología, Sistema Administración de Autos. Sistema en .NET Sistema de Matriculas Sistema de ventas Sistema de Biblioteca Sistema de Odontología Sistema de Administración de Autos DB También puede interesarte...cursos de programacion gratuitos [...]]]></description> <content:encoded><![CDATA[<p>Aquí les dejo Varios Códigos fuente escritos en <a
href="http://www.dragonjar.org/tag/net" class="st_tag internal_tag" rel="tag" title="Entradas etiquetadas con .NET">.NET</a> para crear un Sistema de Matriculas (VB.NET y SQLServer), Sistema Ventas, Sistema Biblioteca, Sistema Odontología, Sistema Administración de Autos.</p><p
style="text-align: center;"><img
src="http://img223.imageshack.us/img223/3176/dotnetlogoju8.jpg" border="0" alt="dotnetlogoju8 Código fuente para Sistemas de Matriculas, Ventas, Biblioteca, Odontología, Administración de Autos en .NET "  title="Código fuente para Sistemas de Matriculas, Ventas, Biblioteca, Odontología, Administración de Autos en .NET " /></p><p><span
style="text-decoration: underline;"><strong>Sistema en .NET</strong></span><br
/> <a
href="http://anonym-url.com/go.php?to=http://www.4shared.com/file/68133093/72f829fd/Sistema_Matriculas.html" target="_blank">Sistema de Matriculas</a><br
/> <a
href="http://anonym-url.com/go.php?to=http://www.4shared.com/file/68132639/d4f333be/Sistema_de_Ventas.html" target="_blank">Sistema de ventas</a><br
/> <a
href="http://anonym-url.com/go.php?to=http://www.4shared.com/file/68131874/d60508e3/Sistema_de_Biblioteca.html" target="_blank">Sistema de Biblioteca</a><br
/> <a
href="http://anonym-url.com/go.php?to=http://www.4shared.com/file/29143292/9666145b/CAETCOS.html" target="_blank">Sistema de Odontología</a><br
/> <a
href="http://anonym-url.com/go.php?to=http://www.4shared.com/file/29092487/70eadd56/Sistema_SudamericaCAR.html" target="_blank">Sistema de Administración de Autos</a></p><p><span
style="text-decoration: underline;"><strong>DB</strong></span><br
/><script type="text/javascript"><!--
google_ad_client = "ca-pub-5474472965666825";
/* Bloque - .NET */
google_ad_slot = "1145683757";
google_ad_width = 200;
google_ad_height = 90;
//-->
</script><br
/><script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p><h3  class="related_post_title">También puede interesarte...</h3><ul
class="related_post"><li><a
href="http://www.dragonjar.org/cursos-gratuitos-de-programacion-sena-virtual.xhtml" title="cursos de programacion gratuitos en el sena virtual">cursos de programacion gratuitos en el sena virtual</a></li><li><a
href="http://www.dragonjar.org/codigo-fuente-herramienta-para-sql-injection.xhtml" title="Código Fuente Herramienta para SQL Injection  ">Código Fuente Herramienta para SQL Injection </a></li><li><a
href="http://www.dragonjar.org/foca-herramienta-para-analisis-meta-datos.xhtml" title="FOCA &#8211; Herramienta para análisis de Meta Datos">FOCA &#8211; Herramienta para análisis de Meta Datos</a></li><li><a
href="http://www.dragonjar.org/sacale-el-jugo-a-tu-conexion-de-telmex-claro-embratel-o-net.xhtml" title="Sacale el jugo a tu conexión de Telmex, Claro, Embratel o NET">Sacale el jugo a tu conexión de Telmex, Claro, Embratel o NET</a></li><li><a
href="http://www.dragonjar.org/como-funcionan-y-se-crackean-las-claves-en-sistemas-windows.xhtml" title="Cómo funcionan y se crackean las claves en sistemas Windows">Cómo funcionan y se crackean las claves en sistemas Windows</a></li><li><a
href="http://www.dragonjar.org/dilemas-de-la-seguridad-en-el-desarrollo-de-software.xhtml" title="Dilemas de la seguridad en el desarrollo de software">Dilemas de la seguridad en el desarrollo de software</a></li><li><a
href="http://www.dragonjar.org/presentacion-conceptos-basicos-seguridad-web.xhtml" title="Presentación de conceptos básicos en Seguridad Web">Presentación de conceptos básicos en Seguridad Web</a></li><li><a
href="http://www.dragonjar.org/actualiza-tu-software-con-secunia-personal-software-inspector.xhtml" title="Actualiza tu software con Secunia Personal Software Inspector ">Actualiza tu software con Secunia Personal Software Inspector </a></li></ul>]]></content:encoded> <wfw:commentRss>http://www.dragonjar.org/codigo-fuente-para-sistemas-de-matriculas-ventas-biblioteca-odontologia-administracion-de-autos-en-net.xhtml/feed</wfw:commentRss> <slash:comments>194</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 27/178 queries in 0.171 seconds using disk: basic
Object Caching 6395/6645 objects using disk: basic

Served from: www.dragonjar.org @ 2012-02-12 00:20:51 -->
