<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7865284935253612822</atom:id><lastBuildDate>Fri, 01 Nov 2024 11:53:14 +0000</lastBuildDate><category>General Security</category><category>Photography</category><category>Debugging</category><category>Travel</category><category>Trojans</category><title>Gviz</title><description></description><link>http://gviz.blogspot.com/</link><managingEditor>noreply@blogger.com (Unknown)</managingEditor><generator>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7865284935253612822.post-8949082396906937663</guid><pubDate>Fri, 26 Oct 2007 18:40:00 +0000</pubDate><atom:updated>2007-10-26T11:49:33.364-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Photography</category><title>TeamWork</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjl5PhjWcBzEBnTDXP0tb1vRllX7IZD42QW37QfFgkJZU70nOyyhZLHgcAnJWm9H3ASNnwVq6r7pxJhVprM6MCkKAjqr4YcgWfxvMnVWHiE9kkAZzGrrBFCDjc_k3EfOrmWN7WdQyDIeVM/s1600-h/teamwork.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjl5PhjWcBzEBnTDXP0tb1vRllX7IZD42QW37QfFgkJZU70nOyyhZLHgcAnJWm9H3ASNnwVq6r7pxJhVprM6MCkKAjqr4YcgWfxvMnVWHiE9kkAZzGrrBFCDjc_k3EfOrmWN7WdQyDIeVM/s320/teamwork.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5125718912537465010&quot; /&gt;&lt;/a&gt;</description><link>http://gviz.blogspot.com/2007/10/teamwork.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjl5PhjWcBzEBnTDXP0tb1vRllX7IZD42QW37QfFgkJZU70nOyyhZLHgcAnJWm9H3ASNnwVq6r7pxJhVprM6MCkKAjqr4YcgWfxvMnVWHiE9kkAZzGrrBFCDjc_k3EfOrmWN7WdQyDIeVM/s72-c/teamwork.jpg" height="72" width="72"/><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7865284935253612822.post-514016268109029632</guid><pubDate>Sun, 30 Sep 2007 05:31:00 +0000</pubDate><atom:updated>2007-09-29T22:47:49.944-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">General Security</category><category domain="http://www.blogger.com/atom/ns#">Trojans</category><title>Banking Trojans</title><description>F-secure recently released a paper on Banking Trojans. The paper talks about  various methods used by Trojans targeting online money transactions. It also talks about a tool called “Mstrings” which helps in identifying Banking Trojans.&lt;br /&gt;&lt;br /&gt;The paper is available at &lt;a href=&quot;http://www.f-secure.com/weblog/archives/VB2007_TheTrojanMoneySpinner.pdf&quot;&gt;F-secure&#39;s   website&lt;/a&gt;.</description><link>http://gviz.blogspot.com/2007/09/banking-trojans.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7865284935253612822.post-5280201527016065853</guid><pubDate>Thu, 13 Sep 2007 06:06:00 +0000</pubDate><atom:updated>2007-09-12T23:55:26.236-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">General Security</category><title>Codename 1234  !!!</title><description>Recently a list of around 100 email ids and passwords were posted by a hacker on his website (&lt;a href=http://derangedsecurity.com&gt;Deranged&lt;/a&gt;).All these accounts belonged to various government organizations around the globe and contained classified information. Some passwords in the list were too simple that even a small kid could have broken into those accounts. Most Indian embassies had one of the easiest passwords somebody could think of (&lt;strong&gt;123&lt;/strong&gt;4).Indian DRDO seems to be much better in choosing passwords ,They seems to have added 1 to their password and made it more secure !!!! (&lt;strong&gt;password+1&lt;/strong&gt;).</description><link>http://gviz.blogspot.com/2007/09/codename-1234.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7865284935253612822.post-51130235157206329</guid><pubDate>Wed, 12 Sep 2007 06:01:00 +0000</pubDate><atom:updated>2007-09-11T23:07:33.872-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">General Security</category><title>Phishing in 30 Seconds</title><description>These days even Phishing software comes with video tutorials.&lt;br /&gt;The following video demonstrates how to use a phishing software called Auto Phisher.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://davedadon.mywebcommunity.org/Tutorials/30secondsphish.html&quot;&gt;Auto Phisher Tutorial&lt;/a&gt;</description><link>http://gviz.blogspot.com/2007/09/phishing-in-30-seconds.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7865284935253612822.post-8089128110078467377</guid><pubDate>Fri, 31 Aug 2007 13:01:00 +0000</pubDate><atom:updated>2007-08-31T06:27:16.560-07:00</atom:updated><title>Indian Website Defacements</title><description>Bank of India website got compromised yesterday and was used to host malware/exploits.&lt;br /&gt;If you have visited the website recently and feels that your computer is showing strange behaviour after that, it is most likely that your system got compromised by some malware which was on the site.&lt;br /&gt;&lt;a href=”http://www.cert-in.org.in/”&gt;Indian Computer Emergency Response Team &lt;/a&gt;(CERT-IN) have some interesting info about the Indian sites which were defaced last year.&lt;br /&gt;&lt;br /&gt;“ &lt;br /&gt; In the year 2006 a total no. of 5211 Indian websites were defaced , on an average of about &lt;strong&gt;14  websites per day&lt;/strong&gt;.&lt;br /&gt;“&lt;br /&gt;The Bank website has been cleaned up by their staff and is considered safe to access now.&lt;br /&gt;&lt;br /&gt;An analysis of the defacement is available at Mcafee AvertLabs blog at &lt;br /&gt;&lt;a href=http://www.avertlabs.com/research/blog/index.php/2007/08/31/compromised-bank-of-india-website/&gt;http://www.avertlabs.com/research/blog/index.php/2007/08/31/compromised-bank-of-india-website/&lt;/a&gt;</description><link>http://gviz.blogspot.com/2007/08/indian-website-defacements.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7865284935253612822.post-5452371382216691237</guid><pubDate>Fri, 31 Aug 2007 05:36:00 +0000</pubDate><atom:updated>2007-08-30T22:59:08.317-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">General Security</category><title>Another Yahoo Security Fix</title><description>Within a week after its previous security update, Yahoo has now come up with another security fix. This update patches a stack overflow in one of the activex controls related to Yahoo Messenger. According to analysis by &lt;a href=http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=591&gt;iDefense&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;It is important to note that functions within this class can only be called if the control believes it is being run from the yahoo.com domain. In order for this exploit to be triggered an attacker would either have to leverage a Cross-Site Scripting vulnerability in the yahoo.com domain, or be able to control the targeted user&#39;s DNS resolution &lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Yahoo&#39;s advisory related to this vulnerability could be found at &lt;a href=&quot;http://messenger.yahoo.com/security_update.php?id=082907&quot;&gt;http://messenger.yahoo.com/security_update.php?id=082907&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Patched version of Yahoo Messenger is available at &lt;a href=&quot;http://messenger.yahoo.com/download.php&quot;&gt;http://messenger.yahoo.com/download.php&lt;/a&gt;.</description><link>http://gviz.blogspot.com/2007/08/another-yahoo-security-fix.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7865284935253612822.post-1982384391671686392</guid><pubDate>Wed, 29 Aug 2007 12:56:00 +0000</pubDate><atom:updated>2007-08-29T08:35:39.917-07:00</atom:updated><title>Little Endian, Big Endian &amp; Gulliver ..</title><description>Big Endian and Little Endian are terms used in computing to specify how bytes are ordered in memory. In Big Endian bytes are stored from most significant byte to least significant byte (MSB to LSB) and in Little Endian it is from least significant byte to most significant byte (LSB to MSB) .&lt;br /&gt;For example,on a 32bit system an unsigned integer ‘0x40812131’ will be stored as ‘0x40812131’ itself in Big Endian byte order and in Little Endian, it will be stored as ‘0x31218140’.&lt;br /&gt;&lt;br /&gt;Most Intel processors are Little Endian, while processors such as Sparc belong to the Big Endian family. In processors like MIPS and ARM it is possible to specify the byte order at startup.&lt;br /&gt;&lt;br /&gt;TCP/IP uses Big Endian byte order for its data transfer. Systems with a byte order other than BigEndian should first convert any data it receives from a TCP/IP network (Network Byte Order) to its own byte order (Host Byte Order) before processing it. Most network appliances (routers, firewalls,ids,ips,..) are build using BigEndian processors as they can avoid overhead caused due to byte order conversions.&lt;br /&gt;Following are some C functions used for byte order conversion&lt;br /&gt;&lt;br /&gt;  unsigned long htonl(unsigned long hostlong); //Host byte order to Network byte order long&lt;br /&gt;  unsigned short htons(unsigned short hostshort);//Host  byte order to Network byte order Short&lt;br /&gt;  unsigned long ntohl(unsigned long netlong);//Network byte order to Host byte order long&lt;br /&gt;  unsigned short ntohs(unsigned short netshort); Network byte order to Host byte order short&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;These functions are even found in the source code for BigEndian systems, but internally they don’t perform any operation on them. This is mainly done to make the code portable across platforms with different byte orders.&lt;br /&gt;One interesting fact about the terms ‘Little Endian ‘and ‘Big Endian’  is that they came from the novel Gulliver&#39;s Travels  :) .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&quot;Gulliver finds out that there is a law, proclaimed by the grandfather of&lt;br /&gt;the  present  ruler,  requiring  all citizens of Lilliput to break their&lt;br /&gt;eggs only at the little ends.  Of course, all those citizens  who  broke&lt;br /&gt;their  eggs at the big ends were angered by the proclamation.  Civil war&lt;br /&gt;broke out between the Little-Endians and the Big-Endians,  resulting  in&lt;br /&gt;the  Big-Endians  taking  refuge  on  a  nearby  island,  the kingdom of&lt;br /&gt;Blefuscu.&quot;&lt;br /&gt;[&lt;a href=&quot;http://www.ietf.org/rfc/ien/ien137.txt&quot;&gt;http://www.ietf.org/rfc/ien/ien137.txt&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;The following code could be used to check whether a system is Big Endian or Little Endian during run time.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#include&lt;stdio.h&gt;&lt;br /&gt;#define LITTLE_ENDIAN  0&lt;br /&gt;#define BIG_ENDIAN  1&lt;br /&gt; int  byteOrder(void)&lt;br /&gt;{&lt;br /&gt;       unsigned int x=1;&lt;br /&gt;       unsigned char *y=(unsigned char *)&amp;x;&lt;br /&gt;       if(y[0])  return LITTLE_ENDIAN;&lt;br /&gt;       return BIG_ENDIAN;&lt;br /&gt;}&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;        printf(&quot;%s Endian\n&quot;,byteOrder()?&quot;Big&quot;:&quot;Little&quot;);&lt;br /&gt;        return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;</description><link>http://gviz.blogspot.com/2007/08/little-endian-big-endian-gulliver.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>22</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7865284935253612822.post-6808541125804742607</guid><pubDate>Mon, 27 Aug 2007 11:18:00 +0000</pubDate><atom:updated>2007-08-27T04:41:50.277-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">General Security</category><title>Yahoo Fixes Security Flaw</title><description>Yahoo recently released an updated version of Yahoo Messenger which fixes a heap based overflow in one of its webcam related functions. Details about the update could be found at http://messenger.yahoo.com/security_update.php?id=082107.&lt;br /&gt;&lt;br /&gt;A proof of concept for the above mentioned vulnerability was posted last month on a Chinese security forum. Later this was found and reported by a researcher of Mcafee Avertlabs. The vulnerability was fixed within one week after it was reported by Avertlabs but more than one month after it first appeared in a public forum.</description><link>http://gviz.blogspot.com/2007/08/yahoo-fixes-security-flaw.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7865284935253612822.post-4813557487428339874</guid><pubDate>Sun, 26 Aug 2007 08:12:00 +0000</pubDate><atom:updated>2007-08-26T02:23:17.134-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Photography</category><category domain="http://www.blogger.com/atom/ns#">Travel</category><title>Trip to Nandi Hills ,Bangalore</title><description>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIZxbtliXf1fq_5_371qhPXyCkgxJX3t2AT99dG8Y38AZ4pRCl2xZwq65m7gge8Os6Zocr2pH0-eaCbJoGGlpLNRB4YhD8o8RCNRESHaBhV43dQnOXsDPVe71Ss4F2W0cc2SJZfjuxKoU/s1600-h/DSC_0203.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIZxbtliXf1fq_5_371qhPXyCkgxJX3t2AT99dG8Y38AZ4pRCl2xZwq65m7gge8Os6Zocr2pH0-eaCbJoGGlpLNRB4YhD8o8RCNRESHaBhV43dQnOXsDPVe71Ss4F2W0cc2SJZfjuxKoU/s320/DSC_0203.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102931695629403810&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJnTPISHhZ7JuGDM1nNRpLPgVTNlNrxeTnQcQM2HfvmtoUDlW13371IVqvbB_hcRi041GueCHb7imTOn2x5DnSlqU7aGUC1U_ls3Hatk8Z5e9yYSLJW2GDHTnhTsRjNFSzDLY1mZvXW0Q/s1600-h/DSC_0208.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJnTPISHhZ7JuGDM1nNRpLPgVTNlNrxeTnQcQM2HfvmtoUDlW13371IVqvbB_hcRi041GueCHb7imTOn2x5DnSlqU7aGUC1U_ls3Hatk8Z5e9yYSLJW2GDHTnhTsRjNFSzDLY1mZvXW0Q/s320/DSC_0208.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102931545305548434&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuh1tvfErsnCF7MrP8DPTz_Gz0g_Uk2TIeYN3pTFSSDhlhaGHZQe7XH2hPp2pz8kk4eCY6sbkjhXkKVVP3XS9aeNWgxRCfa3fmAzS2JPXV1qU5B6okHkLibMuxTJbPI4G0VJjxBZSJqQo/s1600-h/DSC_0198.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuh1tvfErsnCF7MrP8DPTz_Gz0g_Uk2TIeYN3pTFSSDhlhaGHZQe7XH2hPp2pz8kk4eCY6sbkjhXkKVVP3XS9aeNWgxRCfa3fmAzS2JPXV1qU5B6okHkLibMuxTJbPI4G0VJjxBZSJqQo/s320/DSC_0198.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102931304787379842&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXg14crgp5eUuMhmkkCsgO3m6_8idS8FvwAeyWrfw-mgFu8zGfAaUPRjYb5bct1uyFFRCfd2ZXIascvdlIoooSBL3BnknMsAdiFhUcC3nj7wjIxNEyHl106YWpoM6b6f81dEnjXD77smY/s1600-h/DSC_0157.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXg14crgp5eUuMhmkkCsgO3m6_8idS8FvwAeyWrfw-mgFu8zGfAaUPRjYb5bct1uyFFRCfd2ZXIascvdlIoooSBL3BnknMsAdiFhUcC3nj7wjIxNEyHl106YWpoM6b6f81dEnjXD77smY/s320/DSC_0157.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102931034204440178&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0LWD6CiapOniJVR8-WGWCDfEF-oxSrWwOGQjILVg8cytXfQoK999D8vIfVxvniv3QgL6zXJQpV0U9DQtjlgP70PRIknS7dzKrCZ1yePDXgxGJXUJwdLotHZ9uzVPJNus_nzUU2phGTEE/s1600-h/DSC_0150.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0LWD6CiapOniJVR8-WGWCDfEF-oxSrWwOGQjILVg8cytXfQoK999D8vIfVxvniv3QgL6zXJQpV0U9DQtjlgP70PRIknS7dzKrCZ1yePDXgxGJXUJwdLotHZ9uzVPJNus_nzUU2phGTEE/s320/DSC_0150.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102930858110781026&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiutwyEYwnBuG77M8dMjMfuNDvLwe_fivFQzKVuwuf2NMxja33lTcP3Y8Ht40jJw5z95-hTOSeNt30V9H5JVCCTYqoRFb7_vvoC1mF9VrFLWlLx-cbHx8P3Wwwi06k7vcGwxznalS_fJSM/s1600-h/DSC_0149.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiutwyEYwnBuG77M8dMjMfuNDvLwe_fivFQzKVuwuf2NMxja33lTcP3Y8Ht40jJw5z95-hTOSeNt30V9H5JVCCTYqoRFb7_vvoC1mF9VrFLWlLx-cbHx8P3Wwwi06k7vcGwxznalS_fJSM/s320/DSC_0149.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102930656247318098&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsTslImAnt2eX9MlGvbsoH5RxhdA-WEVZqyT0QN6uo_949Rexuq56s2TQ0__YB7SDoIbvwBnlmAmONQ3pGzy2HZmxNoXdG48DhawDkujESgD0beUXAk_LlZ0kGnS2328AQft2RjTdRXoA/s1600-h/DSC_0144.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsTslImAnt2eX9MlGvbsoH5RxhdA-WEVZqyT0QN6uo_949Rexuq56s2TQ0__YB7SDoIbvwBnlmAmONQ3pGzy2HZmxNoXdG48DhawDkujESgD0beUXAk_LlZ0kGnS2328AQft2RjTdRXoA/s320/DSC_0144.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102930471563724354&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiziGDE36gAXdpQjgTTHJE_hs4Ir1NQqeGBUslIpy3wJ1LJuxBfebhmFARuEOR003uE1ewdrBDaBQbb4dFw84WgxXKgwJNF4Y4rJh91EoFk1RFWaLrbqV-dSUE-NZLzukWGfhg5FazFlv4/s1600-h/DSC_0143.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiziGDE36gAXdpQjgTTHJE_hs4Ir1NQqeGBUslIpy3wJ1LJuxBfebhmFARuEOR003uE1ewdrBDaBQbb4dFw84WgxXKgwJNF4Y4rJh91EoFk1RFWaLrbqV-dSUE-NZLzukWGfhg5FazFlv4/s320/DSC_0143.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102930325534836274&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR5u4HiofB66OBOWuwhhDsSy6njgyzzhSs1v-RlfxsPChTYPQUuoqkibbUK8PJMhEpv9dJRJ6dxF3xxTcOr5eq48r4Vb9gGN2ea_iSlj4EOgOg7GQF_zux0vxnjul4UiwWGmM_faBezrg/s1600-h/DSC_0123.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR5u4HiofB66OBOWuwhhDsSy6njgyzzhSs1v-RlfxsPChTYPQUuoqkibbUK8PJMhEpv9dJRJ6dxF3xxTcOr5eq48r4Vb9gGN2ea_iSlj4EOgOg7GQF_zux0vxnjul4UiwWGmM_faBezrg/s320/DSC_0123.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102930145146209826&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwJVGhM4f_u18mxJYPkKjMGU6GxKFOmkLVSSVv4JkaBjs6xjOlq1E8gOL1YLbotuSkb-SqixGk6ZxWhjdtaQoCAj-Acnq87pCCcESBI2VT1oWVUeeag74G53smzUsCd53riyvf9f_MRVE/s1600-h/DSC_0097.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwJVGhM4f_u18mxJYPkKjMGU6GxKFOmkLVSSVv4JkaBjs6xjOlq1E8gOL1YLbotuSkb-SqixGk6ZxWhjdtaQoCAj-Acnq87pCCcESBI2VT1oWVUeeag74G53smzUsCd53riyvf9f_MRVE/s320/DSC_0097.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102929964757583378&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7e5TZAeFfAi9Uibko4i7svPOVpcyw8tQv77PrbNalnVCQf2UC77voYF5dsphoShe6KK8v10jw7PM_1bdp3BUSe05uqvibky55ydOaK0lDVr1dU7LWvganoWxfn_zYtu5kIpeId7v5JsA/s1600-h/DSC_0096.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7e5TZAeFfAi9Uibko4i7svPOVpcyw8tQv77PrbNalnVCQf2UC77voYF5dsphoShe6KK8v10jw7PM_1bdp3BUSe05uqvibky55ydOaK0lDVr1dU7LWvganoWxfn_zYtu5kIpeId7v5JsA/s320/DSC_0096.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102929788663924226&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAFS6kwjptkvd4gd6UHG7q-tQuKM1LyKrPyoGLrP2pW0_jBkIwSIt9VM9lBUnLs__OGlY-BWWJK792ZT_50e2Qvd1BGACqOUIfZMeTxPgQoEv9OmRaqdRH56-48jVHmICjn9mNgBDu-f4/s1600-h/DSC_0068.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAFS6kwjptkvd4gd6UHG7q-tQuKM1LyKrPyoGLrP2pW0_jBkIwSIt9VM9lBUnLs__OGlY-BWWJK792ZT_50e2Qvd1BGACqOUIfZMeTxPgQoEv9OmRaqdRH56-48jVHmICjn9mNgBDu-f4/s320/DSC_0068.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102929646930003442&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmdGVI8A4Iap1gTFtCAi_uH5fP64nNxWv20kbtOQdHyerEYU0kMhCiX9WYyWCWgX4AZrcmOoHWwHAF77c_jNROTnSy6L3iZq4v4mGpjKc5y55gPexxubwPq6giygeLS-MjykQFIrACcJ0/s1600-h/DSC_0039.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmdGVI8A4Iap1gTFtCAi_uH5fP64nNxWv20kbtOQdHyerEYU0kMhCiX9WYyWCWgX4AZrcmOoHWwHAF77c_jNROTnSy6L3iZq4v4mGpjKc5y55gPexxubwPq6giygeLS-MjykQFIrACcJ0/s320/DSC_0039.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102929526670919138&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3b0HtFUanCaqxFKEWCp6r4RjCKAVGZZ7C6HO9RtbnYvLSQs5DsIab-wlNMXrmA5ZBxUqaWRD0EDAdzQC3ViI3bEUmOgqO9bNYTtDrTNVIaIl25Jn_xGPhi1Z2Bd3RWHMnoGAMZUZjReg/s1600-h/DSC_0027.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3b0HtFUanCaqxFKEWCp6r4RjCKAVGZZ7C6HO9RtbnYvLSQs5DsIab-wlNMXrmA5ZBxUqaWRD0EDAdzQC3ViI3bEUmOgqO9bNYTtDrTNVIaIl25Jn_xGPhi1Z2Bd3RWHMnoGAMZUZjReg/s320/DSC_0027.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102929393526932946&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha4TfJaN5UeRO95FFOd7qec-YBmI9onluBVZjP-VEJC7P3H4tB5XeKDpRmCkayG-eAfrEfRtdKSbJ0j21BqoTESy4S7HskCtS-lspkD_WD4E3xsKeRu9wlIstGC6QcDAgFXTg09gCZqvc/s1600-h/DSC_0022.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha4TfJaN5UeRO95FFOd7qec-YBmI9onluBVZjP-VEJC7P3H4tB5XeKDpRmCkayG-eAfrEfRtdKSbJ0j21BqoTESy4S7HskCtS-lspkD_WD4E3xsKeRu9wlIstGC6QcDAgFXTg09gCZqvc/s320/DSC_0022.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102929148713797058&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO8wpE8BDOHNNG9kxb89wOBUTJsHkFcdAH7QnEuVNTV6rVr9xb91SZdn1xRHJzC28Ppe-AUYSHQDrNGhD2Mj_qzJq36h1TPZ1D1kcs3T_m-KGyuVcbmXGA8Tg_QUSf9hzOZry6Q9JsNik/s1600-h/3DSC_0018.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO8wpE8BDOHNNG9kxb89wOBUTJsHkFcdAH7QnEuVNTV6rVr9xb91SZdn1xRHJzC28Ppe-AUYSHQDrNGhD2Mj_qzJq36h1TPZ1D1kcs3T_m-KGyuVcbmXGA8Tg_QUSf9hzOZry6Q9JsNik/s320/3DSC_0018.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102928886720791986&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu3m1ls2N-U2IGC90yfGJrijcVjOHdCT57Wwz8KvGBIhWEV4lwDdY4ScIDYFEoCIhY3lixSyedm8LK156wuTG9aaFCAxCQMjVWmIe2zHECeSyz0cbBRAE7rgXECF4xknPEiDbMPkGn6t4/s1600-h/2DSC_0007.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu3m1ls2N-U2IGC90yfGJrijcVjOHdCT57Wwz8KvGBIhWEV4lwDdY4ScIDYFEoCIhY3lixSyedm8LK156wuTG9aaFCAxCQMjVWmIe2zHECeSyz0cbBRAE7rgXECF4xknPEiDbMPkGn6t4/s320/2DSC_0007.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102928422864324002&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI8QOuQHQLV7M63owKPm8h5o0UnW8fgxRLpWwFkqkOy8XFI_XE3XRxyJMlRJ4QTTkfnY2EWt48F113btszW0kYt3n4N92eT_J7wtRqMCXf0SngR_-79rABg3DcVxPQvHPU5U9UCmIBYKg/s1600-h/1DSC_0127.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI8QOuQHQLV7M63owKPm8h5o0UnW8fgxRLpWwFkqkOy8XFI_XE3XRxyJMlRJ4QTTkfnY2EWt48F113btszW0kYt3n4N92eT_J7wtRqMCXf0SngR_-79rABg3DcVxPQvHPU5U9UCmIBYKg/s320/1DSC_0127.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5102928178051188114&quot; /&gt;&lt;/a&gt;</description><link>http://gviz.blogspot.com/2007/08/trip-to-nandi-hills-bangalore.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIZxbtliXf1fq_5_371qhPXyCkgxJX3t2AT99dG8Y38AZ4pRCl2xZwq65m7gge8Os6Zocr2pH0-eaCbJoGGlpLNRB4YhD8o8RCNRESHaBhV43dQnOXsDPVe71Ss4F2W0cc2SJZfjuxKoU/s72-c/DSC_0203.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7865284935253612822.post-8224742736580446397</guid><pubDate>Mon, 20 Aug 2007 19:22:00 +0000</pubDate><atom:updated>2007-08-20T12:35:05.149-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Debugging</category><title>Fun Debugging With GDB</title><description>Macro support in GDB could be used to write scripts which can automate most of the repetitive tasks during debugging.I recently came across one such GDB initialization script which contains some very useful functions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1zYXMxzxT3mPsNKpA5cDdw45OUVNPT4Z4CBDs0bmEiPCcd3mL8tCZzEP44cDNb1x7b3lpV3o73GUmCLZJgD3Wp8hz6cCL8azshtHCu9LIFEt1u5JjkRQ9l7oUkRRlvlHUSSvLL3SuSI0/s1600-h/gdb.JPG&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1zYXMxzxT3mPsNKpA5cDdw45OUVNPT4Z4CBDs0bmEiPCcd3mL8tCZzEP44cDNb1x7b3lpV3o73GUmCLZJgD3Wp8hz6cCL8azshtHCu9LIFEt1u5JjkRQ9l7oUkRRlvlHUSSvLL3SuSI0/s320/gdb.JPG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5100866452015187298&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;center&gt;&lt;b&gt;BreakPoint Information Display&lt;/b&gt;&lt;/center&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;br /&gt;# INSTRUCTIONS: save as ~/.gdbinit&lt;br /&gt;#&lt;br /&gt;# DESCRIPTION: A cracker-friendly gdb configuration file.&lt;br /&gt;#&lt;br /&gt;# REVISION : 6.1 &lt;br /&gt;# &lt;br /&gt;# CONTRIBUTORS: mammon_, elaine, pusillus, mong&lt;br /&gt;#&lt;br /&gt;# FEEDBACK: http://board.anticrack.de/viewforum.php?f=35&lt;br /&gt;# &lt;br /&gt;# NOTES: &#39;help user&#39; in gdb will list the commands/descriptions in this file&lt;br /&gt;#        &#39;context on&#39; now enables auto-display of context screen&lt;br /&gt;#&lt;br /&gt;# CHANGELOG:&lt;br /&gt;# Version 6.1&lt;br /&gt;#        fixed filename in step_to_call so it points to /dev/null&lt;br /&gt;#        changed location of logfiles from /tmp  to ~&lt;br /&gt;# Version 6&lt;br /&gt;#  added print_insn_type, get_insn_type, context-on, context-off commands&lt;br /&gt;#  added trace_calls, trace_run, step_to_call commands&lt;br /&gt;#  changed hook-stop so it checks $SHOW_CONTEXT variable&lt;br /&gt;# Version 5&lt;br /&gt;#  added bpm, dump_bin, dump_hex, bp_alloc commands&lt;br /&gt;#        added &#39;assemble&#39; by elaine, &#39;gas_asm&#39; by mong&lt;br /&gt;#  added Tip Topics for aspiring crackers ;)&lt;br /&gt;#  Version 4&lt;br /&gt;#  added eflags-changing insns by pusillus&lt;br /&gt;#  added bp, nop, null, and int3 patch commands, also hook-stop&lt;br /&gt;# Version 3&lt;br /&gt;#  incorporated elaine&#39;s if/else goodness into the hex/ascii dump&lt;br /&gt;# Version 2&lt;br /&gt;#  radix bugfix by elaine&lt;br /&gt;# TODO:&lt;br /&gt;# * add global vars to allow user to control stack,data,code win sizes&lt;br /&gt;# * add dump, append, set write, etc commands&lt;br /&gt;# * more tips!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# ______________breakpoint aliases_____________&lt;br /&gt;define bpl&lt;br /&gt; info breakpoints&lt;br /&gt;end&lt;br /&gt;document bpl&lt;br /&gt;List breakpoints&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define bp&lt;br /&gt; set $SHOW_CONTEXT = 1&lt;br /&gt; break * $arg0&lt;br /&gt;end&lt;br /&gt;document bp&lt;br /&gt;Set a breakpoint on address&lt;br /&gt;Usage: bp addr&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define bpc &lt;br /&gt; clear $arg0&lt;br /&gt;end&lt;br /&gt;document bpc&lt;br /&gt;Clear breakpoint at function/address&lt;br /&gt;Usage: bpc addr&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define bpe&lt;br /&gt; enable $arg0&lt;br /&gt;end&lt;br /&gt;document bpe&lt;br /&gt;Enable breakpoint #&lt;br /&gt;Usage: bpe num&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define bpd&lt;br /&gt; disable $arg0&lt;br /&gt;end&lt;br /&gt;document bpd&lt;br /&gt;Disable breakpoint #&lt;br /&gt;Usage: bpd num&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define bpt&lt;br /&gt; set $SHOW_CONTEXT = 1&lt;br /&gt; tbreak $arg0&lt;br /&gt;end&lt;br /&gt;document bpt&lt;br /&gt;Set a temporary breakpoint on address&lt;br /&gt;Usage: bpt addr&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define bpm&lt;br /&gt; set $SHOW_CONTEXT = 1&lt;br /&gt; awatch $arg0&lt;br /&gt;end&lt;br /&gt;document bpm&lt;br /&gt;Set a read/write breakpoint on address&lt;br /&gt;Usage: bpm addr&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define bhb&lt;br /&gt; set $SHOW_CONTEXT = 1&lt;br /&gt; hb * $arg0&lt;br /&gt;end&lt;br /&gt;document bhb&lt;br /&gt;Set Hardware Assisted breakpoint on address&lt;br /&gt;Usage: bhb addr&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;# ______________process information____________&lt;br /&gt;define argv&lt;br /&gt; show args&lt;br /&gt;end&lt;br /&gt;document argv&lt;br /&gt;Print program arguments&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define stack&lt;br /&gt; info stack&lt;br /&gt;end&lt;br /&gt;document stack&lt;br /&gt;Print call stack&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define frame&lt;br /&gt; info frame&lt;br /&gt; info args&lt;br /&gt; info locals&lt;br /&gt;end&lt;br /&gt;document frame&lt;br /&gt;Print stack frame&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define flags&lt;br /&gt; if (($eflags &gt;&gt; 0xB) &amp; 1 )&lt;br /&gt;  printf &quot;O &quot;&lt;br /&gt; else&lt;br /&gt;  printf &quot;o &quot;&lt;br /&gt; end&lt;br /&gt; if (($eflags &gt;&gt; 0xA) &amp; 1 )&lt;br /&gt;  printf &quot;D &quot;&lt;br /&gt; else&lt;br /&gt;  printf &quot;d &quot;&lt;br /&gt; end&lt;br /&gt; if (($eflags &gt;&gt; 9) &amp; 1 )&lt;br /&gt;  printf &quot;I &quot;&lt;br /&gt; else&lt;br /&gt;  printf &quot;i &quot;&lt;br /&gt; end&lt;br /&gt; if (($eflags &gt;&gt; 8) &amp; 1 )&lt;br /&gt;  printf &quot;T &quot;&lt;br /&gt; else&lt;br /&gt;  printf &quot;t &quot;&lt;br /&gt; end&lt;br /&gt; if (($eflags &gt;&gt; 7) &amp; 1 )&lt;br /&gt;  printf &quot;S &quot;&lt;br /&gt; else&lt;br /&gt;  printf &quot;s &quot;&lt;br /&gt; end&lt;br /&gt; if (($eflags &gt;&gt; 6) &amp; 1 )&lt;br /&gt;  printf &quot;Z &quot;&lt;br /&gt; else&lt;br /&gt;  printf &quot;z &quot;&lt;br /&gt; end&lt;br /&gt; if (($eflags &gt;&gt; 4) &amp; 1 )&lt;br /&gt;  printf &quot;A &quot;&lt;br /&gt; else&lt;br /&gt;  printf &quot;a &quot;&lt;br /&gt; end&lt;br /&gt; if (($eflags &gt;&gt; 2) &amp; 1 )&lt;br /&gt;  printf &quot;P &quot;&lt;br /&gt; else&lt;br /&gt;  printf &quot;p &quot;&lt;br /&gt; end&lt;br /&gt; if ($eflags &amp; 1)&lt;br /&gt;  printf &quot;C &quot;&lt;br /&gt; else&lt;br /&gt;  printf &quot;c &quot;&lt;br /&gt; end&lt;br /&gt; printf &quot;\n&quot;&lt;br /&gt;end&lt;br /&gt;document flags&lt;br /&gt;Print flags register&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define eflags&lt;br /&gt; printf &quot;     OF &lt;%d&gt;  DF &lt;%d&gt;  IF &lt;%d&gt;  TF &lt;%d&gt;&quot;,\&lt;br /&gt;        (($eflags &gt;&gt; 0xB) &amp; 1 ), (($eflags &gt;&gt; 0xA) &amp; 1 ), \&lt;br /&gt;        (($eflags &gt;&gt; 9) &amp; 1 ), (($eflags &gt;&gt; 8) &amp; 1 )&lt;br /&gt; printf &quot;  SF &lt;%d&gt;  ZF &lt;%d&gt;  AF &lt;%d&gt;  PF &lt;%d&gt;  CF &lt;%d&gt;\n&quot;,\&lt;br /&gt;        (($eflags &gt;&gt; 7) &amp; 1 ), (($eflags &gt;&gt; 6) &amp; 1 ),\&lt;br /&gt;        (($eflags &gt;&gt; 4) &amp; 1 ), (($eflags &gt;&gt; 2) &amp; 1 ), ($eflags &amp; 1)&lt;br /&gt; printf &quot;     ID &lt;%d&gt;  VIP &lt;%d&gt; VIF &lt;%d&gt; AC &lt;%d&gt;&quot;,\&lt;br /&gt;        (($eflags &gt;&gt; 0x15) &amp; 1 ), (($eflags &gt;&gt; 0x14) &amp; 1 ), \&lt;br /&gt;        (($eflags &gt;&gt; 0x13) &amp; 1 ), (($eflags &gt;&gt; 0x12) &amp; 1 )&lt;br /&gt; printf &quot;  VM &lt;%d&gt;  RF &lt;%d&gt;  NT &lt;%d&gt;  IOPL &lt;%d&gt;\n&quot;,\&lt;br /&gt;        (($eflags &gt;&gt; 0x11) &amp; 1 ), (($eflags &gt;&gt; 0x10) &amp; 1 ),\&lt;br /&gt;        (($eflags &gt;&gt; 0xE) &amp; 1 ), (($eflags &gt;&gt; 0xC) &amp; 3 )&lt;br /&gt;end&lt;br /&gt;document eflags&lt;br /&gt;Print entire eflags register&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define reg&lt;br /&gt; printf &quot;     eax:%08X ebx:%08X  ecx:%08X &quot;,  $eax, $ebx, $ecx&lt;br /&gt; printf &quot; edx:%08X     eflags:%08X\n&quot;,  $edx, $eflags&lt;br /&gt; printf &quot;     esi:%08X edi:%08X  esp:%08X &quot;,  $esi, $edi, $esp&lt;br /&gt; printf &quot; ebp:%08X     eip:%08X\n&quot;, $ebp, $eip&lt;br /&gt; printf &quot;     cs:%04X  ds:%04X  es:%04X&quot;, $cs, $ds, $es&lt;br /&gt; printf &quot;  fs:%04X  gs:%04X  ss:%04X    &quot;, $fs, $gs, $ss&lt;br /&gt; echo \033[31m&lt;br /&gt; flags&lt;br /&gt; echo \033[0m&lt;br /&gt;end&lt;br /&gt;document reg&lt;br /&gt;Print CPU registers&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define func&lt;br /&gt; info functions&lt;br /&gt;end&lt;br /&gt;document func&lt;br /&gt;Print functions in target&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define var&lt;br /&gt; info variables&lt;br /&gt;end&lt;br /&gt;document var&lt;br /&gt;Print variables (symbols) in target&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define lib&lt;br /&gt; info sharedlibrary&lt;br /&gt;end&lt;br /&gt;document lib&lt;br /&gt;Print shared libraries linked to target&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define sig&lt;br /&gt; info signals&lt;br /&gt;end&lt;br /&gt;document sig&lt;br /&gt;Print signal actions for target&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define thread&lt;br /&gt; info threads&lt;br /&gt;end&lt;br /&gt;document thread&lt;br /&gt;Print threads in target&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define u&lt;br /&gt; info udot&lt;br /&gt;end&lt;br /&gt;document u&lt;br /&gt;Print kernel &#39;user&#39; struct for target&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define dis&lt;br /&gt; disassemble $arg0&lt;br /&gt;end&lt;br /&gt;document dis&lt;br /&gt;Disassemble address&lt;br /&gt;Usage: dis addr&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;# ________________hex/ascii dump an address______________&lt;br /&gt;define ascii_char&lt;br /&gt; # thanks elaine :)&lt;br /&gt; set $_c=*(unsigned char *)($arg0)&lt;br /&gt; if ( $_c &lt; 0x20 || $_c &gt; 0x7E )&lt;br /&gt;  printf &quot;.&quot;&lt;br /&gt; else&lt;br /&gt;  printf &quot;%c&quot;, $_c&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;document ascii_char&lt;br /&gt;Print the ASCII value of arg0 or &#39;.&#39; if value is unprintable&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define hex_quad&lt;br /&gt; printf &quot;%02X %02X %02X %02X  %02X %02X %02X %02X&quot;,                          \&lt;br /&gt;  *(unsigned char*)($arg0), *(unsigned char*)($arg0 + 1),      \&lt;br /&gt;  *(unsigned char*)($arg0 + 2), *(unsigned char*)($arg0 + 3),  \&lt;br /&gt;  *(unsigned char*)($arg0 + 4), *(unsigned char*)($arg0 + 5),  \&lt;br /&gt;  *(unsigned char*)($arg0 + 6), *(unsigned char*)($arg0 + 7)&lt;br /&gt;end&lt;br /&gt;document hex_quad&lt;br /&gt;Print eight hexadecimal bytes starting at arg0&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define hexdump&lt;br /&gt; printf &quot;%08X : &quot;, $arg0&lt;br /&gt; hex_quad $arg0&lt;br /&gt; printf &quot; - &quot;&lt;br /&gt; hex_quad ($arg0+8)&lt;br /&gt; printf &quot; &quot;&lt;br /&gt;&lt;br /&gt; ascii_char ($arg0)&lt;br /&gt; ascii_char ($arg0+1)&lt;br /&gt; ascii_char ($arg0+2)&lt;br /&gt; ascii_char ($arg0+3)&lt;br /&gt; ascii_char ($arg0+4)&lt;br /&gt; ascii_char ($arg0+5)&lt;br /&gt; ascii_char ($arg0+6)&lt;br /&gt; ascii_char ($arg0+7)&lt;br /&gt; ascii_char ($arg0+8)&lt;br /&gt; ascii_char ($arg0+9)&lt;br /&gt; ascii_char ($arg0+0xA)&lt;br /&gt; ascii_char ($arg0+0xB)&lt;br /&gt; ascii_char ($arg0+0xC)&lt;br /&gt; ascii_char ($arg0+0xD)&lt;br /&gt; ascii_char ($arg0+0xE)&lt;br /&gt; ascii_char ($arg0+0xF)&lt;br /&gt;&lt;br /&gt; printf &quot;\n&quot;&lt;br /&gt;end&lt;br /&gt;document hexdump&lt;br /&gt;Display a 16-byte hex/ASCII dump of arg0&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;# ________________data window__________________&lt;br /&gt;define ddump&lt;br /&gt; echo \033[36m&lt;br /&gt;&lt;br /&gt; printf &quot;[%04X:%08X]------------------------&quot;, $ds, $data_addr&lt;br /&gt; printf &quot;---------------------------------[ data]\n&quot;&lt;br /&gt; echo \033[34m&lt;br /&gt; set $_count=0&lt;br /&gt; while ( $_count &lt; $arg0 )&lt;br /&gt;  set $_i=($_count*0x10)&lt;br /&gt;  hexdump ($data_addr+$_i)&lt;br /&gt;  set $_count++&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;document ddump&lt;br /&gt;Display $arg0 lines of hexdump for address $data_addr&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define dd&lt;br /&gt; if ( ($arg0 &amp; 0x40000000) || ($arg0 &amp; 0x08000000) || ($arg0 &amp; 0xBF000000) )&lt;br /&gt;  set $data_addr=$arg0&lt;br /&gt;  ddump 0x10&lt;br /&gt; else&lt;br /&gt;  printf &quot;Invalid address: %08X\n&quot;, $arg0&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;document dd&lt;br /&gt;Display 16 lines of a hex dump for $arg0&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define datawin&lt;br /&gt; if ( ($esi &amp; 0x40000000) || ($esi &amp; 0x08000000) || ($esi &amp; 0xBF000000) )&lt;br /&gt;  set $data_addr=$esi&lt;br /&gt; else&lt;br /&gt;  if ( ($edi &amp; 0x40000000) || ($edi &amp; 0x08000000) || ($edi &amp; 0xBF000000) )&lt;br /&gt;   set $data_addr=$edi&lt;br /&gt;  else&lt;br /&gt;   if ( ($eax &amp; 0x40000000) || ($eax &amp; 0x08000000) || \&lt;br /&gt;        ($eax &amp; 0xBF000000) )&lt;br /&gt;&lt;br /&gt;    set $data_addr=$eax&lt;br /&gt;   else&lt;br /&gt;    set $data_addr=$esp&lt;br /&gt;   end&lt;br /&gt;  end&lt;br /&gt; end&lt;br /&gt; ddump 2&lt;br /&gt;end&lt;br /&gt;document datawin&lt;br /&gt;Display esi, edi, eax, or esp in data window&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;# ________________process context______________&lt;br /&gt;define context&lt;br /&gt; echo \033[36m&lt;br /&gt; printf &quot;----------------------------------------&quot;&lt;br /&gt; printf &quot;---------------------------------[ regs]\n&quot;&lt;br /&gt; echo \033[32m&lt;br /&gt; reg&lt;br /&gt; echo \033[36m&lt;br /&gt; printf &quot;[%04X:%08X]------------------------&quot;, $ss, $esp&lt;br /&gt; printf &quot;---------------------------------[stack]\n&quot;&lt;br /&gt; echo \033[34m&lt;br /&gt; hexdump $sp+0x30&lt;br /&gt; hexdump $sp+0x20&lt;br /&gt; hexdump $sp+0x10&lt;br /&gt; hexdump $sp&lt;br /&gt; datawin&lt;br /&gt; echo \033[36m&lt;br /&gt; printf &quot;[%04X:%08X]------------------------&quot;, $cs, $eip&lt;br /&gt; printf &quot;---------------------------------[ code]\n&quot;&lt;br /&gt; echo \033[37m&lt;br /&gt; x /6i $pc&lt;br /&gt; echo \033[36m&lt;br /&gt; printf &quot;---------------------------------------&quot;&lt;br /&gt; printf &quot;----------------------------------------\n&quot;&lt;br /&gt; echo \033[0m&lt;br /&gt;end&lt;br /&gt;document context&lt;br /&gt;Print regs, stack, ds:esi, and disassemble cs:eip&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define context-on&lt;br /&gt; set $SHOW_CONTEXT = 1&lt;br /&gt;end&lt;br /&gt;document context-on&lt;br /&gt;Enable display of context on every program stop&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define context-off&lt;br /&gt; set $SHOW_CONTEXT = 1&lt;br /&gt;end&lt;br /&gt;document context-on&lt;br /&gt;Disable display of context on every program stop&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;# ________________process control______________&lt;br /&gt;define n&lt;br /&gt; ni&lt;br /&gt;end&lt;br /&gt;document n&lt;br /&gt;Step one instruction&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define go&lt;br /&gt; stepi $arg0&lt;br /&gt;end&lt;br /&gt;document go&lt;br /&gt;Step # instructions&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define pret&lt;br /&gt; finish&lt;br /&gt;end&lt;br /&gt;document pret&lt;br /&gt;Step out of current call&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define init&lt;br /&gt; set $SHOW_CONTEXT = 1&lt;br /&gt; set $SHOW_NEST_INSN=0&lt;br /&gt; tbreak _init&lt;br /&gt; r&lt;br /&gt;end&lt;br /&gt;document init&lt;br /&gt;Run program; break on _init()&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define start&lt;br /&gt; set $SHOW_CONTEXT = 1&lt;br /&gt; set $SHOW_NEST_INSN=0&lt;br /&gt; tbreak _start&lt;br /&gt; r&lt;br /&gt;end&lt;br /&gt;document start&lt;br /&gt;Run program; break on _start()&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define sstart&lt;br /&gt; set $SHOW_CONTEXT = 1&lt;br /&gt; set $SHOW_NEST_INSN=0&lt;br /&gt; tbreak __libc_start_main&lt;br /&gt; r&lt;br /&gt;end&lt;br /&gt;document sstart&lt;br /&gt;Run program; break on __libc_start_main(). Useful for stripped executables.&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define main&lt;br /&gt; set $SHOW_CONTEXT = 1&lt;br /&gt; set $SHOW_NEST_INSN=0&lt;br /&gt; tbreak main&lt;br /&gt; r&lt;br /&gt;end&lt;br /&gt;document main&lt;br /&gt;Run program; break on main()&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;# ________________eflags commands_______________&lt;br /&gt;define cfc&lt;br /&gt; if ($eflags &amp; 1)&lt;br /&gt;  set $eflags = $eflags&amp;~1&lt;br /&gt; else&lt;br /&gt;  set $eflags = $eflags|1&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;document cfc&lt;br /&gt;change Carry Flag&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define cfp&lt;br /&gt; if (($eflags &gt;&gt; 2) &amp; 1 )&lt;br /&gt;  set $eflags = $eflags&amp;~0x4&lt;br /&gt; else&lt;br /&gt;  set $eflags = $eflags|0x4&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;document cfp&lt;br /&gt;change Carry Flag&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define cfa&lt;br /&gt; if (($eflags &gt;&gt; 4) &amp; 1 )&lt;br /&gt;  set $eflags = $eflags&amp;~0x10&lt;br /&gt; else&lt;br /&gt;  set $eflags = $eflags|0x10&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;document cfa&lt;br /&gt;change Auxiliary Carry Flag&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define cfz&lt;br /&gt; if (($eflags &gt;&gt; 6) &amp; 1 )&lt;br /&gt;  set $eflags = $eflags&amp;~0x40&lt;br /&gt; else&lt;br /&gt;  set $eflags = $eflags|0x40&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;document cfz&lt;br /&gt;change Zero Flag&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define cfs&lt;br /&gt; if (($eflags &gt;&gt; 7) &amp; 1 )&lt;br /&gt;  set $eflags = $eflags&amp;~0x80&lt;br /&gt; else&lt;br /&gt;  set $eflags = $eflags|0x80&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;document cfs&lt;br /&gt;change Sign Flag&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define cft&lt;br /&gt; if (($eflags &gt;&gt;8) &amp; 1 )&lt;br /&gt;  set $eflags = $eflags&amp;100&lt;br /&gt; else&lt;br /&gt;  set $eflags = $eflags|100&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;document cft&lt;br /&gt;change Trap Flag&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define cfi&lt;br /&gt; if (($eflags &gt;&gt; 9) &amp; 1 )&lt;br /&gt;  set $eflags = $eflags&amp;~0x200&lt;br /&gt; else&lt;br /&gt;  set $eflags = $eflags|0x200&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;document cfi&lt;br /&gt;change Interrupt Flag&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define cfd&lt;br /&gt; if (($eflags &gt;&gt;0xA ) &amp; 1 )&lt;br /&gt;  set $eflags = $eflags&amp;~0x400&lt;br /&gt; else&lt;br /&gt;  set $eflags = $eflags|0x400&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;document cfd&lt;br /&gt;change Direction Flag&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define cfo&lt;br /&gt; if (($eflags &gt;&gt; 0xB) &amp; 1 )&lt;br /&gt;  set $eflags = $eflags&amp;~0x800&lt;br /&gt; else&lt;br /&gt;  set $eflags = $eflags|0x800&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;document cfo&lt;br /&gt;change Overflow Flag&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;# --------------------patch---------------------&lt;br /&gt;define nop&lt;br /&gt; set * (unsigned char *) $arg0 = 0x90&lt;br /&gt;end&lt;br /&gt;document nop&lt;br /&gt;Patch byte at address arg0 to a NOP insn&lt;br /&gt;Usage: nop addr&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define null&lt;br /&gt; set * (unsigned char *) $arg0 = 0&lt;br /&gt;end&lt;br /&gt;document null&lt;br /&gt;Patch byte at address arg0 to  NULL&lt;br /&gt;Usage: null addr&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define int3&lt;br /&gt; set * (unsigned char *) $arg0 = 0xCC&lt;br /&gt;end&lt;br /&gt;document int3&lt;br /&gt;Patch byte at address arg0 to an INT3 insn&lt;br /&gt;Usage: int3 addr&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;# --------------------cflow---------------------&lt;br /&gt;define print_insn_type&lt;br /&gt; if ($arg0 == 0)&lt;br /&gt;  printf &quot;UNKNOWN&quot;;&lt;br /&gt; end&lt;br /&gt; if ($arg0 == 1)&lt;br /&gt;  printf &quot;JMP&quot;;&lt;br /&gt; end&lt;br /&gt; if ($arg0 == 2)&lt;br /&gt;  printf &quot;JCC&quot;;&lt;br /&gt; end&lt;br /&gt; if ($arg0 == 3)&lt;br /&gt;  printf &quot;CALL&quot;;&lt;br /&gt; end&lt;br /&gt; if ($arg0 == 4)&lt;br /&gt;  printf &quot;RET&quot;;&lt;br /&gt; end&lt;br /&gt; if ($arg0 == 5)&lt;br /&gt;  printf &quot;INT&quot;;&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;document print_insn_type&lt;br /&gt;This prints the human-readable mnemonic for the instruction typed passed as&lt;br /&gt;a parameter (usually $INSN_TYPE).&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define get_insn_type&lt;br /&gt; set $INSN_TYPE = 0&lt;br /&gt; set $_byte1=*(unsigned char *)$arg0&lt;br /&gt; if ($_byte1 == 0x9A || $_byte1 == 0xE8 )&lt;br /&gt;  # &quot;call&quot;&lt;br /&gt;  set $INSN_TYPE=3&lt;br /&gt; end&lt;br /&gt; if ($_byte1 &gt;= 0xE9 &amp;&amp; $_byte1 &lt;= 0xEB)&lt;br /&gt;  # &quot;jmp&quot;&lt;br /&gt;  set $INSN_TYPE=1&lt;br /&gt; end&lt;br /&gt; if ($_byte1 &gt;= 0x70 &amp;&amp; $_byte1 &lt;= 0x7F)&lt;br /&gt;  # &quot;jcc&quot;&lt;br /&gt;  set $INSN_TYPE=2&lt;br /&gt; end&lt;br /&gt; if ($_byte1 &gt;= 0xE0 &amp;&amp; $_byte1 &lt;= 0xE3 )&lt;br /&gt;  # &quot;jcc&quot;&lt;br /&gt;  set $INSN_TYPE=2&lt;br /&gt; end&lt;br /&gt; if ($_byte1 == 0xC2 || $_byte1 == 0xC3 || $_byte1 == 0xCA || $_byte1 == 0xCB || $_byte1 == 0xCF)&lt;br /&gt;  # &quot;ret&quot;&lt;br /&gt;  set $INSN_TYPE=4  &lt;br /&gt; end&lt;br /&gt; if ($_byte1 &gt;= 0xCC &amp;&amp; $_byte1 &lt;= 0xCE)&lt;br /&gt;  # &quot;int&quot;&lt;br /&gt;  set $INSN_TYPE=5&lt;br /&gt; end&lt;br /&gt; if ($_byte1 == 0x0F )&lt;br /&gt;  # two-byte opcode&lt;br /&gt;  set $_byte2=*(unsigned char *)($arg0 +1)&lt;br /&gt;  if ($_byte2 &gt;= 0x80 &amp;&amp; $_byte2 &lt;= 0x8F)&lt;br /&gt;   # &quot;jcc&quot;&lt;br /&gt;   set $INSN_TYPE=2&lt;br /&gt;  end&lt;br /&gt; end&lt;br /&gt; if ($_byte1 == 0xFF ) &lt;br /&gt;  # opcode extension&lt;br /&gt;  set $_byte2=*(unsigned char *)($arg0 +1)&lt;br /&gt;  set $_opext=($_byte2 &amp; 0x38)&lt;br /&gt;  if ($_opext == 0x10 || $_opext == 0x18) &lt;br /&gt;   # &quot;call&quot;&lt;br /&gt;   set $INSN_TYPE=3&lt;br /&gt;  end&lt;br /&gt;  if ($_opext == 0x20 || $_opext == 0x28)&lt;br /&gt;   # &quot;jmp&quot;&lt;br /&gt;   set $INSN_TYPE=1&lt;br /&gt;  end&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;document get_insn_type&lt;br /&gt;This takes an address as a parameter and sets the global $INSN_TYPE variable&lt;br /&gt;to 0, 1, 2, 3, 4, 5 if the instruction at the address is unknown, a jump,&lt;br /&gt;a conditional jump, a call, a return, or an interrupt.&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define step_to_call&lt;br /&gt; set $_saved_ctx = $SHOW_CONTEXT&lt;br /&gt; set $SHOW_CONTEXT = 0&lt;br /&gt; set $SHOW_NEST_INSN=0&lt;br /&gt; set logging file /dev/null&lt;br /&gt; set logging on&lt;br /&gt; set logging redirect on&lt;br /&gt; set $_cont = 1&lt;br /&gt;&lt;br /&gt; while ( $_cont &gt; 0 )&lt;br /&gt;  stepi&lt;br /&gt;  get_insn_type $pc&lt;br /&gt;  if ($INSN_TYPE == 3)&lt;br /&gt;   set $_cont = 0&lt;br /&gt;  end&lt;br /&gt; end&lt;br /&gt;&lt;br /&gt; if ( $_saved_ctx &gt; 0 )&lt;br /&gt;  context&lt;br /&gt; else&lt;br /&gt;  x /i $pc&lt;br /&gt; end&lt;br /&gt;&lt;br /&gt; set $SHOW_CONTEXT = 1&lt;br /&gt; set $SHOW_NEST_INSN=0&lt;br /&gt; set logging redirect off&lt;br /&gt; set logging off&lt;br /&gt; set logging file gdb.txt&lt;br /&gt;end&lt;br /&gt;document step_to_call&lt;br /&gt;This single steps until it encounters a call instruction; it stops before&lt;br /&gt;the call is taken.&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define trace_calls&lt;br /&gt; set $SHOW_CONTEXT = 0&lt;br /&gt; set $SHOW_NEST_INSN=0&lt;br /&gt; set $_nest = 1&lt;br /&gt; set listsize 0&lt;br /&gt; set logging overwrite on&lt;br /&gt; set logging file ~/gdb_trace_calls.txt&lt;br /&gt; set logging on&lt;br /&gt; set logging redirect on&lt;br /&gt; &lt;br /&gt; while ( $_nest &gt; 0 )&lt;br /&gt;  get_insn_type $pc&lt;br /&gt;&lt;br /&gt;  # handle nesting&lt;br /&gt;  if ($INSN_TYPE == 3)&lt;br /&gt;   set $_nest = $_nest + 1&lt;br /&gt;  else&lt;br /&gt;   if ($INSN_TYPE == 4)&lt;br /&gt;    set $_nest = $_nest - 1&lt;br /&gt;   end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  # if a call, print it&lt;br /&gt;  if ($INSN_TYPE == 3)&lt;br /&gt;   set $x = $_nest&lt;br /&gt;   while ( $x &gt; 0 )&lt;br /&gt;    printf &quot;\t&quot;&lt;br /&gt;    set $x = $x - 1&lt;br /&gt;   end&lt;br /&gt;   x /i $pc&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  #set logging file /dev/null&lt;br /&gt;  stepi&lt;br /&gt;  #set logging file ~/gdb_trace_calls.txt&lt;br /&gt; end&lt;br /&gt;&lt;br /&gt; set $SHOW_CONTEXT = 1&lt;br /&gt; set $SHOW_NEST_INSN=0&lt;br /&gt; set logging redirect off&lt;br /&gt; set logging off&lt;br /&gt; set logging file gdb.txt&lt;br /&gt; &lt;br /&gt; # clean up trace file&lt;br /&gt; shell  grep -v &#39; at &#39; ~/gdb_trace_calls.txt &gt; ~/gdb_trace_calls.1&lt;br /&gt; shell  grep -v &#39; in &#39; ~/gdb_trace_calls.1 &gt; ~/gdb_trace_calls.txt&lt;br /&gt;end&lt;br /&gt;document trace_calls&lt;br /&gt;Creates a runtime trace of the calls made target in ~/gdb_trace_calls.txt. &lt;br /&gt;Note that this is very slow because gdb &quot;set redirect on&quot; does not work!&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define trace_run&lt;br /&gt; set $SHOW_CONTEXT = 0&lt;br /&gt; set $SHOW_NEST_INSN=1&lt;br /&gt; set logging overwrite on&lt;br /&gt; set logging file ~/gdb_trace_run.txt&lt;br /&gt; set logging on&lt;br /&gt; set logging redirect on&lt;br /&gt; set $_nest = 1&lt;br /&gt;&lt;br /&gt; while ( $_nest &gt; 0 )&lt;br /&gt;&lt;br /&gt;  get_insn_type $pc&lt;br /&gt;  # jmp, jcc, or cll&lt;br /&gt;  if ($INSN_TYPE == 3)&lt;br /&gt;   set $_nest = $_nest + 1&lt;br /&gt;  else&lt;br /&gt;   # ret&lt;br /&gt;   if ($INSN_TYPE == 4)&lt;br /&gt;    set $_nest = $_nest - 1&lt;br /&gt;   end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  stepi&lt;br /&gt; end&lt;br /&gt;&lt;br /&gt; set $SHOW_CONTEXT = 1&lt;br /&gt; set $SHOW_NEST_INSN=0&lt;br /&gt; set logging file gdb.txt&lt;br /&gt; set logging redirect off&lt;br /&gt; set logging off&lt;br /&gt;&lt;br /&gt; # clean up trace file&lt;br /&gt; shell  grep -v &#39; at &#39; ~/gdb_trace_run.txt &gt; ~/gdb_trace_run.1&lt;br /&gt; shell  grep -v &#39; in &#39; ~/gdb_trace_run.1 &gt; ~/gdb_trace_run.txt&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;document trace_run&lt;br /&gt;Creates a runtime trace of the target in ~/gdb_trace_run.txt. Note&lt;br /&gt;that this is very slow because gdb &quot;set redirect on&quot; does not work!&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# _____________________misc_____________________&lt;br /&gt;# this makes &#39;context&#39; be called at every BP/step&lt;br /&gt;define hook-stop&lt;br /&gt; if ( $SHOW_CONTEXT &gt; 0 )&lt;br /&gt;  context&lt;br /&gt; end&lt;br /&gt; if ( $SHOW_NEST_INSN &gt; 0 )&lt;br /&gt;  set $x = $_nest&lt;br /&gt;  while ($x &gt; 0 )&lt;br /&gt;   printf &quot;\t&quot;&lt;br /&gt;   set $x = $x - 1&lt;br /&gt;  end&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define assemble&lt;br /&gt;printf &quot;Hit Ctrl-D to start, type code to assemble, hit Ctrl-D when done.\n&quot;&lt;br /&gt;printf &quot;It is recommended to start with\n&quot;&lt;br /&gt;printf &quot;\tBITS 32\n&quot;&lt;br /&gt;printf &quot;Note that this command uses NASM (Intel syntax) to assemble.\n&quot;&lt;br /&gt;shell nasm -f bin -o /dev/stdout /dev/stdin | od -v -t x1 -w16 -A n&lt;br /&gt;end&lt;br /&gt;document assemble&lt;br /&gt;Assemble Intel x86 instructions to binary opcodes. Uses nasm.&lt;br /&gt;Usage: assemble&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define gas_asm&lt;br /&gt;printf &quot;Type code to assemble, hit Ctrl-D until results appear :)\n&quot;&lt;br /&gt;printf &quot;Note that this command uses GAS (AT&amp;T syntax) to assemble.\n&quot;&lt;br /&gt;shell as -o ~/__gdb_tmp.bin&lt;br /&gt;shell objdump -d -j .text --adjust-vma=$arg0 ~/__gdb_tmp.bin &lt;br /&gt;shell rm ~/__gdb_tmp.bin&lt;br /&gt;end&lt;br /&gt;document gas_asm&lt;br /&gt;Assemble Intel x86 instructions to binary opcodes using gas and objdump&lt;br /&gt;Usage: gas_asm address&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;# !scary bp_alloc macro!&lt;br /&gt;# The idea behind this macro is to break on the following code:&lt;br /&gt;# 0x4008e0aa &lt;malloc+6&gt;:  sub    $0xc,%esp&lt;br /&gt;# 0x4008e0ad &lt;malloc+9&gt;:  call   0x4008e0b2 &lt;malloc+14&gt;&lt;br /&gt;# 0x4008e0b2 &lt;malloc+14&gt;: pop    %ebx&lt;br /&gt;# 0x4008e0b3 &lt;malloc+15&gt;: add    $0xa3f6e,%ebx&lt;br /&gt;# At 0x4008e0b3, %ebx contains the address that has just been allocated&lt;br /&gt;# The bp_alloc macro generates this breakpoint and *should* work for&lt;br /&gt;# the forseeable future ... but if it breaks, set a breakpoint on &lt;br /&gt;# __libc_malloc and look for where where the return value gets popped.&lt;br /&gt;&lt;br /&gt;define bp_alloc&lt;br /&gt; tbreak *(*__libc_malloc + F) if $ebx == $arg0&lt;br /&gt;end&lt;br /&gt;document bp_alloc&lt;br /&gt;This sets a temporary breakpoint on the allocation of $arg0.&lt;br /&gt;It works by setting a breakpoint on a specific address in __libc_malloc().&lt;br /&gt;USE WITH CAUTION -- it is extremely platform dependent.&lt;br /&gt;Usage: bp_alloc addr&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define dump_hexfile&lt;br /&gt; dump ihex memory $arg0 $arg1 $arg2&lt;br /&gt;end&lt;br /&gt;document dump_hexfile&lt;br /&gt;Write a range of memory to a file in Intel ihex (hexdump) format.&lt;br /&gt;Usage: dump_hexfile filename start_addr end_addr&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define dump_binfile&lt;br /&gt; dump memory $arg0 $arg1 $arg2&lt;br /&gt;end&lt;br /&gt;document dump_binfile&lt;br /&gt;Write a range of memory to a binary file.&lt;br /&gt;Usage: dump_binfile filename start_addr end_addr&lt;br /&gt;end&lt;br /&gt; &lt;br /&gt;# _________________cracker tips_________________&lt;br /&gt;# The &#39;tips&#39; command is used to provide tutorial-like info to the user&lt;br /&gt;define tips&lt;br /&gt; printf &quot;Tip Topic Commands:\n&quot;&lt;br /&gt; printf &quot;\ttip_display : Automatically display values on each break\n&quot;&lt;br /&gt; printf &quot;\ttip_patch   : Patching binaries\n&quot;&lt;br /&gt; printf &quot;\ttip_strip   : Dealing with stripped binaries\n&quot;&lt;br /&gt; printf &quot;\ttip_syntax  : ATT vs Intel syntax\n&quot;&lt;br /&gt;end&lt;br /&gt;document tips&lt;br /&gt;Provide a list of tips from crackers on various topics. &lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define tip_patch&lt;br /&gt; printf &quot;\n&quot;&lt;br /&gt; printf &quot;                   PATCHING MEMORY\n&quot;&lt;br /&gt; printf &quot;Any address can be patched using the &#39;set&#39; command:\n&quot;&lt;br /&gt; printf &quot;\t`set ADDR = VALUE` \te.g. `set *0x8049D6E = 0x90`\n&quot;&lt;br /&gt; printf &quot;\n&quot;&lt;br /&gt; printf &quot;                 PATCHING BINARY FILES\n&quot;&lt;br /&gt; printf &quot;Use `set write` in order to patch the target executable\n&quot;&lt;br /&gt; printf &quot;directly, instead of just patching memory.\n&quot;&lt;br /&gt; printf &quot;\t`set write on` \t`set write off`\n&quot;&lt;br /&gt; printf &quot;Note that this means any patches to the code or data segments\n&quot;&lt;br /&gt; printf &quot;will be written to the executable file. When either of these\n&quot;&lt;br /&gt; printf &quot;commands has been issued, the file must be reloaded.\n&quot;&lt;br /&gt; printf &quot;\n&quot;&lt;br /&gt;end&lt;br /&gt;document tip_patch&lt;br /&gt;Tips on patching memory and binary files&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define tip_strip&lt;br /&gt; printf &quot;\n&quot;&lt;br /&gt; printf &quot;             STOPPING BINARIES AT ENTRY POINT\n&quot;&lt;br /&gt; printf &quot;Stripped binaries have no symbols, and are therefore tough to\n&quot;&lt;br /&gt; printf &quot;start automatically. To debug a stripped binary, use\n&quot;&lt;br /&gt; printf &quot;\tinfo file\n&quot;&lt;br /&gt; printf &quot;to get the entry point of the file. The first few lines of\n&quot;&lt;br /&gt; printf &quot;output will look like this:\n&quot;&lt;br /&gt; printf &quot;\tSymbols from &#39;/tmp/a.out&#39;\n&quot;&lt;br /&gt; printf &quot;\tLocal exec file:\n&quot;&lt;br /&gt; printf &quot;\t        `/tmp/a.out&#39;, file type elf32-i386.\n&quot;&lt;br /&gt; printf &quot;\t        Entry point: 0x80482e0\n&quot;&lt;br /&gt; printf &quot;Use this entry point to set an entry point:\n&quot;&lt;br /&gt; printf &quot;\t`tbreak *0x80482e0`\n&quot;&lt;br /&gt; printf &quot;The breakpoint will delete itself after the program stops as\n&quot;&lt;br /&gt; printf &quot;the entry point.\n&quot;&lt;br /&gt; printf &quot;\n&quot;&lt;br /&gt;end&lt;br /&gt;document tip_strip&lt;br /&gt;Tips on dealing with stripped binaries&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define tip_syntax&lt;br /&gt; printf &quot;\n&quot;&lt;br /&gt; printf &quot;\t    INTEL SYNTAX                        AT&amp;T SYNTAX\n&quot;&lt;br /&gt; printf &quot;\tmnemonic dest, src, imm            mnemonic src, dest, imm\n&quot; &lt;br /&gt; printf &quot;\t[base+index*scale+disp]            disp(base, index, scale)\n&quot;&lt;br /&gt; printf &quot;\tregister:      eax                 register:      %%eax\n&quot;&lt;br /&gt; printf &quot;\timmediate:     0xFF                immediate:     $0xFF\n&quot;&lt;br /&gt; printf &quot;\tdereference:   [addr]              dereference:   addr(,1)\n&quot;&lt;br /&gt; printf &quot;\tabsolute addr: addr                absolute addr: *addr\n&quot;&lt;br /&gt; printf &quot;\tbyte insn:     mov byte ptr        byte insn:     movb\n&quot;&lt;br /&gt; printf &quot;\tword insn:     mov word ptr        word insn:     movw\n&quot;&lt;br /&gt; printf &quot;\tdword insn:    mov dword ptr       dword insn:    movd\n&quot;&lt;br /&gt; printf &quot;\tfar call:      call far            far call:      lcall\n&quot;&lt;br /&gt; printf &quot;\tfar jump:      jmp far             far jump:      ljmp\n&quot;&lt;br /&gt; printf &quot;\n&quot;&lt;br /&gt; printf &quot;Note that order of operands in reversed, and that AT&amp;T syntax\n&quot;&lt;br /&gt; printf &quot;requires that all instructions referencing memory operands \n&quot;&lt;br /&gt; printf &quot;use an operand size suffix (b, w, d, q).\n&quot;&lt;br /&gt; printf &quot;\n&quot;&lt;br /&gt;end&lt;br /&gt;document tip_syntax&lt;br /&gt;Summary of Intel and AT&amp;T syntax differences&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;define tip_display&lt;br /&gt;printf &quot;\n&quot;&lt;br /&gt;printf &quot;Any expression can be set to automatically be displayed every time\n&quot;&lt;br /&gt;printf &quot;the target stops. The commands for this are:\n&quot;&lt;br /&gt;printf &quot;\t`display expr&#39;     : automatically display expression &#39;expr&#39;\n&quot;&lt;br /&gt;printf &quot;\t`display&#39;          : show all displayed expressions\n&quot;&lt;br /&gt;printf &quot;\t`undisplay num&#39;    : turn off autodisplay for expression # &#39;num&#39;\n&quot;&lt;br /&gt;printf &quot;Examples:\n&quot;&lt;br /&gt;printf &quot;\t`display/x *(int *)$esp`      : print top of stack\n&quot;&lt;br /&gt;printf &quot;\t`display/x *(int *)($ebp+8)`  : print first parameter\n&quot;&lt;br /&gt;printf &quot;\t`display (char *)$esi`        : print source string\n&quot;&lt;br /&gt;printf &quot;\t`display (char *)$edi`        : print destination string\n&quot;&lt;br /&gt;printf &quot;\n&quot;&lt;br /&gt;end&lt;br /&gt;document tip_display&lt;br /&gt;Tips on automatically displaying values when a program stops.&lt;br /&gt;end&lt;br /&gt;# __________________gdb options_________________&lt;br /&gt;set confirm off&lt;br /&gt;set verbose off&lt;br /&gt;#set prompt \033[01;m\033] niel@gdb $ \033[0m&lt;br /&gt;set prompt \033[31mgdb $ \033[0m&lt;br /&gt;set output-radix 0x10&lt;br /&gt;set input-radix 0x10&lt;br /&gt;# These make gdb never pause in its output&lt;br /&gt;set height 0&lt;br /&gt;set width 0&lt;br /&gt;# why do these not work???&lt;br /&gt;set $SHOW_CONTEXT = 1&lt;br /&gt;set $SHOW_NEST_INSN=0&lt;br /&gt;&lt;br /&gt;set disassembly-flavor intel&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#EOF&lt;/blockquote&gt;</description><link>http://gviz.blogspot.com/2007/08/fun-debugging-with-gdb.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1zYXMxzxT3mPsNKpA5cDdw45OUVNPT4Z4CBDs0bmEiPCcd3mL8tCZzEP44cDNb1x7b3lpV3o73GUmCLZJgD3Wp8hz6cCL8azshtHCu9LIFEt1u5JjkRQ9l7oUkRRlvlHUSSvLL3SuSI0/s72-c/gdb.JPG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7865284935253612822.post-413513840847187768</guid><pubDate>Sat, 18 Aug 2007 12:46:00 +0000</pubDate><atom:updated>2007-08-18T06:14:03.264-07:00</atom:updated><title>You&#39;ve Got Scam</title><description>Today another of those scam mails hit my Inbox and these days I get at least one of them daily. Are all the spammers moving into scamming??!!! :)&lt;br /&gt;&lt;br /&gt;A searchable collection/database of scam mails, phishing sites and various other internet frauds can be found at http://scamdex.com/&lt;br /&gt;&lt;br /&gt;&quot;&lt;br /&gt;Miss Mariam Konate.&lt;br /&gt;Cote d&#39;ivoire&lt;br /&gt;West Africa&lt;br /&gt;&lt;br /&gt;Dearest,&lt;br /&gt;Permit me to inform you about this proposal I am daughter of late lieutenant cornel Paul in Abidjan,Cote d&#39;ivoire, in west Africa.&lt;br /&gt; &lt;br /&gt;My  late father Konate died and left me and my mother Gloria my name is Mariam Konate. I am 20years old .&lt;br /&gt;&lt;br /&gt;My late father Konate owns many companies before he died which he left for my mother Mrs Gloria Konate.&lt;br /&gt;&lt;br /&gt;Within a year of my fathers death, my Mother Mrs. Gloria Konate was killed by hired killers, after my mother was killed my fathers lawyer called me to hand over my late fathers documents to me, after my fathers lawyer have handed over the documents to me, my uncle started demanding for the Documents of my late fathers wealth.&lt;br /&gt; &lt;br /&gt;I now called my fathers lawyer, he came and told my uncle that my father made a will that all his properties belongs to me. After my fathers lawyer have made that statement my uncle started fighting against me to an extend he went and arranged for hired killers to kill I and my younger brother.&lt;br /&gt; &lt;br /&gt;The first time they came to our home when I wasn&#39;t around,  my younger brother Emmanuel was shot and two of our security men was killed also before the police men came, they had escaped, that made me to park out of the compound i thought it will be over that way but it continue happening, that makes me to stop going to school.Because i am afraid let something not happen to me in school premises,That is the reason why i contacted you as an honest person so that you can help me in transferring my late fathers money into your bank account.&lt;br /&gt; &lt;br /&gt;The said fund is ($6Million) six Million United state dollars,has been deposited into one of the banks in Abidjan,Cote d&#39;ivoire, in west Africa.&lt;br /&gt;&lt;br /&gt;I will offer 20% of the total amount to you for your help in transferring of this fund successfully to your account, and after transferring the money i can come over to your country and continue my education. Please do help me and God will blessYou.&lt;br /&gt;&lt;br /&gt;Mariam Konate&lt;br /&gt;&quot;</description><link>http://gviz.blogspot.com/2007/08/youve-got-scam.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7865284935253612822.post-6471886051485140782</guid><pubDate>Sun, 12 Aug 2007 13:28:00 +0000</pubDate><atom:updated>2007-08-12T06:47:36.390-07:00</atom:updated><title>Linux for Humans... !!!???</title><description>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2eqv2H6IKk0YXdoiZcuWD0pbrWmCVtV1ORGpX9lMvNDSiMujLjRvfCufb6TLLXizS1FPzn-sSBjsRo6di_Hc1stI9Hd7TuA9DuB1h9wF4-3S9gAXzvRilnH4gly50MNdiDGPzEFoWpbU/s1600-h/snapshot2.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2eqv2H6IKk0YXdoiZcuWD0pbrWmCVtV1ORGpX9lMvNDSiMujLjRvfCufb6TLLXizS1FPzn-sSBjsRo6di_Hc1stI9Hd7TuA9DuB1h9wF4-3S9gAXzvRilnH4gly50MNdiDGPzEFoWpbU/s320/snapshot2.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5097810209476446306&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Loaded Kubuntu on my laptop and everything seems to work out of the box :)</description><link>http://gviz.blogspot.com/2007/08/linux-for-humans.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2eqv2H6IKk0YXdoiZcuWD0pbrWmCVtV1ORGpX9lMvNDSiMujLjRvfCufb6TLLXizS1FPzn-sSBjsRo6di_Hc1stI9Hd7TuA9DuB1h9wF4-3S9gAXzvRilnH4gly50MNdiDGPzEFoWpbU/s72-c/snapshot2.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7865284935253612822.post-2706003440966791228</guid><pubDate>Sun, 29 Jul 2007 16:32:00 +0000</pubDate><atom:updated>2007-07-29T10:55:25.969-07:00</atom:updated><title>Phishing Quiz</title><description>&lt;p&gt;&lt;a href=&quot;http://www.siteadvisor.com/quizzes/phishing_0707/&quot;&gt;http://www.siteadvisor.com/quizzes/phishing_0707/&lt;/a&gt;&lt;/p&gt;</description><link>http://gviz.blogspot.com/2007/07/phishing-quiz.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7865284935253612822.post-3150833969090893680</guid><pubDate>Fri, 20 Jul 2007 12:04:00 +0000</pubDate><atom:updated>2007-07-29T10:22:32.093-07:00</atom:updated><title>Getting Started</title><description>Blog(&quot;Hello Blogging&quot;)</description><link>http://gviz.blogspot.com/2007/07/hello-blogging.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item></channel></rss>