<?xml version="1.0"?>
<rss version="2.0">
    <channel>
        <title>OpenRCE: Blog</title>
        <link>http://www.openrce.org/rss/feeds/blog</link>
        <description>OpenRCE: The Open Reverse Code Engineering Community</description>
                <item>
            <title>MS06-022</title>
                            <pubDate>Wed, 14 Jun 2006 14:30:33 -0500</pubDate>
                                        <link>https://www.openrce.org/blog/view/327/MS06-022</link>
                                        <author>Faithless &lt;email-suppressed@example.com&gt;</author>
                                                    <description>The MS06-022 .art patch is a pretty good example to use if you want to test the waters in running some binary patch analysis.&lt;br /&gt;
&lt;br /&gt;
The replaced files ( jgpl400.dll &amp;amp; jgdw400.dll ) are both tiny, and you can follow the code flow pretty easily. The guts of the patch is in jgpl400.dll, as the functions with the two versions of jgdw400.dll haven't actually changed.&lt;br /&gt;
&lt;br /&gt;
I've got a &lt;a href=&quot;https://www.openrce.org/repositories/users/Faithless/JgpStartUp.JPG&quot;&gt;comparison&lt;/a&gt; of the JgpStartUp code from jgpl400.dll where you can see the calls to JgAStartUp,&lt;br /&gt;
JgMDStartUP and sub_65B93190 have been dropped. &lt;br /&gt;
&lt;br /&gt;
As .art is effectively a compression algorithm, I'd expect the flaw to exist as a basic stack overflow, probably occuring through manipulation of an int read from the file used to allocate a buffer into which decompressed data is written. There is also a good deal of conditional _CxxThrowException calls that are now included. It looks like VERY old code, and there's little need for it to remain in use. I could only find two example .art files and very sparse documentation on&amp;nbsp;&amp;nbsp;this AOL format.&lt;br /&gt;
&lt;br /&gt;
Microsoft has seen the passing of .art's time too, if you apply the MS06-021 patch as well, .art support is removed from IE completely.&lt;br /&gt;
&lt;br /&gt;
I've also been looking at Malbolge, the programming language from hell lately. Hopefully there will be an article out of it that delves into Malbolge, and announces some tools.</description>
                    </item>
                <item>
            <title>Reverse Eng in .au &amp;amp; In memory patching</title>
                            <pubDate>Mon, 12 Jun 2006 02:50:24 -0500</pubDate>
                                        <link>https://www.openrce.org/blog/view/322/Reverse_Eng_in_.au_&amp;_In_memory_patching</link>
                                        <author>Faithless &lt;email-suppressed@example.com&gt;</author>
                                                    <description>I've been looking recently at the way reverse engineering is treated by Statute Law here in Australia. It's covered within the Copyright Act 1968 (with a few recent amendments) down in Division 4A. You can get links to the text of the &lt;a href=&quot;http://www.comlaw.gov.au/ComLaw/Legislation/ActCompilation1.nsf/0/2EF374C85E58AA59CA25714F000403AA/$file/Copyright1968.pdf&quot;&gt;Copyright Act 1968&lt;/a&gt; from ComLaw if you're interested, it's fairly readable by non-lawyers.&lt;br /&gt;
