<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-18436156</id><updated>2011-12-12T21:42:50.970-03:00</updated><category term='android'/><category term='webkit'/><category term='infiltrate'/><category term='heap'/><category term='qemu linux kernel compiling minimal config .config'/><category term='exploitation'/><category term='immunity'/><category term='exploit'/><category term='safari'/><category term='chrome'/><title type='text'>gruba</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gruba.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gruba.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Agustin Gianni</name><uri>http://www.blogger.com/profile/17057194027467179355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_arUzxClxEGE/Snyv-MNdXxI/AAAAAAAAJko/pgfO_CnLIL0/S220/DSC05017.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-18436156.post-7767660767684154777</id><published>2011-03-04T12:46:00.011-03:00</published><updated>2011-03-04T15:33:26.399-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webkit'/><category scheme='http://www.blogger.com/atom/ns#' term='infiltrate'/><category scheme='http://www.blogger.com/atom/ns#' term='immunity'/><category scheme='http://www.blogger.com/atom/ns#' term='exploitation'/><category scheme='http://www.blogger.com/atom/ns#' term='safari'/><category scheme='http://www.blogger.com/atom/ns#' term='exploit'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='heap'/><title type='text'>The rise of the undead (WebKit Heap Exploitation)</title><content type='html'>I remember one day Pablo told me, "forget about attacking metadata, that just wont help you" (or something along those lines, sorry about the inaccuracy).&lt;br /&gt;He was right, as he almost always is, in that case.&lt;br /&gt;&lt;br /&gt;Long gone are the days where heap exploitation was all about attacking (overwriting) the internal structures of the heap allocator.&lt;br /&gt;&lt;br /&gt;But are they really gone?&lt;br /&gt;&lt;br /&gt;It is well known that nowadays, attacking metadata on Windows Heap it is a real pain in the rear. That's one of the reason most of the current heap research papers are focused on crafting the heap layout in order to exploit use-after-free conditions (there are some great exceptions, like Chris Valasek's research on the Low Fragmentation Heap).&lt;br /&gt;&lt;br /&gt;But heap overflows are not restricted just to the operating system heap implementation. There are plenty of custom heap allocators in the world of Open Source Software and some of them are widely used (without most of the people noticing).&lt;br /&gt;&lt;br /&gt;Our research case was TCMalloc. The reason? Mainly because it is used by WebKit, one of the most popular Web Browser engines out there. WebKit is responsible of rendering web pages in Chrome, Safari a huge amount of Smart Phones (yes Android uses it).&lt;br /&gt;I don't like to lie to myself, owning Bas's phone was enough reason to do the research, the rest was just a bonus.&lt;br /&gt;&lt;br /&gt;Understanding the heap allocator (as usual) was the first step in the right direction that drove the whole research to a good end.&lt;br /&gt;&lt;br /&gt;TCMalloc is a heap allocator initially designed by Sanjay Ghemawat and Paul Menage from Google. It was designed with two main premises, speed and multi-threaded environments. This two premises drove the whole design of all the&lt;br /&gt;internal structures to be almost lock free (in order to reduce lock contention) and thread local.&lt;br /&gt;From an attacker perspective, this means that we are going to need to control a lot of factors if we need to succeed at exploiting vulnerabilities that involve corruption of information between threads.&lt;br /&gt;&lt;br /&gt;The allocator itself it is not complex. It is divided in three main subsystems&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Page Allocator&lt;/li&gt;&lt;li&gt;Central Cache Allocator&lt;/li&gt;&lt;li&gt;Thread Allocator&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The main place where memory is obtained is at the Page Allocator. This layer of abstraction deals with the system level memory allocators. It can allocate memory from several places depending on which operating system you are on. The options are VirtualAlloc, sbrk, mmap or even /dev/mem.&lt;br /&gt;At this level, memory is handled in integral multiples of a page. This groups of pages are called Spans in TCMalloc terminology.&lt;br /&gt;A global array of list keeps track of each of the span the system has allocated. This array is indexed by the number of pages the span contains. That is, page_heap_freelist[N] will contain a list of free spans of N pages each.&lt;br /&gt;There are 256 entries in the page_heap_freelist (this depends if you are looking at Chrome or Safari, etc.). Those spans with more than 256 pages are handled by another free list of what is called a "really large span".&lt;br /&gt;&lt;br /&gt;The Spans serves for two main purposes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;to hold a large object&lt;/li&gt;&lt;li&gt;to be used by the central cache&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Memory in multiples of the page size is a little bit inconvenient to use directly from the application. The Central Cache allocator is in charge of making those Spans usable by the application.&lt;br /&gt;The central cache keeps track of the status of spans and also to split the spans into units that are more manageable by the application.&lt;br /&gt;To do so, the central heap has an array of free lists indexed by size class. Each free list contains a set of spans which are spitted into objects of the corresponding size class.&lt;br /&gt;Those objects could have been handed directly to the application, but remember that this allocator is thread oriented, so in order to serve multiple threads, many of the structures of the Central Heap should be guarded by a lock in order to prevent races and stuff that we *do not like*.&lt;br /&gt;&lt;br /&gt;That's the reason why there is another level of abstraction. The Thread Heap is a per thread structure where the central allocator stores memory chunks. Because of the nature of per thread structures, there is no need to hold locks to access them.&lt;br /&gt;The Thread Cache consists mainly of an array of free lists indexed by size class. These free lists are populated with objects by the Central Cache allocator and consumed by each thread that needs some objects.&lt;br /&gt;&lt;br /&gt;That is basically how the algorithm and structures are tied together. With an in-depth understanding of how these subsystems interact we as attackers can start to make some assumptions about how we can force TCMalloc to be our bitch^H^H^H^H^H friend.&lt;br /&gt;&lt;br /&gt;The next step is too take a look into where all this structures are placed and how are they connected to each other, but that my friend is something that we are going to go delve into at &lt;a href="https://www.immunityinc.com/infiltrate/venue.html"&gt;Infiltrate&lt;/a&gt; (and Immunity's Masters Class).&lt;br /&gt;&lt;br /&gt;To give the readers a quick glance over what we have been doing lately, here is a screen-shot of a specially crafted heap layout used by a Canvas exploit to pwn your browser (yes, it will *penetrate* your phone, your windows and your fancy Mac):&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-hTaEIAYfe38/TXELMrClmGI/AAAAAAAALTE/FdxdKl2zAlk/s1600/heapspray.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 287px;" src="http://3.bp.blogspot.com/-hTaEIAYfe38/TXELMrClmGI/AAAAAAAALTE/FdxdKl2zAlk/s320/heapspray.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5580253725628668002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;To say the least, the outcome of this research was more than satisfying. From an attacker perspective, everything started to look exploitable.&lt;br /&gt;&lt;br /&gt;Thanks for reading.&lt;br /&gt;&lt;br /&gt;EOF&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18436156-7767660767684154777?l=gruba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gruba.blogspot.com/feeds/7767660767684154777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18436156&amp;postID=7767660767684154777' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/7767660767684154777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/7767660767684154777'/><link rel='alternate' type='text/html' href='http://gruba.blogspot.com/2011/03/webkit-heap-exploitation-rise-of-undead.html' title='The rise of the undead (WebKit Heap Exploitation)'/><author><name>Agustin Gianni</name><uri>http://www.blogger.com/profile/17057194027467179355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_arUzxClxEGE/Snyv-MNdXxI/AAAAAAAAJko/pgfO_CnLIL0/S220/DSC05017.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-hTaEIAYfe38/TXELMrClmGI/AAAAAAAALTE/FdxdKl2zAlk/s72-c/heapspray.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18436156.post-7112667425488037252</id><published>2009-08-20T18:04:00.007-03:00</published><updated>2009-08-20T18:27:25.013-03:00</updated><title type='text'>Capture The Flag!</title><content type='html'>&lt;span style="font-family:arial;"&gt;Bueno, el CTF de la Ekoparty termino. La verdad que estuvo muy interesante.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Los problemas no eran de una complejidad tecnica impresionante, sino mas bien, habia que ser un poco "creativos" si se quiere y pensar. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;En mi caso particular me costaron bastante los problemas Web, no es mi campo de interes. Aunque debo decir, que bambu y RomanSoft me ayudaron bastante.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Felicitaciones a los ganadores, y el anio que viene nos encontraremos de nuevo.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a style="font-family: courier new;" href="http://ctf09.ekoparty.org/"&gt;http://ctf09.ekoparty.org/&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;table style="table-layout: fixed; font-family: courier new; width: 341px; height: 343px;" bgcolor="white" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th style="text-align: center;"&gt;Position&lt;/th&gt;  &lt;th style="text-align: center;"&gt;Username&lt;/th&gt;   &lt;/tr&gt;  &lt;tr&gt;     &lt;td&gt;&lt;div align="center"&gt;1°&lt;/div&gt;&lt;/td&gt;     &lt;td style="text-align: left;"&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;_rs_&lt;/div&gt;&lt;/td&gt;      &lt;/tr&gt; &lt;tr&gt;     &lt;td&gt;&lt;div align="center"&gt;2°&lt;/div&gt;&lt;/td&gt;     &lt;td style="text-align: left;"&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;claw&lt;/div&gt;&lt;/td&gt;      &lt;/tr&gt; &lt;tr&gt;     &lt;td&gt;&lt;div align="center"&gt;3°&lt;/div&gt;&lt;/td&gt;     &lt;td style="text-align: left;"&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;team_da&lt;/div&gt;&lt;/td&gt;      &lt;/tr&gt; &lt;tr&gt;     &lt;td&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;4°&lt;/div&gt;&lt;/td&gt;    &lt;td style="text-align: left;"&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;administwitter&lt;/div&gt;&lt;/td&gt;      &lt;/tr&gt; &lt;tr&gt;     &lt;td&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;5°&lt;/div&gt;&lt;/td&gt;    &lt;td style="text-align: left;"&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;jmbesnard&lt;/div&gt;&lt;/td&gt;      &lt;/tr&gt; &lt;tr&gt;     &lt;td&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;6°&lt;/div&gt;&lt;/td&gt;    &lt;td style="text-align: left;"&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;bambu&lt;/div&gt;&lt;/td&gt;      &lt;/tr&gt; &lt;tr&gt;     &lt;td&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;7°&lt;/div&gt;&lt;/td&gt;    &lt;td style="text-align: left;"&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;s3ntin3l&lt;/div&gt;&lt;/td&gt;      &lt;/tr&gt; &lt;tr&gt;     &lt;td&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;8°&lt;/div&gt;&lt;/td&gt;    &lt;td style="text-align: left;"&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;crpdm_plus_scpx&lt;/div&gt;&lt;/td&gt;      &lt;/tr&gt; &lt;tr&gt;     &lt;td&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;9°&lt;/div&gt;&lt;/td&gt;    &lt;td style="text-align: left;"&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;agustingianni&lt;/div&gt;&lt;/td&gt;      &lt;/tr&gt; &lt;tr&gt;     &lt;td&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;10°&lt;/div&gt;&lt;/td&gt;    &lt;td style="text-align: left;"&gt;&lt;div style="font-size: 17px; color: black;" align="center"&gt;coreadelnorte&lt;/div&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18436156-7112667425488037252?l=gruba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gruba.blogspot.com/feeds/7112667425488037252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18436156&amp;postID=7112667425488037252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/7112667425488037252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/7112667425488037252'/><link rel='alternate' type='text/html' href='http://gruba.blogspot.com/2009/08/capture-flag.html' title='Capture The Flag!'/><author><name>Agustin Gianni</name><uri>http://www.blogger.com/profile/17057194027467179355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_arUzxClxEGE/Snyv-MNdXxI/AAAAAAAAJko/pgfO_CnLIL0/S220/DSC05017.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18436156.post-4246570601311038145</id><published>2009-08-14T21:57:00.005-03:00</published><updated>2009-08-14T23:08:59.375-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qemu linux kernel compiling minimal config .config'/><title type='text'>QEMU Minimal Linux Kernel Config</title><content type='html'>This is a minimal .config file for the Linux Kernel (2.6.30.4) that allows you to run this QEMU Image &lt;a href="http://www.qemu.org/linux-0.2.img.bz2"&gt;http://www.qemu.org/linux-0.2.img.bz2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://agustingianni.googlepages.com/linux.config.qemu.minimal"&gt;Config File&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One of the uses I gave to this minimal configuration is kernel development.&lt;br /&gt;One of the benefits of using this .config file is that the compiling time is drastically reduced and also the code size of the kernel is reduced.&lt;br /&gt;&lt;br /&gt;To run qemu with the bzImage of your kernel, copy the .config to your source directory&lt;br /&gt;and compile as usual (make all, maybe). Then use the recently compiled image to run QEMU&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;gr00vy@kenny:~/OSDev/Qemu$ qemu -hda linux-0.2.img -kernel ../linux-2.6.30.4/arch/i386/boot/bzImage -k es -append "root=\"/dev/hda\" ro"&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_arUzxClxEGE/SoYKDxArfPI/AAAAAAAAJlg/ib9JUhemMmY/s1600-h/Screenshot-QEMU.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 189px;" src="http://3.bp.blogspot.com/_arUzxClxEGE/SoYKDxArfPI/AAAAAAAAJlg/ib9JUhemMmY/s320/Screenshot-QEMU.png" alt="" id="BLOGGER_PHOTO_ID_5369990665497967858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18436156-4246570601311038145?l=gruba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gruba.blogspot.com/feeds/4246570601311038145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18436156&amp;postID=4246570601311038145' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/4246570601311038145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/4246570601311038145'/><link rel='alternate' type='text/html' href='http://gruba.blogspot.com/2009/08/qemu-minimal-linux-kernel-config.html' title='QEMU Minimal Linux Kernel Config'/><author><name>Agustin Gianni</name><uri>http://www.blogger.com/profile/17057194027467179355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_arUzxClxEGE/Snyv-MNdXxI/AAAAAAAAJko/pgfO_CnLIL0/S220/DSC05017.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_arUzxClxEGE/SoYKDxArfPI/AAAAAAAAJlg/ib9JUhemMmY/s72-c/Screenshot-QEMU.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18436156.post-423515371097807034</id><published>2009-08-07T19:38:00.004-03:00</published><updated>2009-08-07T19:47:26.589-03:00</updated><title type='text'>Django on Eclipse (PyDEV)</title><content type='html'>This is a quickie.&lt;br /&gt;&lt;br /&gt;To enable autocompletion in Eclipse (using Pydev plugin) you have to add the right path so the indexer can parse all the Django python files.&lt;br /&gt;One way (that worked for me) is to:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;gr00vy@kenny:~$ python&lt;br /&gt;Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41)&lt;br /&gt;[GCC 4.3.3] on linux2&lt;br /&gt;Type "help", "copyright", "credits" or "license" for more information.&lt;br /&gt;&gt;&gt;&gt; import django&lt;br /&gt;&gt;&gt;&gt; print django&lt;br /&gt;&lt;module from="" var="" lib="" support="" 6="" django="" pyc=""&gt;module 'django' from '/var/lib/python-support/python2.6/django/__init__.pyc'&lt;br /&gt;&gt;&gt;&gt;&lt;/module&gt;&lt;/blockquote&gt;&lt;module from="" var="" lib="" support="" 6="" django="" pyc=""&gt;&lt;br /&gt;Im my case, that directory has symlinks to the real files. I added that path and it did not work, there should be no reason f&lt;/module&gt;&lt;module from="" var="" lib="" support="" 6="" django="" pyc=""&gt;or it to not work but it didn't.&lt;br /&gt;So we have to add the path where the symlinks points, and that is:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;gr00vy@kenny:~$ ls -l /var/lib/python-support/python2.6/django/&lt;br /&gt;lrwxrwxrwx  1 root root   58 2009-08-01 18:29 __init__.py -&gt; /usr/share/python-support/python-django/django/__init__.py&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And that's it the correct path is: /usr/share/python-support/python-django/django/&lt;br /&gt;&lt;br /&gt;Now we open Eclipse, we go into Windows-&gt;Preferences-&gt;Pydev-&gt;Interpreter-Python and we add that path to PYTHONPATH.&lt;br /&gt;&lt;br /&gt;We hit apply or OK and there you have it!.&lt;br /&gt;&lt;/module&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a style="font-weight: bold;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_arUzxClxEGE/SnyuM4ZLj-I/AAAAAAAAJkI/G6eDf6Clzjw/s1600-h/Screenshot-Preferences+.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 314px; height: 320px;" src="http://1.bp.blogspot.com/_arUzxClxEGE/SnyuM4ZLj-I/AAAAAAAAJkI/G6eDf6Clzjw/s320/Screenshot-Preferences+.png" alt="" id="BLOGGER_PHOTO_ID_5367356392238452706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18436156-423515371097807034?l=gruba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gruba.blogspot.com/feeds/423515371097807034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18436156&amp;postID=423515371097807034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/423515371097807034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/423515371097807034'/><link rel='alternate' type='text/html' href='http://gruba.blogspot.com/2009/08/django-on-eclipse-pydev.html' title='Django on Eclipse (PyDEV)'/><author><name>Agustin Gianni</name><uri>http://www.blogger.com/profile/17057194027467179355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_arUzxClxEGE/Snyv-MNdXxI/AAAAAAAAJko/pgfO_CnLIL0/S220/DSC05017.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_arUzxClxEGE/SnyuM4ZLj-I/AAAAAAAAJkI/G6eDf6Clzjw/s72-c/Screenshot-Preferences+.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18436156.post-736595028478759450</id><published>2007-07-25T23:15:00.000-03:00</published><updated>2007-07-25T23:24:29.069-03:00</updated><title type='text'>Math Challenges</title><content type='html'>Hi! Now that I am in Winter vacations I have some spare time to play with &lt;a href="http://www.projecteuler.net"&gt;www.projecteuler.net&lt;/a&gt; challenges.&lt;br /&gt;&lt;br /&gt;Project Euler is a site that contains a about 160 mathematic/programming challenges that you have to solve. There is no time limit to solve them, you just submit the answer whenever you want.&lt;br /&gt;&lt;br /&gt;This is a really nice game to enjoy/learn/practice. I hope you enjoy it as much as I do.&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18436156-736595028478759450?l=gruba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gruba.blogspot.com/feeds/736595028478759450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18436156&amp;postID=736595028478759450' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/736595028478759450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/736595028478759450'/><link rel='alternate' type='text/html' href='http://gruba.blogspot.com/2007/07/math-challenges.html' title='Math Challenges'/><author><name>Agustin Gianni</name><uri>http://www.blogger.com/profile/17057194027467179355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_arUzxClxEGE/Snyv-MNdXxI/AAAAAAAAJko/pgfO_CnLIL0/S220/DSC05017.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18436156.post-116408422636891323</id><published>2006-11-21T01:34:00.000-03:00</published><updated>2006-11-21T02:16:56.703-03:00</updated><title type='text'>File Fuzzer</title><content type='html'>Hello, now im writting to release a little file fuzzer.&lt;br /&gt;It has been very useful for me, but now im bored of it, so its time for other people to play with it.&lt;br /&gt;&lt;br /&gt;Characteristics:&lt;br /&gt;&lt;br /&gt; - Can trace deep into child child's. (Fuzzer-&gt;Child0-&gt;Child1-&gt;...-&gt;ChildN) :)&lt;br /&gt; - You can define the file structure and then pass it to the fuzzer.&lt;br /&gt; - It can "learn" the file format (In the case of ASCII Input files).&lt;br /&gt; - Pretty fast (Compared to other file fuzzers).&lt;br /&gt; - Works on Linux (Full support) and FreeBSD (No ptrace support, but it is not difficult to        make the port, just change some #defines and then you will be OK).&lt;br /&gt; - No makefile :P&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;Sample Output:&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;gr00vy@kenny:~/ffuzer/src$ ./gwar -D -i ../iput.elf -o ../tmp/output.elf -r -52 -t 3 -m 5 "/usr/bin/readelf -a %FILENAME%"&lt;br /&gt;[%] Logging to readelf.log&lt;br /&gt;[%] Loaded 190 fuzzing variables&lt;br /&gt;[%] Fuzzing from 0 to 52&lt;br /&gt;[%] Number of files to be generated 10070&lt;br /&gt;[%] Proceding with fuzzing&lt;br /&gt;[%] Byte [   52] FuzzString [    0] Process [ 0] Bugs? [40]&lt;br /&gt;[%] Time elapsed 79.000000&lt;br /&gt;[%] Number of succesful executions 10070&lt;br /&gt;[%] Skipped executions due to fuzzing string size 0&lt;br /&gt;[%] Number of "bugs" found: 40&lt;/blockquote&gt;&lt;span style="font-family: courier new;"&gt;Sample Bug Report&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="font-family: courier new;"&gt;&lt;br /&gt;[i] Signal:         Unknown signal 127&lt;br /&gt;[i] Fuzzing string: 186 Offset: 52&lt;br /&gt;[i] Detail:   address not mapped to object - Address of exception: 0x4949e961&lt;br /&gt;        Registers dump:&lt;br /&gt;        ---------------&lt;br /&gt;&lt;br /&gt;        eax = 0x4949e961        ebx = 0x00004141        ecx = 0x00000000&lt;br /&gt;        edx = 0x0806853c        esi = 0x00001274        edi = 0x0808921f&lt;br /&gt;        ebp = 0xbfb8a398        esp = 0xbfb8a360        eip = 0x080685bf&lt;br /&gt;&lt;br /&gt;        Stack frame dump:&lt;br /&gt;        -----------------&lt;br /&gt;&lt;br /&gt;        0xbfb8a360:     84 a3 b8 bf 5d 5c e4 b7 a4 a3 b8 bf 98 08 08 08 ....]\..........&lt;br /&gt;        0xbfb8a370:     f4 cf f3 b7 04 00 00 00 1f 92 08 08 98 a3 b8 bf ................&lt;br /&gt;        0xbfb8a380:     03 68 e6 b7 c0 d4 f3 b7 8e 08 08 08 41 41 00 00 .h..........AA..&lt;br /&gt;        0xbfb8a390:     74 12 00 00 1f 92 08 08                         t.......&lt;br /&gt;&lt;br /&gt;        Disassembly dump:&lt;br /&gt;        -----------------&lt;br /&gt;&lt;br /&gt;                806858d ADD            [EAX], AL&lt;br /&gt;                806858f ADD            CL, CH&lt;br /&gt;                8068591 CMPSD&lt;br /&gt;                8068592 ADD            [EAX], EAX&lt;br /&gt;                8068594 ADD            [EBX-0x49f0f7bb], CL&lt;br /&gt;                806859a ADD            [EDI], CL&lt;br /&gt;                806859c MOV            DH, 0xd0&lt;br /&gt;                806859e MOV            EAX, [EBP+0x8]&lt;br /&gt;                80685a1 INC            EAX&lt;br /&gt;                80685a2 MOVZX          EAX, BYTE [EAX]&lt;br /&gt;                80685a5 MOVZX          EAX, AL&lt;br /&gt;                80685a8 SHL            EAX, 0x8&lt;br /&gt;                80685ab OR             EAX, EDX&lt;br /&gt;                80685ad MOV            [EBP-0x20], EAX&lt;br /&gt;                80685b0 MOV            DWORD [EBP-0x1c], 0x0&lt;br /&gt;                80685b7 JMP            0x806873c&lt;br /&gt;                80685bc MOV            EAX, [EBP+0x8]&lt;br /&gt;EIP -&gt;          80685bf MOVZX          EAX, BYTE [EAX]&lt;/blockquote&gt;&lt;blockquote style="font-family: courier new;"&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote style="font-family: courier new;"&gt;&lt;/blockquote&gt;&lt;br /&gt;Thats all for now, if you have any suggestions, please leave a comment.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://agustingianni.googlepages.com"&gt;Web&lt;/a&gt;&lt;br /&gt;&lt;a href="http://agustingianni.googlepages.com/ffuzer.tar.bz2"&gt;Download&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18436156-116408422636891323?l=gruba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gruba.blogspot.com/feeds/116408422636891323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18436156&amp;postID=116408422636891323' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/116408422636891323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/116408422636891323'/><link rel='alternate' type='text/html' href='http://gruba.blogspot.com/2006/11/file-fuzzer.html' title='File Fuzzer'/><author><name>Agustin Gianni</name><uri>http://www.blogger.com/profile/17057194027467179355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_arUzxClxEGE/Snyv-MNdXxI/AAAAAAAAJko/pgfO_CnLIL0/S220/DSC05017.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18436156.post-114152777664801503</id><published>2006-03-05T00:02:00.000-03:00</published><updated>2006-03-05T00:06:20.803-03:00</updated><title type='text'>Visualizing Memory Graphs</title><content type='html'>&lt;a href="http://www.st.cs.uni-sb.de/papers/sv2001/"&gt;Visualizing Memory Graphs - Software Engineering Chair (Prof. Zeller) - Saarland University&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I found this pdf article very cool. I think it is worth to take a read to it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.st.cs.uni-sb.de/memgraphs/examples/gcc/gcc-fail.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://www.st.cs.uni-sb.de/memgraphs/examples/gcc/gcc-fail.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18436156-114152777664801503?l=gruba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gruba.blogspot.com/feeds/114152777664801503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18436156&amp;postID=114152777664801503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/114152777664801503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/114152777664801503'/><link rel='alternate' type='text/html' href='http://gruba.blogspot.com/2006/03/visualizing-memory-graphs.html' title='Visualizing Memory Graphs'/><author><name>Agustin Gianni</name><uri>http://www.blogger.com/profile/17057194027467179355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_arUzxClxEGE/Snyv-MNdXxI/AAAAAAAAJko/pgfO_CnLIL0/S220/DSC05017.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18436156.post-114145817637406643</id><published>2006-03-04T04:42:00.000-03:00</published><updated>2006-03-04T04:47:15.956-03:00</updated><title type='text'>Ethical Hacking and Computer Forensics: Fuzzers - The ultimate list</title><content type='html'>&lt;a href="http://www.infosecinstitute.com/blog/2005/12/fuzzers-ultimate-list.html"&gt;Ethical Hacking and Computer Forensics: Fuzzers - The ultimate list&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a very cool page with links to many useful fuzzers. Well not all of them are useful, but, you can always read them and implement your own with the capabilities that best fits you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18436156-114145817637406643?l=gruba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gruba.blogspot.com/feeds/114145817637406643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18436156&amp;postID=114145817637406643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/114145817637406643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/114145817637406643'/><link rel='alternate' type='text/html' href='http://gruba.blogspot.com/2006/03/ethical-hacking-and-computer-forensics.html' title='Ethical Hacking and Computer Forensics: Fuzzers - The ultimate list'/><author><name>Agustin Gianni</name><uri>http://www.blogger.com/profile/17057194027467179355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_arUzxClxEGE/Snyv-MNdXxI/AAAAAAAAJko/pgfO_CnLIL0/S220/DSC05017.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18436156.post-114126377944377933</id><published>2006-03-01T22:42:00.000-03:00</published><updated>2006-03-01T22:43:02.386-03:00</updated><title type='text'>David S. Miller's Linux Networking Homepage</title><content type='html'>&lt;a href="http://vger.kernel.org/%7Edavem/"&gt;David S. Miller's Linux Networking Homepage&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This web has a very interesting description about sk_buffer's and linux kernel networking internals.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18436156-114126377944377933?l=gruba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gruba.blogspot.com/feeds/114126377944377933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18436156&amp;postID=114126377944377933' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/114126377944377933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/114126377944377933'/><link rel='alternate' type='text/html' href='http://gruba.blogspot.com/2006/03/david-s-millers-linux-networking.html' title='David S. Miller&apos;s Linux Networking Homepage'/><author><name>Agustin Gianni</name><uri>http://www.blogger.com/profile/17057194027467179355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_arUzxClxEGE/Snyv-MNdXxI/AAAAAAAAJko/pgfO_CnLIL0/S220/DSC05017.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18436156.post-114085783851706445</id><published>2006-02-25T05:54:00.000-03:00</published><updated>2006-02-25T05:57:18.536-03:00</updated><title type='text'>IDA-Pro 5.0</title><content type='html'>A preview of the next release of IDA, it seems to be great!. I can't wait to test it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.datarescue.be/freefiles/ida5preview.swf"&gt;Preview!&lt;/a&gt;&lt;br /&gt;&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18436156-114085783851706445?l=gruba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gruba.blogspot.com/feeds/114085783851706445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18436156&amp;postID=114085783851706445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/114085783851706445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/114085783851706445'/><link rel='alternate' type='text/html' href='http://gruba.blogspot.com/2006/02/ida-pro-50.html' title='IDA-Pro 5.0'/><author><name>Agustin Gianni</name><uri>http://www.blogger.com/profile/17057194027467179355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_arUzxClxEGE/Snyv-MNdXxI/AAAAAAAAJko/pgfO_CnLIL0/S220/DSC05017.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18436156.post-113323177036711239</id><published>2005-11-28T23:33:00.000-03:00</published><updated>2005-11-28T23:36:10.380-03:00</updated><title type='text'>Meeting</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4450/1804/1600/PB280067.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/4450/1804/320/PB280067.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4450/1804/1600/PB280070.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/4450/1804/320/PB280070.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Fotos de la meeting que se llevo a cabo en el Bloque II el dia Domingo :)&lt;br /&gt;&lt;br /&gt;Pictures of the meeting that took place last Sunday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18436156-113323177036711239?l=gruba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gruba.blogspot.com/feeds/113323177036711239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18436156&amp;postID=113323177036711239' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/113323177036711239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/113323177036711239'/><link rel='alternate' type='text/html' href='http://gruba.blogspot.com/2005/11/meeting.html' title='Meeting'/><author><name>Agustin Gianni</name><uri>http://www.blogger.com/profile/17057194027467179355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_arUzxClxEGE/Snyv-MNdXxI/AAAAAAAAJko/pgfO_CnLIL0/S220/DSC05017.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18436156.post-113185624849578738</id><published>2005-11-13T01:26:00.000-03:00</published><updated>2005-11-13T01:33:58.250-03:00</updated><title type='text'>Lo que el hambre se llevo</title><content type='html'>&lt;div style="text-align: left;"&gt;Esperamos pero nadie llego,&lt;br /&gt;&lt;/div&gt; &lt;div style="text-align: left;"&gt;arrancamos y nada ya quedo.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4450/1804/1600/pizza.0.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4450/1804/200/pizza.0.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18436156-113185624849578738?l=gruba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gruba.blogspot.com/feeds/113185624849578738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18436156&amp;postID=113185624849578738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/113185624849578738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/113185624849578738'/><link rel='alternate' type='text/html' href='http://gruba.blogspot.com/2005/11/lo-que-el-hambre-se-llevo.html' title='Lo que el hambre se llevo'/><author><name>Agustin Gianni</name><uri>http://www.blogger.com/profile/17057194027467179355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_arUzxClxEGE/Snyv-MNdXxI/AAAAAAAAJko/pgfO_CnLIL0/S220/DSC05017.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18436156.post-113081258797847667</id><published>2005-10-31T23:30:00.000-03:00</published><updated>2005-11-04T23:22:40.246-03:00</updated><title type='text'>Fractals!</title><content type='html'>Hello there, this post is about a little program I coded recently. Its about fractals, attractors and leaves, all generated by mathematical expressions. Its very nice to see how a mere formula can generate that kind of beautiful pictures.&lt;br /&gt;&lt;br /&gt;The program is coded in c, using OpenGL, Gtk and Gtk widget extension. You might have problems with deps so try to look for gtkglext library.&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt; I hope you like the demo images!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;a href="http://gruba.impressive.com.ar/facturas-0.1.tar.gz"&gt;facturas-0.1.tar.gz&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Whenever you start the program please click the clear button to fix the image, yes I know, im lazy, sorry ill fix it, but not now.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4450/1804/1600/mandelbrot.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/4450/1804/320/mandelbrot.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Classical Mandelbrot :) Thanks to beck for genbox.c!!!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4450/1804/1600/default5.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/4450/1804/320/default5.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A Mandelbrot but zoomed in!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4450/1804/1600/firebeavis.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4450/1804/320/firebeavis.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fire fire fire!!!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4450/1804/1600/sin_mandelbrot.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4450/1804/320/sin_mandelbrot.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mandelbrot with sin(x) :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18436156-113081258797847667?l=gruba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gruba.blogspot.com/feeds/113081258797847667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18436156&amp;postID=113081258797847667' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/113081258797847667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/113081258797847667'/><link rel='alternate' type='text/html' href='http://gruba.blogspot.com/2005/10/fractals.html' title='Fractals!'/><author><name>Agustin Gianni</name><uri>http://www.blogger.com/profile/17057194027467179355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_arUzxClxEGE/Snyv-MNdXxI/AAAAAAAAJko/pgfO_CnLIL0/S220/DSC05017.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18436156.post-113063195096040455</id><published>2005-10-29T21:22:00.000-03:00</published><updated>2005-10-31T23:27:51.253-03:00</updated><title type='text'>First post</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4450/1804/1600/gr00vy.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/4450/1804/320/gr00vy.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;I dont know what to post so ill wait until something pops up (?)&lt;br /&gt;&lt;br /&gt;This is a picture of me in South Park Colorado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18436156-113063195096040455?l=gruba.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gruba.blogspot.com/feeds/113063195096040455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18436156&amp;postID=113063195096040455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/113063195096040455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18436156/posts/default/113063195096040455'/><link rel='alternate' type='text/html' href='http://gruba.blogspot.com/2005/10/first-post.html' title='First post'/><author><name>Agustin Gianni</name><uri>http://www.blogger.com/profile/17057194027467179355</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_arUzxClxEGE/Snyv-MNdXxI/AAAAAAAAJko/pgfO_CnLIL0/S220/DSC05017.JPG'/></author><thr:total>0</thr:total></entry></feed>
