<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title><![CDATA[[SecurityRatty] tag: convert]]></title>
    <link>http://securityratty.com/tag/convert</link>
    <description></description>
    <pubDate>Wed, 23 Apr 2008 21:22:10 +0000</pubDate>
    <generator>iRatty Engine</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <item>
      <title><![CDATA[Hand Grenades as Weapons of Mass Destruction]]></title>
      <link>http://securityratty.com/article/e03129712b52a9ce93ee85bc9633c091</link>
      <guid>http://securityratty.com/article/e03129712b52a9ce93ee85bc9633c091</guid>
      <description><![CDATA[I get that this is terrorism: A 24-year-old convert to Islam has been sentenced to 35 years in prison for plotting to set off hand grenades in a crowded shopping mall during the Christmas season
But I...]]></description>
      <content:encoded><![CDATA[<p>I get that <a href="http://news.yahoo.com/s/ap/20080930/ap_on_re_us/terror_sentence;_ylt=AttmTC5Ji0gidcvcR8JejpnZa7gF">this</a> is terrorism:</p>

<blockquote>A 24-year-old convert to Islam has been sentenced to 35 years in prison for plotting to set off hand grenades in a crowded shopping mall during the Christmas season.</blockquote>

<p>But I thought "weapons of mass destruction" was reserved for nuclear, chemical, and biological weapons.</p>

<blockquote>He was arrested in 2006 on charges of scheming to use weapons of mass destruction at the Cherryvale Mall in the northern Illinois city of Rockford.</blockquote>

<p>Like the <a href="http://www.schneier.com/blog/archives/2008/08/the_continuing_1.html">continuing cheapening of the word "terrorism</a>," we are now cheapening the term "weapons of mass destruction."</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=rEwFM"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=rEwFM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/schneier/fulltext?a=RGl4M"><img src="http://feeds.feedburner.com/~f/schneier/fulltext?i=RGl4M" border="0"></img></a>
</div>]]></content:encoded>
      <pubDate>Wed, 01 Oct 2008 02:37:22 +0000</pubDate>
      <category domain="http://securityratty.com/tag/mass destruction">mass destruction</category>
      <category domain="http://securityratty.com/tag/weapons">weapons</category>
      <category domain="http://securityratty.com/tag/biological weapons">biological weapons</category>
      <category domain="http://securityratty.com/tag/hand grenades">hand grenades</category>
      <category domain="http://securityratty.com/tag/mall">mall</category>
      <category domain="http://securityratty.com/tag/northern illinois city">northern illinois city</category>
      <category domain="http://securityratty.com/tag/cherryvale mall">cherryvale mall</category>
      <category domain="http://securityratty.com/tag/terrorism">terrorism</category>
      <category domain="http://securityratty.com/tag/christmas season">christmas season</category>
      <source url="http://www.schneier.com/blog/archives/2008/10/hand_grenades_a.html">Hand Grenades as Weapons of Mass Destruction</source>
    </item>
    <item>
      <title><![CDATA[The Commercialization of Anti Debugging Tactics in Malware]]></title>
      <link>http://securityratty.com/article/91955d7bc08228b99c0f5fa478c039b5</link>
      <guid>http://securityratty.com/article/91955d7bc08228b99c0f5fa478c039b5</guid>
      <description><![CDATA[Commoditization or commercialization, Themida or Code Virtualizer, individually crypting or outsourcing to an experienced malware crypting service offering discounts on a volume basis next to...]]></description>
      <content:encoded><![CDATA[<div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"></div><a href="http://2.bp.blogspot.com/_wICHhTiQmrA/SN0BFks8GsI/AAAAAAAACMQ/J_vLiffz110/s1600-h/figure_multiple.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="128" src="http://2.bp.blogspot.com/_wICHhTiQmrA/SN0BFks8GsI/AAAAAAAACMQ/bz624nz5JbE/s200-R/figure_multiple.jpg" width="200" /></a><a href="http://ddanchev.blogspot.com/2008/09/commoditization-of-anti-debugging.html">Commoditization</a> or commercialization, Themida or Code Virtualizer, individually crypting or outsourcing to an experienced malware crypting service offering discounts on a volume basis next to detection rates of the crypted binary offered by a trusted online scanner that is NOT distributing the samples to the vendors? These are just some of the questions malware authors often ask themselves, while others distribute pirated copies of Code Virtualizer urging everyone to start taking advantage of commercial anti-reverse engineering tools to make their malware harder to analyze. Once again, just like we've seen before, a legitimate commercial application can come handy in the hands of the wrong people :<br />
<br />
"<i>Code Virtualizer will convert your original code (Intel x86 instructions) into Virtual Opcodes that will only be understood by an internal Virtual Machine. Those Virtual Opcodes and the Virtual Machine itself are unique for every protected application, avoiding a general attack over Code Virtualizer. Code Virtualizer can protect your sensitive code areas in any x32 and x64 native PE files (like executable files/EXEs, system services, DLLs , OCXs , ActiveX controls, screen savers and device drivers).</i><br />
<br />
<div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"></div><a href="http://4.bp.blogspot.com/_wICHhTiQmrA/SN0CPwG9MzI/AAAAAAAACMY/lB8WtKqycj4/s1600-h/cvprotopt.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="149" src="http://4.bp.blogspot.com/_wICHhTiQmrA/SN0CPwG9MzI/AAAAAAAACMY/kgSYpWIHW2E/s200-R/cvprotopt.png" width="200" /></a><i>Code Virtualizer can generate multiple types of virtual machines with a different instruction set for each one. This means that a specific block of Intel x86 instructions can be converted into different instruction set for each machine, preventing an attacker from recognizing any generated virtual opcode after the transformation from x86 instructions. The following picture represents how a block of Intel x86 instructions is converted into different kinds of virtual opcodes, which could be emulated by different virtual machines.</i><br />
<br />
<i>When an attacker tries to decompile a block of code that was protected by Code Virtualizer, he will not find the original x86 instructions. Instead, he will find a completely new instruction set which is not recognized by him or any other special decompiler. This will force the attacker to go through the extremely hard work of identifying how each opcode is executed and how the specific virtual machine works for each protected application. Code Virtualizer totally obfuscates the execution of the virtual opcodes and the study of each unique virtual machine in order to prevent someone from studying how the virtual opcodes are executed.</i>"<br />
<br />
With Cyber-as-a-Service business model becoming increasingly common, the entire <a href="http://ddanchev.blogspot.com/2007/10/multiple-firewalls-bypassing.html">quality assurance model in respect to malware</a> is slowly maturing from individual malware crypting propositions, where the seller of the service is basically taking advantage of a diverse set of public/private tools, into DIY web services offering crypting discounts on a volume basis, and perhaps most importantly - improving the customer's experience by letting him take advantage of the inventory of crypting tools and bypassing verification services. Within the tool's inventory are naturally lots of (pirated) commercial anti-reverse engineering tools.<br />
<br />
As we've seen before, whenever someone starts commercializing what used to be a self-selving process, others will either follow, or disintermediate their services by persistently releasing crypting tools for free in the wild. At the end of the day, it's all a matter of how serious they're about commercializing this market segment, and taking into consideration that a spamming vendor is offering malware crypting services "in between" the rest of the services in their portfolio, this underground cash cow is yet to prove itself in the long term.<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=wJDSL"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=wJDSL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=QoCNL"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=QoCNL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=e4uxl"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=e4uxl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=sXqbl"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=sXqbl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=khiOL"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=khiOL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=2cQ2L"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=2cQ2L" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?a=HiSTl"><img src="http://feeds.feedburner.com/~f/DanchoDanchevOnSecurityAndNewMedia?i=HiSTl" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/DanchoDanchevOnSecurityAndNewMedia/~4/406651187" height="1" width="1"/>]]></content:encoded>
      <pubDate>Mon, 29 Sep 2008 12:55:54 +0000</pubDate>
      <category domain="http://securityratty.com/tag/machine">machine</category>
      <category domain="http://securityratty.com/tag/specific virtual machine">specific virtual machine</category>
      <category domain="http://securityratty.com/tag/internal virtual machine">internal virtual machine</category>
      <category domain="http://securityratty.com/tag/code">code</category>
      <category domain="http://securityratty.com/tag/sensitive code">sensitive code</category>
      <category domain="http://securityratty.com/tag/malware">malware</category>
      <category domain="http://securityratty.com/tag/unique virtual machine">unique virtual machine</category>
      <category domain="http://securityratty.com/tag/original code">original code</category>
      <category domain="http://securityratty.com/tag/code virtualizer">code virtualizer</category>
      <source url="http://feeds.feedburner.com/~r/DanchoDanchevOnSecurityAndNewMedia/~3/406651187/commercialization-of-anti-debugging.html">The Commercialization of Anti Debugging Tactics in Malware</source>
    </item>
    <item>
      <title><![CDATA[Null Strings in ASP.NET Declarative DataSource Updates]]></title>
      <link>http://securityratty.com/article/11f8906732a7b86831292456d642b2f5</link>
      <guid>http://securityratty.com/article/11f8906732a7b86831292456d642b2f5</guid>
      <description><![CDATA[I just spent about 15 minutes debugging a problem where a document was getting unexpected nulls where empty strings should have been. Indeed controls like the TextBox have code in them that allows you...]]></description>
      <content:encoded><![CDATA[<p>I just spent about 15 minutes debugging a problem where a document was getting unexpected nulls where empty strings should have been. Indeed controls like the TextBox have code in them that allows you to set the Text property to null and the TextBox will convert that into an empty string. So it&#39;s a bit counterintuitive that <em>the declarative data source works the opposite way by default</em>.</p> <p>When you use a declarative data source to perform a parameterized update that contains string parameters, consider setting ConvertEmptyStringToNull=&#39;false&#39; on your &lt;asp:Parameter&gt; elements, because <em>it&#39;s true by default</em>! In other words, if a text field contains an empty string, it&#39;ll be sent to your declarative data source not as string.Empty, but as null.</p> <p>Now I don&#39;t know about you, but I don&#39;t like dealing with nulls if I can avoid it. Especially strings. Unless there&#39;s a clear need to have a null state, I avoid them like the plague not only in my database designs but also in my XML schema designs. Hopefully this helps somebody out!</p><div style="clear:both;"></div><img src="http://www.pluralsight.com/community/aggbug.aspx?PostID=52773" width="1" height="1">]]></content:encoded>
      <pubDate>Fri, 29 Aug 2008 11:42:47 +0000</pubDate>
      <category domain="http://securityratty.com/tag/strings">strings</category>
      <category domain="http://securityratty.com/tag/declarative data source">declarative data source</category>
      <category domain="http://securityratty.com/tag/empty strings">empty strings</category>
      <category domain="http://securityratty.com/tag/null">null</category>
      <category domain="http://securityratty.com/tag/empty">empty</category>
      <category domain="http://securityratty.com/tag/xml schema designs">xml schema designs</category>
      <category domain="http://securityratty.com/tag/textbox">textbox</category>
      <category domain="http://securityratty.com/tag/text property">text property</category>
      <category domain="http://securityratty.com/tag/nulls">nulls</category>
      <source url="http://www.pluralsight.com/community/blogs/keith/archive/2008/08/29/null-strings-in-asp-net-declarative-datasource-updates.aspx">Null Strings in ASP.NET Declarative DataSource Updates</source>
    </item>
    <item>
      <title><![CDATA[Serializable XmlDocument]]></title>
      <link>http://securityratty.com/article/94c84cd2ea7a6ea71c9712991d27722d</link>
      <guid>http://securityratty.com/article/94c84cd2ea7a6ea71c9712991d27722d</guid>
      <description><![CDATA[It's surprising that XmlDocument isn't marked [Serializable], because it's very natural to serialize one into a stream. I wanted to put an object into ASP.NET ViewState the other day, and quickly ran...]]></description>
      <content:encoded><![CDATA[<p>It&#39;s surprising that XmlDocument isn&#39;t marked [Serializable], because it&#39;s very natural to serialize one into a stream. I wanted to put an object into ASP.NET ViewState the other day, and quickly ran into this roadblock, because part of the object included an XmlDocument, which is not serializable. A quick search revealed that most people deal with this problem by storing a string instead. Indeed, that was where I started, but I quickly realized that there are multiple places in my code where I want to do this sort of thing, and I don&#39;t want to have to mess with it in each data structure that contains an XmlDocument.</p>
<p>So I put together a simple class that holds an XmlDocument and implements ISerializable and called it SerializableXmlDocument. I&#39;m sharing the source code here in the hopes that</p>
<blockquote>
<p>a) somebody will find it useful, and</p>
<p>b) somebody smarter than I am will point out how I screwed it up and help me make it better.</p>
</blockquote>
<p>SerializableXmlDocument includes implicit conversion operators to make it easy to convert to/from an XmlDocument. It holds the actual document in a property called Value. This &quot;isomorph&quot; pattern is one that I picked up from <a href="http://www.pluralsight.com/community/blogs/craig/default.aspx" target="_blank">Craig</a>.</p>
<p>While writing this code, I also wrote a helpful extension method for getting a byte array out of a MemoryStream that is exactly the length of the data written to the stream so far (CopyUpToSeekPointer). So don&#39;t go looking in the docs for MemoryStream for this method :) This is obviously not the most efficient way to consume bytes written to a MemoryStream since it copies the data into a new byte array, but it&#39;s very convenient in many scenarios.</p>
<p>Here is SerializableXmlDocument.cs:</p>
<pre class="csharpcode"><span class="kwrd">using</span> System;<br /><span class="kwrd">using</span> System.Runtime.Serialization;<br /><span class="kwrd">using</span> System.Xml;<br /><span class="kwrd">using</span> System.IO;<br /><br /><span class="kwrd">namespace</span> Pluralsight.Samples<br />{<br />    [Serializable]<br />    <span class="kwrd">public</span> <span class="kwrd">class</span> SerializableXmlDocument : ISerializable<br />    {<br />        <span class="kwrd">public</span> SerializableXmlDocument() { }<br />        <span class="kwrd">public</span> SerializableXmlDocument(XmlDocument <span class="kwrd">value</span>)<br />        {<br />            <span class="kwrd">this</span>.Value = <span class="kwrd">value</span>;<br />        }<br /><br />        <span class="kwrd">public</span> XmlDocument Value { get; set; }<br /><br />        <span class="preproc">#region</span> ISerializable implementation<br />        <span class="kwrd">public</span> SerializableXmlDocument(SerializationInfo info,<br />                                       StreamingContext context)<br />        {<br />            <span class="kwrd">byte</span>[] serializedData = (<span class="kwrd">byte</span>[])info.GetValue(<span class="str">&quot;doc&quot;</span>,<br />                <span class="kwrd">typeof</span>(<span class="kwrd">byte</span>[]));<br />            <span class="kwrd">if</span> (<span class="kwrd">null</span> != serializedData)<br />                <span class="kwrd">this</span>.Value = Deserialize(serializedData);<br />        }<br /><br />        <span class="kwrd">public</span> <span class="kwrd">void</span> GetObjectData(SerializationInfo info,<br />                                  StreamingContext context)<br />        {<br />            <span class="kwrd">byte</span>[] serializedData = <span class="kwrd">null</span>;<br />            <span class="kwrd">if</span> (<span class="kwrd">null</span> != Value)<br />                serializedData = Serialize(Value);<br />            info.AddValue(<span class="str">&quot;doc&quot;</span>, serializedData);<br />        }<br />        <span class="preproc">#endregion</span><br /><br />        <span class="preproc">#region</span> <span class="kwrd">implicit</span> conversion to/from XmlDocument<br />        <span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">implicit</span> <span class="kwrd">operator</span> SerializableXmlDocument(<br />            XmlDocument doc)<br />        {<br />            <span class="kwrd">return</span> <span class="kwrd">new</span> SerializableXmlDocument(doc);<br />        }<br />        <span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">implicit</span> <span class="kwrd">operator</span> XmlDocument(<br />            SerializableXmlDocument sdoc)<br />        {<br />            <span class="kwrd">return</span> sdoc.Value;<br />        }<br />        <span class="preproc">#endregion</span><br /><br />        <span class="preproc">#region</span> Xml serialization helper methods<br />        <span class="kwrd">private</span> <span class="kwrd">static</span> <span class="kwrd">byte</span>[] Serialize(XmlDocument doc)<br />        {<br />            MemoryStream stream = <span class="kwrd">new</span> MemoryStream();<br />            doc.Save(stream);<br />            <span class="kwrd">return</span> stream.CopyUpToSeekPointer();<br />        }<br />        <span class="kwrd">private</span> <span class="kwrd">static</span> XmlDocument Deserialize(<span class="kwrd">byte</span>[] serializedData)<br />        {<br />            XmlDocument doc = <span class="kwrd">new</span> XmlDocument();<br />            doc.Load(<span class="kwrd">new</span> MemoryStream(serializedData, <span class="kwrd">false</span>));<br />            <span class="kwrd">return</span> doc;<br />        }<br />        <span class="preproc">#endregion</span><br />    }<br />}</pre>
<p>...and here&#39;s the CopyUpToSeekPointer extension method for MemoryStream:</p>
<pre class="csharpcode"><span class="kwrd">using</span> System;<br /><span class="kwrd">using</span> System.IO;<br /><br /><span class="kwrd">namespace</span> Pluralsight.Samples<br />{<br />    <span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">class</span> MemoryStreamExtensionMethods<br />    {<br />        <span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">byte</span>[] CopyUpToSeekPointer(<br />            <span class="kwrd">this</span> MemoryStream stream)<br />        {<br />            <span class="rem">// copy only the part of the buffer</span><br />            <span class="rem">// that contains the serialized document</span><br />            <span class="kwrd">long</span> length = stream.Position;<br />            <span class="kwrd">byte</span>[] buffer = stream.GetBuffer();<br />            <span class="kwrd">byte</span>[] result = <span class="kwrd">new</span> <span class="kwrd">byte</span>[length];<br />            <span class="kwrd">for</span> (<span class="kwrd">int</span> i = 0; i &lt; length; ++i)<br />                result[i] = buffer[i];<br />            <span class="kwrd">return</span> result;<br />        }<br />    }<br />}</pre>
<p>...and here&#39;s a sample object that uses SerializableXmlDocument:</p>
<pre class="csharpcode"><span class="kwrd">using</span> System;<br /><br /><span class="kwrd">namespace</span> Pluralsight.Samples<br />{<br />    [Serializable]<br />    <span class="kwrd">public</span> <span class="kwrd">class</span> Item<br />    {<br />        <span class="kwrd">public</span> <span class="kwrd">string</span> Name { get; set; }<br />        <span class="kwrd">public</span> SerializableXmlDocument Data { get; set; }<br /><br />        <span class="kwrd">public</span> <span class="kwrd">void</span> Print()<br />        {<br />            Console.WriteLine(<span class="str">&quot;Name: {0}&quot;</span>, Name);<br />            Console.WriteLine(Data.Value.OuterXml);<br />        }<br />    }<br />}</pre>
<p>...and here&#39;s a sample program that creates an instance of Item, serializes it, then deserializes it, printing diagnostics along the way to show that it&#39;s working properly.</p>
<pre class="csharpcode"><span class="kwrd">using</span> System;<br /><span class="kwrd">using</span> System.Xml;<br /><span class="kwrd">using</span> System.Runtime.Serialization.Formatters.Binary;<br /><span class="kwrd">using</span> System.IO;<br /><span class="kwrd">using</span> Pluralsight.Samples;<br /><br /><span class="kwrd">class</span> DemoProgram<br />{<br />    <span class="kwrd">static</span> <span class="kwrd">void</span> Main(<span class="kwrd">string</span>[] args)<br />    {<br />        XmlDocument doc = <span class="kwrd">new</span> XmlDocument();<br />        doc.LoadXml(<span class="str">&quot;&lt;root&gt;&lt;child&gt;text&lt;/child&gt;&lt;/root&gt;&quot;</span>);<br /><br />        Item item = <span class="kwrd">new</span> Item<br />        {<br />            Name = <span class="str">&quot;Testing 123&quot;</span>,<br />            Data = doc,<br />        };<br /><br />        <span class="rem">// print object before serialization</span><br />        item.Print();<br /><br />        BinaryFormatter formatter = <span class="kwrd">new</span> BinaryFormatter();<br />        MemoryStream stream = <span class="kwrd">new</span> MemoryStream();<br />        formatter.Serialize(stream, item);<br /><br />        <span class="kwrd">byte</span>[] serializedItem = stream.CopyUpToSeekPointer();<br /><br />        Console.WriteLine(<span class="str">&quot;Serialized data (base64): {0}&quot;</span>,<br />            Convert.ToBase64String(serializedItem));<br /><br />        item = (Item)formatter.Deserialize(<br />            <span class="kwrd">new</span> MemoryStream(serializedItem, <span class="kwrd">false</span>));<br /><br />        <span class="rem">// print object after deserialization</span><br />        item.Print();<br />    }<br />}</pre>
<p>Here&#39;s the output of the previous sample program:</p>
<p><a href="http://www.pluralsight.com/community/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/keith/sample_2D00_output_5F00_2.jpg"><img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" alt="sample-output" src="http://www.pluralsight.com/community/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/keith/sample_2D00_output_5F00_thumb.jpg" width="422" border="0" height="214" /></a>&nbsp;</p>
<p>Flame away!</p><div style="clear:both;"></div><img src="http://www.pluralsight.com/community/aggbug.aspx?PostID=52538" width="1" height="1">]]></content:encoded>
      <pubDate>Mon, 18 Aug 2008 22:58:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/public class item">public class item</category>
      <category domain="http://securityratty.com/tag/public">public</category>
      <category domain="http://securityratty.com/tag/public void getobjectdata">public void getobjectdata</category>
      <category domain="http://securityratty.com/tag/public static byte">public static byte</category>
      <category domain="http://securityratty.com/tag/xmldocument">xmldocument</category>
      <category domain="http://securityratty.com/tag/return doc">return doc</category>
      <category domain="http://securityratty.com/tag/return">return</category>
      <category domain="http://securityratty.com/tag/static byte">static byte</category>
      <category domain="http://securityratty.com/tag/public class">public class</category>
      <source url="http://www.pluralsight.com/community/blogs/keith/archive/2008/08/18/serializable-xmldocument.aspx">Serializable XmlDocument</source>
    </item>
    <item>
      <title><![CDATA[Republican National Convention venue gets network makeover]]></title>
      <link>http://securityratty.com/article/11189d96222032bac5aa95d73aa2fe98</link>
      <guid>http://securityratty.com/article/11189d96222032bac5aa95d73aa2fe98</guid>
      <description><![CDATA[What does it take to convert a hockey arena into a site that can handle the technology demands of the Republican National Convention? Roughly 25 miles of cabling, for...]]></description>
      <content:encoded><![CDATA[What does it take to convert a hockey arena into a site that can handle the technology demands of the Republican National Convention? Roughly 25 miles of cabling, for starters.]]></content:encoded>
      <pubDate>Tue, 12 Aug 2008 20:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/republican national convention">republican national convention</category>
      <category domain="http://securityratty.com/tag/technology demands">technology demands</category>
      <category domain="http://securityratty.com/tag/hockey arena">hockey arena</category>
      <category domain="http://securityratty.com/tag/convert">convert</category>
      <category domain="http://securityratty.com/tag/roughly">roughly</category>
      <category domain="http://securityratty.com/tag/handle">handle</category>
      <category domain="http://securityratty.com/tag/site">site</category>
      <category domain="http://securityratty.com/tag/starters">starters</category>
      <category domain="http://securityratty.com/tag/miles">miles</category>
      <source url="http://www.networkworld.com/news/2008/081308-republican-convention.html?fsrc=rss-security">Republican National Convention venue gets network makeover</source>
    </item>
    <item>
      <title><![CDATA[Download Hyper-V RTM for WIndows server 2008]]></title>
      <link>http://securityratty.com/article/c00af38230e4188f1bd4912085f5f7b2</link>
      <guid>http://securityratty.com/article/c00af38230e4188f1bd4912085f5f7b2</guid>
      <description><![CDATA[I converted my office fileserver to Windows Server 2008 (WS2008) a while back and I've never been happier - WS2008 is my favorite product ever. Nicely modular, pretty much everything turned off by...]]></description>
      <content:encoded><![CDATA[<p>I converted my office fileserver to Windows Server 2008 (WS2008) a while back and I've never been happier - WS2008 is my favorite product ever.&nbsp; Nicely modular, pretty much everything turned off by default and some great tools for enabling just the components your need for a particular role.</p> <p>There is one more step I've been wanting to take and that is to enable the Hyper-V role and convert my fileserver over to just one virtual machine on the box, so I can set up other VMs on the same box.&nbsp; Today, I was excited to see <a href="http://blogs.zdnet.com/virtualization/?p=465">Microsoft Releases Hyper-V</a> on CNET.&nbsp; Here is a summary of the key links (note that it is only available for the 64-bit versions of WS2008):</p> <ul> <li> <h3><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F3AB3D4B-63C8-4424-A738-BADED34D24ED&amp;displaylang=en" target="_blank">Update for Windows Server 2008 x64 Edition (KB950050)</a></h3></li> <li> <h3><a href="http://www.microsoft.com/windowsserver2008/en/us/hyperv-faq.aspx">Hyper-V FAQ</a></h3></li> <li> <h3><a href="http://www.microsoft.com/windowsserver2008/en/us/hyperv-install.aspx">How to Install Hyper-V</a></h3></li></ul> <p>Check back with my and I'll let you know how things go and share any tips I have for what to do or not do, as well as my review of how easy/hard it is.</p> <p>Regards ~ Jeff</p><img src="http://blogs.technet.com/aggbug.aspx?PostID=3079040" width="1" height="1">]]></content:encoded>
      <pubDate>Thu, 26 Jun 2008 20:02:47 +0000</pubDate>
      <category domain="http://securityratty.com/tag/windows server">windows server</category>
      <category domain="http://securityratty.com/tag/fileserver">fileserver</category>
      <category domain="http://securityratty.com/tag/hyper-v role">hyper-v role</category>
      <category domain="http://securityratty.com/tag/office fileserver">office fileserver</category>
      <category domain="http://securityratty.com/tag/ws2008">ws2008</category>
      <category domain="http://securityratty.com/tag/role">role</category>
      <category domain="http://securityratty.com/tag/microsoft releases hyper-v">microsoft releases hyper-v</category>
      <category domain="http://securityratty.com/tag/hyper-v faq">hyper-v faq</category>
      <category domain="http://securityratty.com/tag/install hyper-v">install hyper-v</category>
      <source url="http://blogs.technet.com/security/archive/2008/06/27/download-hyper-v-rtm-for-windows-server-2008.aspx">Download Hyper-V RTM for WIndows server 2008</source>
    </item>
    <item>
      <title><![CDATA[Eleventh Hour Rescue for Phila. Network?]]></title>
      <link>http://securityratty.com/article/bba402702f7a3dd80c32dedddaedd334</link>
      <guid>http://securityratty.com/article/bba402702f7a3dd80c32dedddaedd334</guid>
      <description><![CDATA[Local investors poised to assume control of Philadelphia Wi-Fi network: The Philadelphia Inquirer says two local businessmen will form a new company to create a for-profit service that will have a...]]></description>
      <content:encoded><![CDATA[<p><img src="http://wifinetnews.com/images/muni_icon.jpg" align="right" hspace="5" height="80" width="80" border="0" /><strong><a href="http://www.philly.com/inquirer/politics/philadelphia/20080617_Local_investors_to_rescue_Philly_wi-fi.html">Local investors poised to assume control of Philadelphia Wi-Fi network:</a></strong> The Philadelphia Inquirer says two local businessmen will form a new company to create a for-profit service that will have a combination of fees and advertising support. One of the two was briefly the head of the non-profit Wireless Philadelphia that technically is responsible for the network; the other, a former Verizon executive. Their announcement is expected later today.</p>

<p>Can they succeed where EarthLink (and others) failed? Possibly. If they get the same deal that EarthLink previously offered, they're getting a lot of equipment for free and a quantifiable set of problems. I had written earlier it wasn't a good deal for Phila. to accept the network, but a private operator that's locally based and is trying to do good and get a return on its investment may be able to raise money and set more modest goals. Starting from scratch is a non-starter for any firm at this point.</p>

<p>What they desperately need to do if they acquire the network is immediately bulk out several critical square miles, convince the city to buy some service right away (point-to-point dedicated connections to replace wirelines comes to mind, but will an ex-Verizoner be able to convert municipal revenue that's going to his old employer without qualms?), and show that the network can work.</p>

<p>The advertising part is interesting. MetroFi has shown that their particular flavor of ad-supported Wi-Fi doesn't work. But their goal wasn't crossing a digital divide, and the Portland, Ore., network was never given high marks by local users as to its robustness and reach. </p>]]></content:encoded>
      <pubDate>Tue, 17 Jun 2008 01:39:29 +0000</pubDate>
      <category domain="http://securityratty.com/tag/network">network</category>
      <category domain="http://securityratty.com/tag/wi-fi">wi-fi</category>
      <category domain="http://securityratty.com/tag/philadelphia wi-fi network">philadelphia wi-fi network</category>
      <category domain="http://securityratty.com/tag/local">local</category>
      <category domain="http://securityratty.com/tag/local users">local users</category>
      <category domain="http://securityratty.com/tag/quantifiable set">quantifiable set</category>
      <category domain="http://securityratty.com/tag/convert municipal revenue">convert municipal revenue</category>
      <category domain="http://securityratty.com/tag/earthlink previously">earthlink previously</category>
      <category domain="http://securityratty.com/tag/for-profit service">for-profit service</category>
      <source url="http://wifinetnews.com/archives/008363.html">Eleventh Hour Rescue for Phila. Network?</source>
    </item>
    <item>
      <title><![CDATA[30 tech myths debunked]]></title>
      <link>http://securityratty.com/article/8cce43a993528cd61433e952b4890b8b</link>
      <guid>http://securityratty.com/article/8cce43a993528cd61433e952b4890b8b</guid>
      <description><![CDATA[Go to the Start menu, click on Run and type &quot;convert C:windows mac OS&quot; and wait for 10 minutes and restart. This hidden command will convert your regular Windows PC into a Macintosh with Leopard. You...]]></description>
      <content:encoded><![CDATA[Go to the Start menu, click on Run and type "convert C:\windows mac_OS" and wait for 10 minutes and restart. This hidden command will convert your regular Windows PC into a Macintosh with Leopard. You didn't really believe this, did you? For the record, that is just plain impossible. But then, there are several myths floating around about PCs and gadgets that actually seem plausible. Some are just bad practical jokes (like e-mails saying Microsoft or AOL would donate money for every forward sent) while some are distorted facts. Even for a techie, it sometimes becomes difficult to tell fact from fiction -- so here is a collection of some popular misconceptions and our explanations to help clear the air.]]></content:encoded>
      <pubDate>Thu, 24 Apr 2008 20:00:00 +0000</pubDate>
      <category domain="http://securityratty.com/tag/bad practical jokes">bad practical jokes</category>
      <category domain="http://securityratty.com/tag/popular misconceptions">popular misconceptions</category>
      <category domain="http://securityratty.com/tag/plain impossible">plain impossible</category>
      <category domain="http://securityratty.com/tag/windows mac">windows mac</category>
      <category domain="http://securityratty.com/tag/myths">myths</category>
      <category domain="http://securityratty.com/tag/start menu">start menu</category>
      <category domain="http://securityratty.com/tag/convert">convert</category>
      <category domain="http://securityratty.com/tag/regular windows">regular windows</category>
      <category domain="http://securityratty.com/tag/e-mails">e-mails</category>
      <source url="http://www.networkworld.com/news/2008/042508-30-tech-myths.html?fsrc=rss-security">30 tech myths debunked</source>
    </item>
    <item>
      <title><![CDATA[Text to Speech to MP3 with the freeware program DSpeech]]></title>
      <link>http://securityratty.com/article/638e24f834928fcc5d72497edc3d5b27</link>
      <guid>http://securityratty.com/article/638e24f834928fcc5d72497edc3d5b27</guid>
      <description><![CDATA[New Video: Text to Speech to MP3 with the freeware program DSpeech
This video is on Dspeech, a freeware tool that uses Microsoft's SAPI (Speech Application Programming Interface) to convert text to...]]></description>
      <content:encoded><![CDATA[<b>New Video:</b><a href="http://www.irongeek.com/i.php?page=videos/dspeech-text-to-speech-to-mp3-freeware">Text to Speech to MP3 with the freeware program DSpeech</a><br>
This video is on Dspeech, a freeware tool that uses Microsoft's SAPI (Speech 
Application Programming Interface) to convert text to spoken word. What's 
special about it is it lets you make an MP3 of the text, so you can listen to it 
on your computer, in you car or on your MP3 player. It's great for listening to 
study notes.<br>
<br>
As an unrelated side note, a friend of mine want's me to mention his
<a href="http://thebestwho.com/">humor page on celebrities, politics and gadgets</a>. Hope you enjoy it.]]></content:encoded>
      <pubDate>Wed, 23 Apr 2008 21:22:10 +0000</pubDate>
      <category domain="http://securityratty.com/tag/freeware program dspeech">freeware program dspeech</category>
      <category domain="http://securityratty.com/tag/text">text</category>
      <category domain="http://securityratty.com/tag/mp3">mp3</category>
      <category domain="http://securityratty.com/tag/dspeech">dspeech</category>
      <category domain="http://securityratty.com/tag/speech">speech</category>
      <category domain="http://securityratty.com/tag/convert text">convert text</category>
      <category domain="http://securityratty.com/tag/mp3 player">mp3 player</category>
      <category domain="http://securityratty.com/tag/speech application">speech application</category>
      <category domain="http://securityratty.com/tag/video">video</category>
      <source url="http://www.irongeek.com/i.php?page=videos/dspeech-text-to-speech-to-mp3-freeware">Text to Speech to MP3 with the freeware program DSpeech</source>
    </item>
    <item>
      <title><![CDATA[Text to Speech to MP3 with the freeware program DSpeech]]></title>
      <link>http://securityratty.com/article/dc694960740dd5ecc72c77e372dc4b9d</link>
      <guid>http://securityratty.com/article/dc694960740dd5ecc72c77e372dc4b9d</guid>
      <description><![CDATA[New Video: Text to Speech to MP3 with the freeware program DSpeech
This video is on Dspeech, a freeware tool that uses Microsoft's SAPI (Speech Application Programming Interface) to convert text to...]]></description>
      <content:encoded><![CDATA[<b>New Video:</b><a href="http://www.irongeek.com/i.php?page=videos/dspeech-text-to-speech-to-mp3-freeware">Text to Speech to MP3 with the freeware program DSpeech</a><br>
This video is on Dspeech, a freeware tool that uses Microsoft's SAPI (Speech 
Application Programming Interface) to convert text to spoken word. What's 
special about it is it lets you make an MP3 of the text, so you can listen to it 
on your computer, in you car or on your MP3 player. It's great for listening to 
study notes.<br>
<br>
As an unrelated side note, a friend of mine want's me to mention his
<a href="http://thebestwho.com/">humor page on celebrities, politics and gadgets</a>. Hope you enjoy it.
<p><a href="http://feeds.feedburner.com/~a/IrongeeksSecuritySite?a=LPFl2A"><img src="http://feeds.feedburner.com/~a/IrongeeksSecuritySite?i=LPFl2A" border="0"></img></a></p><img src="http://feeds.feedburner.com/~r/IrongeeksSecuritySite/~4/297640139" height="1" width="1"/>]]></content:encoded>
      <pubDate>Wed, 23 Apr 2008 21:22:10 +0000</pubDate>
      <category domain="http://securityratty.com/tag/freeware program dspeech">freeware program dspeech</category>
      <category domain="http://securityratty.com/tag/text">text</category>
      <category domain="http://securityratty.com/tag/mp3">mp3</category>
      <category domain="http://securityratty.com/tag/dspeech">dspeech</category>
      <category domain="http://securityratty.com/tag/speech">speech</category>
      <category domain="http://securityratty.com/tag/convert text">convert text</category>
      <category domain="http://securityratty.com/tag/mp3 player">mp3 player</category>
      <category domain="http://securityratty.com/tag/speech application">speech application</category>
      <category domain="http://securityratty.com/tag/video">video</category>
      <source url="http://feeds.feedburner.com/~r/IrongeeksSecuritySite/~3/297640139/i.php">Text to Speech to MP3 with the freeware program DSpeech</source>
    </item>
  </channel>
</rss>
