<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: How to decompile/reverse engineer/disassemble any XNA Game!</title>
	<atom:link href="http://www.multimolti.com/blog/2008/11/19/how-to-decompilereverse-engineerdisassemble-any-xna-game/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.multimolti.com/blog/2008/11/19/how-to-decompilereverse-engineerdisassemble-any-xna-game/</link>
	<description>Technology, Computer and Programming news</description>
	<lastBuildDate>Thu, 11 Mar 2010 06:31:26 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Lennart Moltrecht (admin)</title>
		<link>http://www.multimolti.com/blog/2008/11/19/how-to-decompilereverse-engineerdisassemble-any-xna-game/comment-page-1/#comment-29310</link>
		<dc:creator>Lennart Moltrecht (admin)</dc:creator>
		<pubDate>Wed, 14 Oct 2009 09:21:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.multimolti.de/blog/?p=153#comment-29310</guid>
		<description>@marvin:
Thanks for your long comment. Actually I&#039;m aware that .NET applications aren&#039;t compiled to real binaries and that the code is still somehow stored in it. At least that&#039;s what it says in my book :P
I&#039;m still calling the executables &quot;binaries&quot; because they&#039;re stored in the bin/x86 folder, this &quot;bin&quot; just makes me think of the usual binaries when working with C++ or stuff like that.
And since I usually only differ between &quot;compiling&quot; for C/C++/C# and &quot;parsing&quot; for PHP/Perl, I still call it compiling, even though you are just debugging the project. That&#039;s just my way of calling it.</description>
		<content:encoded><![CDATA[<p>@marvin:<br />
Thanks for your long comment. Actually I&#8217;m aware that .NET applications aren&#8217;t compiled to real binaries and that the code is still somehow stored in it. At least that&#8217;s what it says in my book <img src='http://www.multimolti.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
I&#8217;m still calling the executables &#8220;binaries&#8221; because they&#8217;re stored in the bin/x86 folder, this &#8220;bin&#8221; just makes me think of the usual binaries when working with C++ or stuff like that.<br />
And since I usually only differ between &#8220;compiling&#8221; for C/C++/C# and &#8220;parsing&#8221; for PHP/Perl, I still call it compiling, even though you are just debugging the project. That&#8217;s just my way of calling it.
<div class="ratingblock ">
<div class="gdsrdebug">VN:F [1.0.7_345]</div>
<div id="comment_rater_29310" class="ratecmm">
<div class="starsbar">
<div class="outer" align="left">
<div id="gdr_vote_29310" style="width: 0px;" class="inner"></div>
<div id="gdr_stars_29310" class="gdsr_rating_as"><a id="gdsrX29310X5X0XcXcomment_rater_29310Xcomment_loader_29310" title="5 out of 5" class="s5" rel="nofollow"></a><a id="gdsrX29310X4X0XcXcomment_rater_29310Xcomment_loader_29310" title="4 out of 5" class="s4" rel="nofollow"></a><a id="gdsrX29310X3X0XcXcomment_rater_29310Xcomment_loader_29310" title="3 out of 5" class="s3" rel="nofollow"></a><a id="gdsrX29310X2X0XcXcomment_rater_29310Xcomment_loader_29310" title="2 out of 5" class="s2" rel="nofollow"></a><a id="gdsrX29310X1X0XcXcomment_rater_29310Xcomment_loader_29310" title="1 out of 5" class="s1" rel="nofollow"></a></div>
</div>
</div>
</div>
<div id="comment_loader_29310" style="display: none; width:60px;" class="ratingloadercomment">
<div class="loader circle ">
<div class="loaderinner">please wait...</div>
</div>
</div>
<div id="gdr_text_29310" class=" comment">Rating: 0.0/<strong>5</strong> (0 votes cast)</div>
</div>
]]></content:encoded>
	</item>
	<item>
		<title>By: marvin</title>
		<link>http://www.multimolti.com/blog/2008/11/19/how-to-decompilereverse-engineerdisassemble-any-xna-game/comment-page-1/#comment-29309</link>
		<dc:creator>marvin</dc:creator>
		<pubDate>Wed, 14 Oct 2009 05:14:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.multimolti.de/blog/?p=153#comment-29309</guid>
		<description>Yep... Reflector is a great piece of software. I&#039;ve had it for a while. I first got it many months ago to test the effectiveness of different obfuscators (which weren&#039;t very impressive). But I&#039;ve found other solutions to protect my work (which I can&#039;t reveal, sorry!).  :)
