<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Aevitas&#039; Retreat</title>
	<atom:link href="http://aevitas.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://aevitas.wordpress.com</link>
	<description>C# Ramblings</description>
	<lastBuildDate>Mon, 20 Jun 2011 15:57:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='aevitas.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Aevitas&#039; Retreat</title>
		<link>http://aevitas.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://aevitas.wordpress.com/osd.xml" title="Aevitas&#039; Retreat" />
	<atom:link rel='hub' href='http://aevitas.wordpress.com/?pushpress=hub'/>
		<item>
		<title>What&#8217;s going on, updates, and Terraria server!</title>
		<link>http://aevitas.wordpress.com/2011/05/26/whats-going-on-updates-and-terraria-server/</link>
		<comments>http://aevitas.wordpress.com/2011/05/26/whats-going-on-updates-and-terraria-server/#comments</comments>
		<pubDate>Thu, 26 May 2011 23:01:02 +0000</pubDate>
		<dc:creator>aevitas</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://aevitas.wordpress.com/?p=130</guid>
		<description><![CDATA[So it&#8217;s been a while. Half a year I think since I&#8217;ve updated practically anything on this blog. Back then it was all about WoW stuff, hacking it, botting it, and what not. Those days are gone now. I&#8217;ve lost interest not only in World of Warcraft itself for nearly a year now, I&#8217;ve even [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=130&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So it&#8217;s been a while. Half a year I think since I&#8217;ve updated practically anything on this blog. Back then it was all about WoW stuff, hacking it, botting it, and what not. Those days are gone now. I&#8217;ve lost interest not only in World of Warcraft itself for nearly a year now, I&#8217;ve even lost interest in hacking, botting and cheating in every respect in it. That&#8217;s when you know a game is bad. The future of this blog won&#8217;t cover any World of Warcraft anymore, sorry folks! We&#8217;ll be focusing on coding still, and maybe hacking some other games &#8211; so there&#8217;s still much fun to be had!</p>
<p>I&#8217;ve been getting into these indie games lately, and I must say they&#8217;re quite fun to play &#8211; and on top of that, you can quit after 15 minutes. That is amazing. One of these games I&#8217;ve been playing is called <strong>Terraria</strong>. It&#8217;s been topping the Steam listings for a week or three now, and a few of my friends told me to get it, so I decided it may be worth the 10 quid, and gave it a go.</p>
<p>Now, the problem with these games is that I don&#8217;t really like playing solo. When I play these games, I love to do multiplayer with some mates, and have a go at things. Problem is you need a server to do so, because Terraria doesn&#8217;t support peer to peer, which is a good thing! However, when the developers launched with that idea, they didn&#8217;t figure out they may want to provide server software so third party hosters could host Terraria for us to play on! Instead, you have to run the game twice, sort your port forwarding, or use the ever-so-tedious Hamachi. You can&#8217;t run the server on a serverbox, because the game client requires Direct3D, direct 3D requires a graphics card, and server boxes do not have graphics cards. On top of that you need a whole lot of XNA and Visual Studio crap. Luckily for me, I already had those, so it wasn&#8217;t too much of a hassle.</p>
<p>There is a bright side to all this misery though; Terraria is written in C# .NET, and exposes its entire API. I think. Well, most of it anyway. That&#8217;s why I&#8217;ll be focusing the coming week on developing a server client for this which relies solely on the Terraria assembly, and <strong>can</strong> actually run on my server box. I&#8217;ll be posting the progress on here, and I&#8217;ll figure out what I do with the release &#8211; it may be open source, but I&#8217;m not sure what the Terraria devs think about that, so I guess I&#8217;ll contact them first. Hey, at least I&#8217;m not decompiling their assemblies and ripping their code to make a server (which required Direct3D still, so it still sucked) like the guy on their forums, who got banned by the way.</p>
<p>I&#8217;ve given it a spin for an hour or two earlier today, and turns out I can already have the client find the server across the internet, so I don&#8217;t think the rest will be a problem. What I do find worrying is that you can apparently connect to any TcpClient across the net with Terraria, and who knows what they stream at you through it? I don&#8217;t. If Terraria is to grow, they will most certainly need to step up their security, otherwise it&#8217;s going to be really easy for malicious developers to pull tricks with those servers.</p>
<p>See you in a few days when the first few screenshots, and perhaps a few lines of code can be spilled. Who knows!</p>
<p><em>ps. I&#8217;m going to have a good laugh if I beat the Terraria devs to making a properly working server package. Really. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
ps 2. Yes, the entire thing <strong>will </strong>be freeware. Period. I&#8217;m not going to charge for something which compliments a successful game like this. Don&#8217;t worry!<br />
</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aevitas.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aevitas.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aevitas.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aevitas.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aevitas.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aevitas.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aevitas.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aevitas.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aevitas.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aevitas.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aevitas.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aevitas.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aevitas.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aevitas.wordpress.com/130/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=130&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aevitas.wordpress.com/2011/05/26/whats-going-on-updates-and-terraria-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b66c123da28c484a421833e385253497?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aevitas</media:title>
		</media:content>
	</item>
		<item>
		<title>World of Warcraft 4.0.1 updated IDA database</title>
		<link>http://aevitas.wordpress.com/2010/10/17/world-of-warcraft-4-0-1-updated-ida-database/</link>
		<comments>http://aevitas.wordpress.com/2010/10/17/world-of-warcraft-4-0-1-updated-ida-database/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 11:30:26 +0000</pubDate>
		<dc:creator>aevitas</dc:creator>
				<category><![CDATA[RE]]></category>
		<category><![CDATA[WoW]]></category>
		<category><![CDATA[Reverse engineering]]></category>
		<category><![CDATA[World of Warcraft IDA Database 4.0.1]]></category>
		<category><![CDATA[Wow 4.0.1 Reverse engineering]]></category>

		<guid isPermaLink="false">http://aevitas.wordpress.com/?p=108</guid>
		<description><![CDATA[I know it&#8217;s a bit late, but still. If you haven&#8217;t got around to updating your IDA database by either a Diff file or by completely re-doing it, then this post is for you. The attached IDA 32-bit database features: Rebased to 0&#215;1000 for relative address space. Renamed all engine functions and LUA&#8217;s. Generic awesomeness. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=108&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I know it&#8217;s a bit late, but still. If you haven&#8217;t got around to updating your IDA database by either a Diff file or by completely re-doing it, then this post is for you.</p>
<p>The attached IDA 32-bit database features:</p>
<ul>
<li>Rebased to 0&#215;1000 for relative address space.</li>
<li>Renamed all engine functions and LUA&#8217;s.</li>
<li>Generic awesomeness.</li>
</ul>
<p>Enjoy reversing and updating!</p>
<p><a title="Download" href="http://rapidshare.com/files/425571255/Wow.4.0.1.IDB.r00">Download (21.99 MB) [*.r00 (WinRAR)]</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aevitas.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aevitas.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aevitas.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aevitas.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aevitas.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aevitas.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aevitas.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aevitas.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aevitas.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aevitas.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aevitas.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aevitas.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aevitas.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aevitas.wordpress.com/108/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=108&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aevitas.wordpress.com/2010/10/17/world-of-warcraft-4-0-1-updated-ida-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b66c123da28c484a421833e385253497?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aevitas</media:title>
		</media:content>
	</item>
		<item>
		<title>Finding a process&#8217; base address</title>
		<link>http://aevitas.wordpress.com/2010/10/14/finding-a-process-base-address/</link>
		<comments>http://aevitas.wordpress.com/2010/10/14/finding-a-process-base-address/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 18:40:57 +0000</pubDate>
		<dc:creator>aevitas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://aevitas.wordpress.com/?p=105</guid>
		<description><![CDATA[Simply put; the addresses of World of Warcraft are now relative to its main thread. That being said, you need to be able to dynamically fetch the base address of the World of Warcraft process beforeyou can do any reads or writes. Here&#8217;s a quick property to cycle through the selected process&#8217; modules, and pick [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=105&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Simply put; the addresses of World of Warcraft are now relative to its main thread. That being said, you need to be able to dynamically fetch the base address of the World of Warcraft process beforeyou can do any reads or writes.</p>
<p>Here&#8217;s a quick property to cycle through the selected process&#8217; modules, and pick the one we&#8217;re after:</p>
<p><pre class="brush: csharp;">
/// &lt;summary&gt;
        /// Gets or sets the process.
        /// &lt;/summary&gt;
        /// &lt;value&gt;The process.&lt;/value&gt;
        /// 14/10/2010 16:52
        public static Process Process { get; set; }

        /// &lt;summary&gt;
        /// Gets the base address of the World of Warcraft application.
        /// &lt;/summary&gt;
        /// &lt;value&gt;The [IntPtr] BaseAddress.&lt;/value&gt;
        /// 14/10/2010 16:55
        public static IntPtr BaseAddress
        {
            get
            {
                var ret = new IntPtr();
                var modules = Process.Modules;

                for (var i=0; i&lt;modules.Count;i++)
                {
                    if (modules[i].ModuleName.Contains(&quot;Wow&quot;)) ret = modules[i].BaseAddress;
                }

                return ret;
            }
        }</pre></p>
<p>Obviously you could also fetch Process.MainModule.BaseAddress, but again, I&#8217;d rather keep the loop &#8211; assuming there is no second module with Wow in it &#8211; this code will keep working even if at some point Wow isn&#8217;t its own main module. (Which would be odd, but hey)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aevitas.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aevitas.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aevitas.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aevitas.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aevitas.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aevitas.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aevitas.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aevitas.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aevitas.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aevitas.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aevitas.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aevitas.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aevitas.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aevitas.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=105&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aevitas.wordpress.com/2010/10/14/finding-a-process-base-address/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b66c123da28c484a421833e385253497?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aevitas</media:title>
		</media:content>
	</item>
		<item>
		<title>Symphonix</title>
		<link>http://aevitas.wordpress.com/2010/09/26/symphonix/</link>
		<comments>http://aevitas.wordpress.com/2010/09/26/symphonix/#comments</comments>
		<pubDate>Sun, 26 Sep 2010 22:04:49 +0000</pubDate>
		<dc:creator>aevitas</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://aevitas.wordpress.com/?p=101</guid>
		<description><![CDATA[** Warning &#8211; Very &#8220;dry&#8221; read up front, but an interesting read nonetheless. Well, it&#8217;s been a while, but I think I have something big to announce here today. Pretty much, everyone&#8217;s heard about cloud computing by now, and if you haven&#8217;t, you&#8217;re probably either above the age of 50, or you have been living [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=101&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="color:#ff0000;"><strong>** Warning &#8211; Very &#8220;dry&#8221; read up front, but an interesting read nonetheless.</strong></span></p>
<p>Well, it&#8217;s been a while, but I think I have something big to announce here today. Pretty much, everyone&#8217;s heard about cloud computing by now, and if you haven&#8217;t, you&#8217;re probably either above the age of 50, or you have been living under a rock for the past few years. Can&#8217;t miss on that one.</p>
<p>Now, cloud computing is all fine and dandy, and the idea is absolutely brilliant, but we&#8217;re really, really far away from a proper implementation of it &#8211; that is, where it can actually replace your hard drive, which is the way Google presented the idea as. Now, we <strong>may </strong>be far away from that, but we&#8217;re not far away from applying the basic principle of cloud computing on a somewhat smaller scale.</p>
<p>Just count the amount of &#8220;small programs&#8221; you have on your computer, and if you&#8217;re someone who does more on his computer than just hanging around on MSN and playing a game every now and then, they can sum up to quite a few. All of these applications aren&#8217;t too large, something like 500KB up to 5MB, right? However, the developers of these applications often do still push updates for them.  Keeping them up to date and even organised can become quite a hectic and tedious process, the more of them you get.</p>
<p>This is the reason <strong>Symphonix</strong> was designed. It was designed to launch small (1KB &#8211; 20MB) applications entirely from the internet. Of course you do need to download them, but Symphonix takes care of all this for you. This way, all applications are at the developer&#8217;s &#8216;place&#8217;, and the customer can launch the most recent version whenever they need it, while their configuration files and preferences are stored by Symphonix, so the applications still adapt to their preferences.</p>
<p>Right now I can&#8217;t tell you too much about it, but what I can in fact tell is that Symphonix is compatible with <strong>over 99%</strong> of the world&#8217;s regular, http websites. Meaning you don&#8217;t have to have a special web-server of any sort, your current web host will most likely be able to host a program for Symphonix to run, in the near future.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aevitas.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aevitas.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aevitas.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aevitas.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aevitas.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aevitas.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aevitas.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aevitas.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aevitas.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aevitas.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aevitas.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aevitas.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aevitas.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aevitas.wordpress.com/101/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=101&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aevitas.wordpress.com/2010/09/26/symphonix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b66c123da28c484a421833e385253497?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aevitas</media:title>
		</media:content>
	</item>
		<item>
		<title>Battle.net Authenticator for Windows</title>
		<link>http://aevitas.wordpress.com/2010/07/06/battle-net-authenticator-for-windows/</link>
		<comments>http://aevitas.wordpress.com/2010/07/06/battle-net-authenticator-for-windows/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 16:26:16 +0000</pubDate>
		<dc:creator>aevitas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[WoW]]></category>

		<guid isPermaLink="false">http://aevitas.wordpress.com/?p=95</guid>
		<description><![CDATA[It&#8217;s here .. a Battle.net Authenticator for Windows! And no, it&#8217;s not Blizzard&#8217;s. This is a custom, yet fully supporting Battle.net Authenticator to run on your PC. Currently, this authenticator features the following: Full support for Battle.net accounts. Support for both EU and US. It&#8217;s always synced perfectly. So, you don&#8217;t have to buy an [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=95&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><strong>It&#8217;s here .. a Battle.net Authenticator for Windows!</strong></p>
<p style="text-align:center;"><img class="aligncenter" src="http://img594.imageshack.us/img594/3808/aevauth2.jpg" alt="Battle.net Authenticator for Windows" /></p>
<p style="text-align:left;">And no, it&#8217;s not Blizzard&#8217;s. This is a <strong>custom, yet fully supporting Battle.net Authenticator to run on your PC</strong>.</p>
<p style="text-align:left;">Currently, this authenticator features the following:</p>
<ul>
<li>Full support for Battle.net accounts.</li>
<li>Support for both EU and US.</li>
<li>It&#8217;s always synced perfectly.</li>
</ul>
<p>So, you don&#8217;t have to buy an authenticator, nor do you have to have your iPhone handy at all times to login to your account. You can now do all that, easily, and securely using this very authenticator. And of course, credtis to Kynox for his lib!</p>
<p><span id="more-95"></span>Oh, and for those of you who don&#8217;t know how the fuck to read a NFO:</p>
<p>http://pastebin.com/haaWRvzi</p>
<p><a title="Download" href="http://dl.dropbox.com/u/2904711/Blizzard.Battle.net.Authenticator-AEViTAS20100706180933.r00" target="_blank"><strong>Download v1.0 &#8211; </strong>201007061809 &#8211; tested and verified</a></p>
<p>Make sure to read the NFO, and extract with WinRAR. Enjoy!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aevitas.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aevitas.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aevitas.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aevitas.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aevitas.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aevitas.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aevitas.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aevitas.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aevitas.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aevitas.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aevitas.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aevitas.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aevitas.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aevitas.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=95&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aevitas.wordpress.com/2010/07/06/battle-net-authenticator-for-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b66c123da28c484a421833e385253497?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aevitas</media:title>
		</media:content>

		<media:content url="http://img594.imageshack.us/img594/3808/aevauth2.jpg" medium="image">
			<media:title type="html">Battle.net Authenticator for Windows</media:title>
		</media:content>
	</item>
		<item>
		<title>Click To Move unsafe?</title>
		<link>http://aevitas.wordpress.com/2010/07/03/click-to-move-unsafe/</link>
		<comments>http://aevitas.wordpress.com/2010/07/03/click-to-move-unsafe/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 21:53:33 +0000</pubDate>
		<dc:creator>aevitas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://aevitas.wordpress.com/?p=91</guid>
		<description><![CDATA[Recently, there have been quite the rumours about CTM not being safe, being detectable, and the works: Originally posted by PiroX: New Detection Information: Very important! CTM seems to be unsafe at the moment. Disable CTM (Click to move) in bot under Main Detection Status &#8211; Safe with memory reading (pvpTool without Mem options) &#8211; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=91&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recently, there have been quite the rumours about CTM not being safe, being detectable, and the works:</p>
<p>Originally posted by PiroX:</p>
<blockquote><p><span style="color:deepskyblue;"><strong>New Detection Information:</strong><br />
</span><span style="color:deepskyblue;">Very important! </span><span style="color:gray;"><span style="color:lime;"><span style="color:deepskyblue;"><strong>CTM</strong> seems to be <span style="text-decoration:underline;">unsafe</span> at the  moment. Disable CTM (Click to  move)  in bot under Main</span></span></span></p>
<p><span style="color:deepskyblue;"><strong>Detection Status</strong><br />
<span style="color:lime;"> &#8211; <span style="text-decoration:underline;">Safe</span> with memory reading (pvpTool without   Mem options)</span><br />
<span style="color:red;"> &#8211; CTM seems  to be <span style="text-decoration:underline;">unsafe</span></span><br />
<span style="color:yellow;"> &#8211; MemLooting seems to be safe</span></span><span style="color:gray;"><span style="color:lime;"><span style="color:deepskyblue;"> </span></span></span></p></blockquote>
<p>Let me clear one thing up for you (or remind you, perhaps?) <strong>PiroX&#8217;s pvpTool is written in AutoIt. AutoIt CAN NOT HOOK</strong>. Which means it has to resort to direct memory writes to a pulsed struct to achieve something like CTM. Now, wouldn&#8217;t it be down-right easy for Warden to determine if the stuff in the CTM struct originates from an engine call or from an external program? (The CTM actions are timestamped, mind you. And 9.99/10 people don&#8217;t timestamp when they remotely write to the CTM struct)</p>
<p>Long story short, if you hook, and you do it properly; you&#8217;ll <em>probably</em> be safe until they nail your hook. If you write to the struct? You may end up with a ban, who knows. Warden is packed since 3.3.5, and no one really knows what it does yet.</p>
<p>I&#8217;m glad Blizzard is back into the anti-cheating stuff, being a bad kid gets boring if no one is watching the playground.</p>
<blockquote><p>Originally Posted by <strong>Ski</strong></p>
<div>What does that even mean? How would &#8220;CTM&#8221; be  detectable? Its an ingame option that thousands of people, botters and  nonbotters alike, use.</div>
</blockquote>
<div>Rofl. I assumed a moderator of the Buddy Team would know his stuff. I assumed wrong. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aevitas.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aevitas.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aevitas.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aevitas.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aevitas.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aevitas.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aevitas.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aevitas.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aevitas.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aevitas.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aevitas.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aevitas.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aevitas.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aevitas.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=91&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aevitas.wordpress.com/2010/07/03/click-to-move-unsafe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b66c123da28c484a421833e385253497?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aevitas</media:title>
		</media:content>
	</item>
		<item>
		<title>IsSwimming, IsMounted</title>
		<link>http://aevitas.wordpress.com/2010/06/21/check-if-player-is-swimming/</link>
		<comments>http://aevitas.wordpress.com/2010/06/21/check-if-player-is-swimming/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 23:16:37 +0000</pubDate>
		<dc:creator>aevitas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[RE]]></category>

		<guid isPermaLink="false">http://aevitas.wordpress.com/?p=81</guid>
		<description><![CDATA[I&#8217;ve had someone asking me how to determine if the player is swimming or not, and I answered: it&#8217;s simple, reverse the IsSwimming LUA function. So, dig it up in IDA, and look for the following: .text:006D855E test eax, eax .text:006D8560 jz short loc_6D8589 .text:006D8562 test dword ptr [eax+0A30h], 200000h .text:006D856C jz short loc_6D8589 Now, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=81&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had someone asking me how to determine if the player is swimming or not, and I answered: it&#8217;s simple, reverse the <strong>IsSwimming</strong> LUA function.</p>
<p>So, dig it up in IDA, and look for the following:</p>
<blockquote>
<pre>.text:006D855E                 test    eax, eax
.text:006D8560                 jz      short loc_6D8589
.text:006D8562                 test    dword ptr [eax+0A30h], 200000h
.text:006D856C                 jz      short loc_6D8589</pre>
</blockquote>
<p>Now, say after me, <strong>eax</strong> is where the local player is stored, and <strong>eax+0A30h</strong> is being compared to 0&#215;200000, <strong>eax+0a30h</strong> is very likely to return whether we&#8217;re swimming or not.</p>
<blockquote>
<pre>public bool IsSwimming
{
	return ObjectManager.Memory.ReadInt(BaseAddress + 0xA30h) == 0x200000;
}</pre>
</blockquote>
<p>Should therefore make sense, right?</p>
<p>IsMounted is reversed in the same manner, and uses the exact same field, just a different flag:</p>
<pre>
<blockquote>

.text:006D865E                 test    eax, eax
.text:006D8660                 jz      short loc_6D8692
.text:006D8662                 cmp     dword ptr [eax+9C0h], 0
.text:006D8669                 jle     short loc_6D8692
.text:006D866B                 test    dword ptr [eax+0A30h], 10000000h
.text:006D8675                 jnz     short loc_6D8692

public bool IsMounted
{
	return ObjectManager.Memory.ReadInt(BaseAddress + 0x0A30h) == 0x10000000;
}</blockquote>

I haven't tested this code personally, but I'm pretty confident it's accurate.</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aevitas.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aevitas.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aevitas.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aevitas.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aevitas.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aevitas.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aevitas.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aevitas.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aevitas.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aevitas.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aevitas.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aevitas.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aevitas.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aevitas.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=81&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aevitas.wordpress.com/2010/06/21/check-if-player-is-swimming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b66c123da28c484a421833e385253497?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aevitas</media:title>
		</media:content>
	</item>
		<item>
		<title>GSpellTimer, simplified.</title>
		<link>http://aevitas.wordpress.com/2010/06/21/gspelltimer-simplified/</link>
		<comments>http://aevitas.wordpress.com/2010/06/21/gspelltimer-simplified/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 18:00:29 +0000</pubDate>
		<dc:creator>aevitas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[WoW]]></category>

		<guid isPermaLink="false">http://aevitas.wordpress.com/?p=76</guid>
		<description><![CDATA[For the &#8211; by now, somewhat &#8211; old botters among us, and specifically those who used to make Custom Classes for Glider, you&#8217;ll know that Glider used a object called the GSpellTimer. The GSpellTimer was used extensively in Glider, and a sample of it shown here: Glider.Common.Objects.GSpellTimer. Now, I don&#8217;t know about you, but I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=76&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For the &#8211; by now, somewhat &#8211; old botters among us, and specifically those who used to make Custom Classes for Glider, you&#8217;ll know that Glider used a object called the <strong>GSpellTimer</strong>. The GSpellTimer was used extensively in Glider, and a sample of it shown here: <a href="http://www.mmoglider.com/customclasses/ndoc/Glider.Common.Objects.GSpellTimer.html" target="_blank">Glider.Common.Objects.GSpellTimer</a>. Now, I don&#8217;t know about you, but I find this functionality <em>extremely</em> useful when making Combat stuff, for example to use it for spell cooldowns!</p>
<p>As you may know, I&#8217;m currently working on a small gathering bot, which uses the Spectre Framework by Seifer as its main interface to World of Warcraft.</p>
<p>Now, I&#8217;ve coded a small, 20~ line of code class, <a href="http://pastie.org/1013927" target="_blank">which replicates exactly what the GSpellTimer did</a>. And as per usual, some demo code:</p>
<blockquote><p>public SpellTimer GlobalCooldown = new SpellTimer(1500);</p></blockquote>
<blockquote><p>if (GlobalCooldown.IsReady)<br />
Logging.Write(&#8220;Global cooldown finished.&#8221;);</p></blockquote>
<p>Enjoy.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aevitas.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aevitas.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aevitas.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aevitas.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aevitas.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aevitas.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aevitas.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aevitas.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aevitas.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aevitas.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aevitas.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aevitas.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aevitas.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aevitas.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=76&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aevitas.wordpress.com/2010/06/21/gspelltimer-simplified/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b66c123da28c484a421833e385253497?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aevitas</media:title>
		</media:content>
	</item>
		<item>
		<title>Back to the Basics: List Manipulation</title>
		<link>http://aevitas.wordpress.com/2010/06/13/back-to-the-basics-list-manipulation/</link>
		<comments>http://aevitas.wordpress.com/2010/06/13/back-to-the-basics-list-manipulation/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 20:10:33 +0000</pubDate>
		<dc:creator>aevitas</dc:creator>
				<category><![CDATA[University]]></category>

		<guid isPermaLink="false">http://aevitas.wordpress.com/?p=70</guid>
		<description><![CDATA[First in the Back to the Basics series: List Manipulation! This is probably the most boring, and tedious thing for the beginner-coder, if not done properly. Today we&#8217;ll be covering this stuff, along with a Visual Studio 2008 project so you can experiment a bit yourself. Let&#8217;s shed some light on the structure of the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=70&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>First in the Back to the Basics series: List Manipulation! This is probably the most boring, and tedious thing for the beginner-coder, if not done properly. Today we&#8217;ll be covering this stuff, along with a Visual Studio 2008 project so you can experiment a bit yourself.</p>
<p>Let&#8217;s shed some light on the structure of the application first, so you know what we&#8217;re working with:</p>
<ul>
<li>One central <strong>Order</strong> class. This contains all the properties related to the orders.</li>
<li>One central <strong>List&lt;Order&gt;,</strong> containing all the Orders we have stored in our application.</li>
<li>Various methods, ie. <strong>Insert, Update, Delete.</strong> These manipulate the objects in the list, in a straight-forward manner.</li>
</ul>
<p>So, with that out of the way, there are a few things I highly recommend you read up on &#8211; it&#8217;ll make your life a lot easier!</p>
<p><span id="more-70"></span>We&#8217;ll be working with a List&lt;T&gt;, where T is the type of object the list holds. This can be &#8211; for example &#8211; a string, integer, you name it, but also <strong>an object, such as our Order object!</strong> A list is a Collection. There are multiple collections available, but for what we&#8217;re going to do today &#8211; a List will suffice in all our requirements. <a href="http://msdn.microsoft.com/en-us/library/ybcx56wz%28VS.80%29.aspx" target="_blank">Read the (very short) article about collection on MSDN here.</a> And next, you will want to <a href="http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx" target="_blank">read up on the List&lt;T&gt; specifically here</a>. We&#8217;ll be using the <strong>foreach loop</strong> extensively too, so I _highly_ recommend <a href="http://msdn.microsoft.com/en-us/library/ttw7t8t6%28VS.80%29.aspx" target="_blank">you know what it&#8217;s doing, and why it is useful!</a></p>
<p>Let&#8217;s get going, shall we?</p>
<p><strong>Step 1 &#8211; Setting up our project</strong></p>
<p>To start your project, go to New -&gt; New Project, select a Windows Forms Application, and name it whatever the hell you like.<br />
After that, go to <strong>Project -&gt; Add Class</strong> and add a file called <strong>Order.cs</strong>. That will be the main order object we&#8217;ll be working with.</p>
<p><strong>Step 2 &#8211; Defining the Order object</strong></p>
<p>There&#8217;s not much we can do with an empty object. Therefore, we&#8217;ll be giving it some &#8220;body&#8221;. First off, declare the Order class as public, by adding the &#8220;<em>public</em>&#8221; keyword before the class definition; as so: <em>public class Order. </em>The reason we do this is so that any application, including our own, which refers to our application can use the Order class.</p>
<p>Next,we&#8217;ll be declaring two properties in the Order object. If you wonder why I don&#8217;t declare a field and a property, it&#8217;s because a Property holds a field internally. This basically means they&#8217;re the same, and a property can hold a value like a field can &#8211; so there&#8217;s absolutely no need to declare a field here:</p>
<blockquote><p>public class Order<br />
{<br />
/// &lt;summary&gt;<br />
/// Basic constructor.<br />
/// &lt;/summary&gt;<br />
/// &lt;param name=&#8221;id&#8221;&gt;Order ID&lt;/param&gt;<br />
/// &lt;param name=&#8221;name&#8221;&gt;Order Name&lt;/param&gt;<br />
public Order(int id, string name)<br />
{<br />
ID = id;<br />
Name = name;<br />
}</p>
<p>/// &lt;summary&gt;<br />
/// The ID of the Order.<br />
/// &lt;/summary&gt;<br />
public int ID { get; set; }</p>
<p>/// &lt;summary&gt;<br />
/// The Order&#8217;s name.<br />
/// &lt;/summary&gt;<br />
public string Name { get; set; }<br />
}</p></blockquote>
<p>This allows us to call Order.Name, and Order.ID! Isn&#8217;t it amazingly simple? If you&#8217;re wondering what <strong>get; set;</strong> means; it delcares what we can do with the property. The <strong>get</strong> accessor allows us to &#8211; logically? &#8211; GET the value of the property, and the <strong>set</strong> allows us to &#8211; stunningly &#8211; SET the value of the property. If we would declare them with just &#8220;get&#8221;, we can not change the property&#8217;s value. So <strong>Object.ID = 1;</strong> would throw an error at us, because we didn&#8217;t declare a set accessor. Easy enough, isn&#8217;t it? <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>Step 3 &#8211; Declaring the Order list</strong></p>
<p>First off, rename <strong>Form1</strong> to <strong>Main.</strong> Then, open it up in the code editor (Right click -&gt; View Code), and put the following code inside the class definition, but not inside a method:</p>
<blockquote><p>public List&lt;Order&gt; Orders = new List&lt;Order&gt;();</p></blockquote>
<p>This provides us with a basic list, which we can access to keep track of our orders.</p>
<p><strong>Step 4 &#8211; Creating some objects to work with</strong></p>
<p>Now that we have the list pointed down, we&#8217;ll need some objects to work with. At the same time, we&#8217;ll be using the <strong>Add()</strong> method of the Collection, so pay close attention, you may pick up a bit for later on. We&#8217;ll also be using a <strong>for loop</strong>. This isn&#8217;t as complicated as it looks, and I&#8217;ll explain it in the code. First off, double click <strong>inside the form, when viewing it in Design view</strong>. This will create a <em>Main_Load(object sender, EventArgs e) </em>in your code, which will be executed when the form loads. This is known as the load event, any code we put in it will be executed when the form loads.</p>
<p>Add the following foreach loop to that Load event:</p>
<blockquote><p>// i = 0, if i is less or equal to 100, do i + 1.<br />
for (int i=0; i&lt;=100; i++)<br />
{<br />
// Add a new order, give it the ID of i, and the name ORDDER(i)<br />
Orders.Add(new Order(i, &#8220;ORDER&#8221; + i));<br />
}</p></blockquote>
<p>Code should be self explanatory, together with the comments.</p>
<p><strong>Step 5 &#8211; Creating a method to add an Order</strong></p>
<p>This step is straight forward as can be. Basically, we want a method that takes two arguments: ID and Name. Then we create a new object which adds that to the list with Orders:</p>
<blockquote><p>public void AddOrder(int id, string name)<br />
{<br />
Orders.Add(new Order(id, name));<br />
}</p></blockquote>
<p>Always &#8211; and I mean <strong>always</strong> &#8211; add a new instance of Order to the list, using the <strong>new </strong>keyword. As you can see, we are using the Add() method of the list to add an object to it.</p>
<p><strong>Step 5 &#8211; Searching by ID</strong></p>
<p>This step of the tutorial is a small step up from adding an object, as we actually have to loop through all the objects. This is where the <strong>foreach</strong> loop becomes key, so I hope you have read up on it, and know what it&#8217;s doing.</p>
<p>The concept is simple. We take the ID as a parameter of our method, then loop through all objects in the Objects list, and check if the ID == our ID argument.<br />
If so, we add it to a local list of results, and at the end, we return that list. This is why the <strong>return type</strong> of the method is <strong>List&lt;Order&gt;</strong>. If you don&#8217;t know what a return type is, <a href="http://msdn.microsoft.com/en-us/library/ckwkyfdb.aspx" target="_blank">read up on MSDN here.</a></p>
<p>Anyway, onto the code:</p>
<blockquote><p>public List&lt;Order&gt; Search(int id)<br />
{<br />
// The list we use for objects that matches the ID.<br />
List&lt;Order&gt; ret = new List&lt;Order&gt;();</p>
<p>// Check all objects in the list, and see if the ID is what we&#8217;re looking for.<br />
foreach (Order o in Orders)<br />
{<br />
if (o.ID == id)<br />
{<br />
// If so, add it to the return list.<br />
ret.Add(o);<br />
}<br />
}</p>
<p>// Return the list of results.<br />
return ret;<br />
}</p></blockquote>
<p>Looks a bit more complicated, I know. Just take a few minutes to comprehend it, and read the comments. It&#8217;s still pretty basic stuff!</p>
<p>Next thing is, how do we use this? That&#8217;s easy too, to search for the orders, we use the following code:</p>
<blockquote><p>var res = Search(Convert.ToInt32(txt_SearchID.Text));</p>
<p>foreach (Order o in res)<br />
{<br />
lst_IDResult.Items.Add(o.ID + &#8221; | &#8221; + o.Name);<br />
}</p></blockquote>
<p>We&#8217;re using a ListBox called <strong>lst_IDResults</strong> to show our results. As you can see, we use another foreach loop. However, this time, we use the list that <strong>Search provided us with, not the global Orders list!</strong> Meaning the list only contains those objects we were searching! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>Step 6 &#8211; Updating a list entry</strong></p>
<p>This one gets a bit tricky. It combines the search, and the listBox elements to update an item in the Order list.</p>
<p>If we want to update an object in the list, we&#8217;ll have to know what its <strong>index</strong> is. The index is simply defined as the number it has in the list; the first object added will have number 0, the second will have 1, the third will have 2, and so on. The index is <strong>zero-based</strong>, meaning it starts at 0, and goes up from there.</p>
<p>When we dump all the objects into a listBox, using a simple foreach loop, they will have the exact same index as they have in the Orders list. This means we can use the index of the listBox as a secure and narrowed down point for updating objects.</p>
<p>First off, add a new property to the Order object, called <strong>Index.</strong> It&#8217;s an int. We don&#8217;t add this to our constructor, as we&#8217;ll only use it for updating.<br />
Also, add <strong>public Order curObj { get; set; } </strong>to your Main.cs file. This is the object we have selected for updating, and we use this for easy reference later on.</p>
<p>Now, we want to populate the listBox with all items that Orders holds. To do this, we use the following code in the Show Objects button:</p>
<blockquote><p>// Clear the list.<br />
lst_Update.Items.Clear();</p>
<p>foreach (Order o in Orders)<br />
{<br />
lst_Update.Items.Add(o.ID + &#8221; | &#8221; + o.Name);<br />
}</p></blockquote>
<p>Then, under the Select this Item button, we define the following:</p>
<blockquote><p>// Sets the curObj to the index we have selected in the list.<br />
curObj = Orders[lst_Update.SelectedIndex];</p>
<p>// Set the Index property to the index of this object in the listBox.<br />
curObj.Index = lst_Update.SelectedIndex;</p>
<p>// Set the Textboxes to the object&#8217;s name and ID.<br />
txt_OrderID.Text = curObj.ID.ToString();<br />
txt_OrderName.Text = curObj.Name;</p></blockquote>
<p>This uses the Index I was talking about earlier. If you are unsure about what the Index is, check the &#8220;Inserting elements&#8221; section <a href="http://dotnetperls.com/list" target="_blank">of this page</a>. And if still unsure, Google around a bit.</p>
<p>And finally, to execute the update:</p>
<blockquote><p>// Make sure an item is selected.<br />
if (curObj != null)<br />
{<br />
// Change the values.<br />
Orders[curObj.Index].ID = Convert.ToInt32(txt_OrderID.Text);<br />
Orders[curObj.Index].Name = txt_OrderName.Text;<br />
}</p></blockquote>
<p>There is really not much to explain about the update code, and it is <strong>one way of doing it</strong>, there are multiple ways to update items in a list.</p>
<p>I suggest you look up the methods of the List&lt;T&gt; collection, and do a Google search on how to achieve these various tasks aside from this tutorial. Maybe I have over-complicated it, I don&#8217;t know.</p>
<p>I&#8217;m attaching two pieces of source code, one written for this very tutorial, and one I had laying around. Both will demonstrate how to achieve these tasks perfectly, and they both work. Learn as much as you can from it, and read up on a dozen of tutorials on the internet, and you will be fine.</p>
<p><strong>The source of this tutorial:<br />
</strong>http://release.aevitas.in/BackToBasic-Lists.rar</p>
<p><strong>Similar source I made earlier:<br />
</strong>http://release.aevitas.in/PObjects.rar</p>
<p>Good luck!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aevitas.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aevitas.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aevitas.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aevitas.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aevitas.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aevitas.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aevitas.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aevitas.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aevitas.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aevitas.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aevitas.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aevitas.wordpress.com/70/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aevitas.wordpress.com/70/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aevitas.wordpress.com/70/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=70&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aevitas.wordpress.com/2010/06/13/back-to-the-basics-list-manipulation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b66c123da28c484a421833e385253497?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aevitas</media:title>
		</media:content>
	</item>
		<item>
		<title>Spectre</title>
		<link>http://aevitas.wordpress.com/2010/06/02/spectre/</link>
		<comments>http://aevitas.wordpress.com/2010/06/02/spectre/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 18:20:16 +0000</pubDate>
		<dc:creator>aevitas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[WoW]]></category>

		<guid isPermaLink="false">http://aevitas.wordpress.com/?p=66</guid>
		<description><![CDATA[In the coming month or so, I&#8217;ll be working on a project which goes by the name of Spectre. It&#8217;ll be a &#8216;basic&#8217; out-of-process bot for World of Warcraft, which may even end up being open-source and available to the general public. Along with Spectre, I&#8217;ll be updating this journal again; posting some interesting pieces [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=66&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In the coming month or so, I&#8217;ll be working on a project which goes by the name of <strong>Spectre</strong>.</p>
<p>It&#8217;ll be a &#8216;basic&#8217; out-of-process bot for World of Warcraft, which may even end up being open-source and available to the general public.<br />
Along with Spectre, I&#8217;ll be updating this journal again; posting some interesting pieces of code, and general methods and approaches.</p>
<p>So stay tuned, and it&#8217;ll definitely be worth your while dropping by every now and then!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aevitas.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aevitas.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aevitas.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aevitas.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/aevitas.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/aevitas.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/aevitas.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/aevitas.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aevitas.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aevitas.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aevitas.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aevitas.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aevitas.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aevitas.wordpress.com/66/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aevitas.wordpress.com&amp;blog=9981572&amp;post=66&amp;subd=aevitas&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://aevitas.wordpress.com/2010/06/02/spectre/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b66c123da28c484a421833e385253497?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">aevitas</media:title>
		</media:content>
	</item>
	</channel>
</rss>