&lt;br /&gt;
While a vendor can set out one of those EULAs with the usual &amp;quot;you must not reverse engineer etc&amp;quot; provisions in the contract, the actual treatment of reverse engineering (IDA dumps etc are considered a reproduction in .au) and then adaptation on copyright is pretty interesting.&lt;br /&gt;
&lt;br /&gt;
Amongst other things, it's considered fine to: &lt;br /&gt;
- &amp;quot;Reproduce computer programs to make interoperable products&amp;quot; (&lt;i&gt;s. 47D&lt;/i&gt;),&lt;br /&gt;
&lt;br /&gt;
- &amp;quot;Reproducing computer programs for security testing&amp;quot; (&lt;i&gt;s. 47F&lt;/i&gt;)&lt;br /&gt;
&lt;br /&gt;
- &amp;quot;Reproducing computer programs to correct errors&amp;quot; (&lt;i&gt;s. 47E&lt;/i&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;(1) Subject to this Division, the copyright in a literary work that is a computer program is not infringed by the making of a reproduction or adaptation of the work if:&lt;br /&gt;
&lt;br /&gt;
(a) the reproduction or adaptation is made by, or on behalf of, &lt;br /&gt;
the owner or licensee of the copy of the program (the&lt;br /&gt;
original copy) used for making the reproduction or&lt;br /&gt;
adaptation; and&lt;br /&gt;
&lt;br /&gt;
(b) the reproduction or adaptation is made for the purpose of:&lt;br /&gt;
(i) testing in good faith the security of the original copy, or&lt;br /&gt;
of a computer system or network of which the original&lt;br /&gt;
copy is a part; or&lt;br /&gt;
(ii) investigating, or correcting, in good faith a security flaw&lt;br /&gt;
in, or the vulnerability to unauthorised access of, the&lt;br /&gt;
original copy, or of a computer system or network of&lt;br /&gt;
which the original copy is a part; and&lt;br /&gt;
&lt;br /&gt;
(c) the reproduction or adaptation is made only to the extent&lt;br /&gt;
reasonably necessary to achieve a purpose referred to in&lt;br /&gt;
paragraph (b); and&lt;br /&gt;
&lt;br /&gt;
(d) the information resulting from the making of the&lt;br /&gt;
reproduction or adaptation is not readily available to the&lt;br /&gt;
owner or licensee from another source when the reproduction&lt;br /&gt;
or adaptation is made.&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As a 'general' rule you can read the above statements with Reproduction == Reverse Engineered.&lt;br /&gt;
&lt;br /&gt;
The last section governing reproduction to correct errors interests me the most, as it's where I'm planning on doing a bit of digging over the next few weeks. Determina's 3rd party mshtml.dll in memory patch for the createTextRange vulnerability is another source you might like to look to for the work being done in this area.&lt;br /&gt;
&lt;br /&gt;
I haven't looked at the specifics of reverse engineering in other countries, but if you've got some reliable sources, or&amp;nbsp;&amp;nbsp;some experience in the legal side of things PM me and I'll update this with more info.</description>
                    </item>
                <item>
            <title>IE createTextRange() Vulnerability</title>
                            <pubDate>Fri, 24 Mar 2006 14:48:00 -0600</pubDate>
                                        <link>https://www.openrce.org/blog/view/256/IE_createTextRange()_Vulnerability</link>
                                        <author>Faithless &lt;email-suppressed@example.com&gt;</author>
                                                    <description>The .JS flavour of the moment:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&amp;lt;input type=&amp;quot;checkbox&amp;quot; id='c'&amp;gt; &lt;br /&gt;
&amp;lt;script&amp;gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r=document.getElementById(&amp;quot;c&amp;quot;); &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a=r.createTextRange(); &lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Spent some time looking into this bug, which has apparently been going around the traps for a couple of days. It really hit the big time when Stelian Ene reported it to Bugtraq ( &lt;a href=&quot;http://seclists.org/lists/bugtraq/2006/Mar/0410.html&quot;&gt;http://seclists.org/lists/bugtraq/2006/Mar/0410.html&lt;/a&gt; ) and then Andreas Sandblad of Secunia came public that they had independently found the same bug ( &lt;a href=&quot;http://secunia.com/advisories/18680/&quot;&gt;http://secunia.com/advisories/18680/&lt;/a&gt; ).&lt;br /&gt;
&lt;br /&gt;
It's a sign of the times that bugs are demonstratably being co-discovered by multiples parties. As Dave Aitel said as early&amp;nbsp;&amp;nbsp;as Jan 05:&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;&lt;i&gt;Multiple independent discoveries are more the rule than the exception&lt;/i&gt; - Dave Aitel&lt;/center&gt;&lt;br /&gt;
&lt;br /&gt;
That is, other researchers who've never looked at the vulnerability before can get stable code execution &lt;b&gt;in under 24 hours&lt;/b&gt;. Why assume it's always the &amp;quot;whitehats&amp;quot; who find these and report them? Rumours are the .WMF bug from late 2005 was sold for $4000 to install spyware and popups by one of the unknown original discoverers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hrmm, interesting concept, when we also look at the rapidly dropping time between public vulnerability announcement, and&amp;nbsp;&amp;nbsp;3rd party exploit code.&lt;br /&gt;
&lt;br /&gt;
- Compare SQL Slammer (Bulletin on July 24 2002 and exploit mass released on Jan 25 2003 - ~185 days)&lt;br /&gt;
- To Sasser (Bulletin on March 13 2004 and exploit mass released on April 1 2004 - ~17 days)&lt;br /&gt;
&lt;br /&gt;
But sure, this topic has been covered before ( for details see &lt;a href=&quot;http://www.trendmicro.com/NR/rdonlyres/5D55A679-5B64-485C-8B35-13F6A8026CE3/17118/Vulnerability_Record.pdf&quot;&gt;http://www.trendmicro.com/NR/rdonlyres/5D55A679-5B64-485C-8B35-13F6A8026CE3/17118/Vulnerability_Record.pdf&lt;/a&gt; ) so where does the latest IE exploit leave us? It's not just exploit code development thats improved rapidly with better documentation, examples and tools such the excellent Metasploit ( [url]www.metasploit.com[/url] ), but the actual vulnerabilities themselves are being found by a wider group of people, in more and more applications. For more info on this &lt;a href=&quot;http://www.google.com.au/search?hl=en&amp;amp;safe=off&amp;amp;q=code+fuzzers&amp;amp;btnG=Search&amp;amp;meta=&quot;&gt;http://www.google.com.au/search?hl=en&amp;amp;safe=off&amp;amp;q=code+fuzzers&amp;amp;btnG=Search&amp;amp;meta=&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Once your code is running reliably through a exploit, there's also much greater emphasise on IDS evasion and &amp;quot;sliding windows&amp;quot; of attack.&lt;br /&gt;
&lt;br /&gt;
I started looking at software vulnerabilities and code execution when I first saw spyware install itself automatically. Pretty suprising stuff to see. Initially, I thought the Symantec et. al idea of &amp;quot;use antivirus, antispyware, antimalware, antiphishing&amp;quot; products would provide protection. But what the hell, lets get your hands down and dirty, and figure out how remote code execution really works. Read a few BlackHat .pdf presentations by Aleph1, FX, HDMoore, Halvar Flake, Mike Lynn, or anything by any member of the Litchfield family :) . It'll teach you how x86/PPC works on a low-level, and it takes the voodoo mystery out of&amp;nbsp;&amp;nbsp;much of the malware-crud that's out there.&lt;br /&gt;
&lt;br /&gt;
By the way, it's not just &lt;i&gt;&amp;lt;input type=&amp;quot;checkbox&amp;quot;&amp;gt;&lt;/i&gt; that causes this memory corruption. :/&lt;br /&gt;
&lt;br /&gt;
It's going to be a big April MS Patch Tuesday.&lt;br /&gt;
&lt;br /&gt;
Maybe another blog article after this is patched might give me a chance to walk through some of the technical details of this vulnerability.</description>
                    </item>
            </channel>
</rss>