The author is right, comments are not put into the executable. When you declare a comment, you are basically telling the compiler &quot;ignore&quot;, or &quot;don&#039;t add this to exe&quot;. 
However, the author is also wrong. It&#039;s funny, because I saw the same exact mistake in a book written by a professional moments ago, which is how I stumbled across this page (after searching for book reviews). .NET applications do NOT compile to binary... They DON&#039;T... It&#039;s that simple, but many people mistakenly think it does. Why do you think you can decompile it so easily, and keep the original object names? Try the same thing on a real native binary originally written in C/C++/etc, and see what you get. ;) You&#039;ll instantly realize you&#039;ll need a new decompiler. Reflector will throw a error saying the target has no CLI header. Even with a native -&gt; C/C++ decompiler, you will get rather junky/sloppy code, lose all the object names, and it may not even run! There&#039;s actually a good analogy right here on this page. Right above, someone tried to translate the Russian guy&#039;s comment to English. Imagine that the Russian comment is native binary, and he just tried to decompile it to C++ (English). Well, the syntax (grammar) is all messed up now, and we all known our brains (compiler) won&#039;t compile English when it has syntax errors. :) But that&#039;s often what can happen when you decompile from native binaries, except it will make even less sense. You&#039;ll have nonsense naming, like &quot;a + b = e_1;&quot;.
.NET applications, since they aren&#039;t native binaries (like UNmanaged/NON-.NET C/C++), actually compile to CIL (Common Intermediate Language). It&#039;s almost like an intermediate form of assembly language. What happens with such managed code is that it&#039;s actually run on a &#039;virutal machine&#039;; called the CLR (Common Language Runtime). In a sense, it&#039;s very similar to the Java Runtime Environment; the virtual machine from Sun that runs Java on your PC (quite seamlessly). This is why you can decompile .NET code so easily, and maintain all of the hierarchies/preserve object names/references. During runtime, the CLR engine only compiles parts of the code which are executed, which is why people say .NET is slower than native binaries (only 2%, according to most benchmarks, which is rather unnoticeable). If you have a method in your code that does something, like print a document, and you don&#039;t print, the method is never compiled and executed (as opposed to a native exe, which is totally compiled in advance). Because of this, .NET applications are actually more memory efficient. The CLR&#039;s hailed &quot;Garbage Collector&quot; can dispose of parts of the code and free up unneeded memory. So even though you get that tiny performance cost, it&#039;s actually canceled out by a performance GAIN (most of the time, since nothing is certain with computers).
I hope my rather long reply was enlightening/informative to at least someone, and I apologize if it was boring to you! ;)</description>
		<content:encoded><![CDATA[<p>Yep&#8230; Reflector is a great piece of software. I&#8217;ve had it for a while. I first got it many months ago to test the effectiveness of different obfuscators (which weren&#8217;t very impressive). But I&#8217;ve found other solutions to protect my work (which I can&#8217;t reveal, sorry!).  <img src='http://www.multimolti.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
The author is right, comments are not put into the executable. When you declare a comment, you are basically telling the compiler &#8220;ignore&#8221;, or &#8220;don&#8217;t add this to exe&#8221;.<br />
However, the author is also wrong. It&#8217;s funny, because I saw the same exact mistake in a book written by a professional moments ago, which is how I stumbled across this page (after searching for book reviews). .NET applications do NOT compile to binary&#8230; They DON&#8217;T&#8230; It&#8217;s that simple, but many people mistakenly think it does. Why do you think you can decompile it so easily, and keep the original object names? Try the same thing on a real native binary originally written in C/C++/etc, and see what you get. <img src='http://www.multimolti.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  You&#8217;ll instantly realize you&#8217;ll need a new decompiler. Reflector will throw a error saying the target has no CLI header. Even with a native -&gt; C/C++ decompiler, you will get rather junky/sloppy code, lose all the object names, and it may not even run! There&#8217;s actually a good analogy right here on this page. Right above, someone tried to translate the Russian guy&#8217;s comment to English. Imagine that the Russian comment is native binary, and he just tried to decompile it to C++ (English). Well, the syntax (grammar) is all messed up now, and we all known our brains (compiler) won&#8217;t compile English when it has syntax errors. <img src='http://www.multimolti.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  But that&#8217;s often what can happen when you decompile from native binaries, except it will make even less sense. You&#8217;ll have nonsense naming, like &#8220;a + b = e_1;&#8221;.<br />
.NET applications, since they aren&#8217;t native binaries (like UNmanaged/NON-.NET C/C++), actually compile to CIL (Common Intermediate Language). It&#8217;s almost like an intermediate form of assembly language. What happens with such managed code is that it&#8217;s actually run on a &#8216;virutal machine&#8217;; called the CLR (Common Language Runtime). In a sense, it&#8217;s very similar to the Java Runtime Environment; the virtual machine from Sun that runs Java on your PC (quite seamlessly). This is why you can decompile .NET code so easily, and maintain all of the hierarchies/preserve object names/references. During runtime, the CLR engine only compiles parts of the code which are executed, which is why people say .NET is slower than native binaries (only 2%, according to most benchmarks, which is rather unnoticeable). If you have a method in your code that does something, like print a document, and you don&#8217;t print, the method is never compiled and executed (as opposed to a native exe, which is totally compiled in advance). Because of this, .NET applications are actually more memory efficient. The CLR&#8217;s hailed &#8220;Garbage Collector&#8221; can dispose of parts of the code and free up unneeded memory. So even though you get that tiny performance cost, it&#8217;s actually canceled out by a performance GAIN (most of the time, since nothing is certain with computers).<br />
I hope my rather long reply was enlightening/informative to at least someone, and I apologize if it was boring to you! <img src='http://www.multimolti.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />
<div class="ratingblock ">
<div class="gdsrdebug">VA:F [1.0.7_345]</div>
<div id="comment_rater_29309" class="ratecmm">
<div class="starsbar">
<div class="outer" align="left">
<div id="gdr_vote_29309" style="width: 0px;" class="inner"></div>
<div id="gdr_stars_29309" class="gdsr_rating_as"><a id="gdsrX29309X5X0XcXcomment_rater_29309Xcomment_loader_29309" title="5 out of 5" class="s5" rel="nofollow"></a><a id="gdsrX29309X4X0XcXcomment_rater_29309Xcomment_loader_29309" title="4 out of 5" class="s4" rel="nofollow"></a><a id="gdsrX29309X3X0XcXcomment_rater_29309Xcomment_loader_29309" title="3 out of 5" class="s3" rel="nofollow"></a><a id="gdsrX29309X2X0XcXcomment_rater_29309Xcomment_loader_29309" title="2 out of 5" class="s2" rel="nofollow"></a><a id="gdsrX29309X1X0XcXcomment_rater_29309Xcomment_loader_29309" title="1 out of 5" class="s1" rel="nofollow"></a></div>
</div>
</div>
</div>
<div id="comment_loader_29309" style="display: none; width:60px;" class="ratingloadercomment">
<div class="loader circle ">
<div class="loaderinner">please wait...</div>
</div>
</div>
<div id="gdr_text_29309" class=" comment">Rating: 0.0/<strong>5</strong> (0 votes cast)</div>
</div>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lennart Moltrecht (admin)</title>
		<link>http://www.multimolti.com/blog/2008/11/19/how-to-decompilereverse-engineerdisassemble-any-xna-game/comment-page-1/#comment-29307</link>
		<dc:creator>Lennart Moltrecht (admin)</dc:creator>
		<pubDate>Tue, 13 Oct 2009 08:56:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.multimolti.de/blog/?p=153#comment-29307</guid>
		<description>He should write English... thats what Google Translate gives me:
&quot;Yeah. In this blog though commentators normal .. And then usually write in the comments all nonsense.&quot;</description>
		<content:encoded><![CDATA[<p>He should write English&#8230; thats what Google Translate gives me:<br />
&#8220;Yeah. In this blog though commentators normal .. And then usually write in the comments all nonsense.&#8221;
<div class="ratingblock ">
<div class="gdsrdebug">VN:F [1.0.7_345]</div>
<div id="comment_rater_29307" class="ratecmm">
<div class="starsbar">
<div class="outer" align="left">
<div id="gdr_vote_29307" style="width: 0px;" class="inner"></div>
<div id="gdr_stars_29307" class="gdsr_rating_as"><a id="gdsrX29307X5X0XcXcomment_rater_29307Xcomment_loader_29307" title="5 out of 5" class="s5" rel="nofollow"></a><a id="gdsrX29307X4X0XcXcomment_rater_29307Xcomment_loader_29307" title="4 out of 5" class="s4" rel="nofollow"></a><a id="gdsrX29307X3X0XcXcomment_rater_29307Xcomment_loader_29307" title="3 out of 5" class="s3" rel="nofollow"></a><a id="gdsrX29307X2X0XcXcomment_rater_29307Xcomment_loader_29307" title="2 out of 5" class="s2" rel="nofollow"></a><a id="gdsrX29307X1X0XcXcomment_rater_29307Xcomment_loader_29307" title="1 out of 5" class="s1" rel="nofollow"></a></div>
</div>
</div>
</div>
<div id="comment_loader_29307" style="display: none; width:60px;" class="ratingloadercomment">
<div class="loader circle ">
<div class="loaderinner">please wait...</div>
</div>
</div>
<div id="gdr_text_29307" class=" comment">Rating: 0.0/<strong>5</strong> (0 votes cast)</div>
</div>
]]></content:encoded>
	</item>
	<item>
		<title>By: kizivy</title>
		<link>http://www.multimolti.com/blog/2008/11/19/how-to-decompilereverse-engineerdisassemble-any-xna-game/comment-page-1/#comment-25192</link>
		<dc:creator>kizivy</dc:creator>
		<pubDate>Tue, 17 Mar 2009 20:46:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.multimolti.de/blog/?p=153#comment-25192</guid>
		<description>Да уж. В этом блоге хоть комментаторы нормальные.. А то пишут обычно в комментарии ерунду всякую.</description>
		<content:encoded><![CDATA[<p>Да уж. В этом блоге хоть комментаторы нормальные.. А то пишут обычно в комментарии ерунду всякую.
<div class="ratingblock ">
<div class="gdsrdebug">VA:F [1.0.7_345]</div>
<div id="comment_rater_25192" class="ratecmm">
<div class="starsbar">
<div class="outer" align="left">
<div id="gdr_vote_25192" style="width: 12px;" class="inner"></div>
<div id="gdr_stars_25192" class="gdsr_rating_as"><a id="gdsrX25192X5X0XcXcomment_rater_25192Xcomment_loader_25192" title="5 out of 5" class="s5" rel="nofollow"></a><a id="gdsrX25192X4X0XcXcomment_rater_25192Xcomment_loader_25192" title="4 out of 5" class="s4" rel="nofollow"></a><a id="gdsrX25192X3X0XcXcomment_rater_25192Xcomment_loader_25192" title="3 out of 5" class="s3" rel="nofollow"></a><a id="gdsrX25192X2X0XcXcomment_rater_25192Xcomment_loader_25192" title="2 out of 5" class="s2" rel="nofollow"></a><a id="gdsrX25192X1X0XcXcomment_rater_25192Xcomment_loader_25192" title="1 out of 5" class="s1" rel="nofollow"></a></div>
</div>
</div>
</div>
<div id="comment_loader_25192" style="display: none; width:60px;" class="ratingloadercomment">
<div class="loader circle ">
<div class="loaderinner">please wait...</div>
</div>
</div>
<div id="gdr_text_25192" class=" comment">Rating: 1.0/<strong>5</strong> (1 vote cast)</div>
</div>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://www.multimolti.com/blog/2008/11/19/how-to-decompilereverse-engineerdisassemble-any-xna-game/comment-page-1/#comment-12660</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Fri, 28 Nov 2008 21:35:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.multimolti.de/blog/?p=153#comment-12660</guid>
		<description>no, there is no way to get back the comments. the compiler just ignores them and doesnt put anything that reminds of them into the binary file.</description>
		<content:encoded><![CDATA[<p>no, there is no way to get back the comments. the compiler just ignores them and doesnt put anything that reminds of them into the binary file.
<div class="ratingblock ">
<div class="gdsrdebug">VN:F [1.0.7_345]</div>
<div id="comment_rater_12660" class="ratecmm">
<div class="starsbar">
<div class="outer" align="left">
<div id="gdr_vote_12660" style="width: 60px;" class="inner"></div>
<div id="gdr_stars_12660" class="gdsr_rating_as"><a id="gdsrX12660X5X0XcXcomment_rater_12660Xcomment_loader_12660" title="5 out of 5" class="s5" rel="nofollow"></a><a id="gdsrX12660X4X0XcXcomment_rater_12660Xcomment_loader_12660" title="4 out of 5" class="s4" rel="nofollow"></a><a id="gdsrX12660X3X0XcXcomment_rater_12660Xcomment_loader_12660" title="3 out of 5" class="s3" rel="nofollow"></a><a id="gdsrX12660X2X0XcXcomment_rater_12660Xcomment_loader_12660" title="2 out of 5" class="s2" rel="nofollow"></a><a id="gdsrX12660X1X0XcXcomment_rater_12660Xcomment_loader_12660" title="1 out of 5" class="s1" rel="nofollow"></a></div>
</div>
</div>
</div>
<div id="comment_loader_12660" style="display: none; width:60px;" class="ratingloadercomment">
<div class="loader circle ">
<div class="loaderinner">please wait...</div>
</div>
</div>
<div id="gdr_text_12660" class=" comment">Rating: 5.0/<strong>5</strong> (1 vote cast)</div>
</div>
]]></content:encoded>
	</item>
	<item>
		<title>By: Amber</title>
		<link>http://www.multimolti.com/blog/2008/11/19/how-to-decompilereverse-engineerdisassemble-any-xna-game/comment-page-1/#comment-9973</link>
		<dc:creator>Amber</dc:creator>
		<pubDate>Thu, 20 Nov 2008 02:29:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.multimolti.de/blog/?p=153#comment-9973</guid>
		<description>hahaha, this is great.   Reminds me of Flash.  You can decompile it and your left with source code that acts and does exactly what it&#039;s supposed to do but it&#039;s usually slightly different than the original.  Whats horrible is that you cannot get the comments out of the original source, is there any way to do that or is it not even included in the IL or whatever?

Amber</description>
		<content:encoded><![CDATA[<p>hahaha, this is great.   Reminds me of Flash.  You can decompile it and your left with source code that acts and does exactly what it&#8217;s supposed to do but it&#8217;s usually slightly different than the original.  Whats horrible is that you cannot get the comments out of the original source, is there any way to do that or is it not even included in the IL or whatever?</p>
<p>Amber
<div class="ratingblock ">
<div class="gdsrdebug">VA:F [1.0.7_345]</div>
<div id="comment_rater_9973" class="ratecmm">
<div class="starsbar">
<div class="outer" align="left">
<div id="gdr_vote_9973" style="width: 48px;" class="inner"></div>
<div id="gdr_stars_9973" class="gdsr_rating_as"><a id="gdsrX9973X5X0XcXcomment_rater_9973Xcomment_loader_9973" title="5 out of 5" class="s5" rel="nofollow"></a><a id="gdsrX9973X4X0XcXcomment_rater_9973Xcomment_loader_9973" title="4 out of 5" class="s4" rel="nofollow"></a><a id="gdsrX9973X3X0XcXcomment_rater_9973Xcomment_loader_9973" title="3 out of 5" class="s3" rel="nofollow"></a><a id="gdsrX9973X2X0XcXcomment_rater_9973Xcomment_loader_9973" title="2 out of 5" class="s2" rel="nofollow"></a><a id="gdsrX9973X1X0XcXcomment_rater_9973Xcomment_loader_9973" title="1 out of 5" class="s1" rel="nofollow"></a></div>
</div>
</div>
</div>
<div id="comment_loader_9973" style="display: none; width:60px;" class="ratingloadercomment">
<div class="loader circle ">
<div class="loaderinner">please wait...</div>
</div>
</div>
<div id="gdr_text_9973" class=" comment">Rating: 4.0/<strong>5</strong> (2 votes cast)</div>
</div>
]]></content:encoded>
	</item>
</channel>
</rss>
