<?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>IOCTL-Proxy</title>
                            <pubDate>Sun, 21 Dec 2008 12:03:22 -0600</pubDate>
                                        <link>https://www.openrce.org/blog/view/1332/IOCTL-Proxy</link>
                                        <author>g &lt;email-suppressed@example.com&gt;</author>
                                                    <description>This is a POC of IOCTL fuzzer. It gave surprisingly good results.&lt;br /&gt;
&lt;br /&gt;
IOCTL-Proxy works by hooking NtDeviceIoControlFile, manipulating its' parameters and feeding them to the real function.&lt;br /&gt;
&lt;br /&gt;
Load the driver and simply click around in application you want to test. &lt;br /&gt;
&lt;br /&gt;
You will get a lot of BSODS, be careful.&lt;br /&gt;
&lt;br /&gt;
PreviousMode==KernelMode is ignored, since we are only interested in calls from UserMode to KernelMode, not Kernel-&amp;gt;Kernel.&lt;br /&gt;
&lt;br /&gt;
Get it here:&lt;br /&gt;
&lt;a href=&quot;http://www.orange-bat.com&quot;&gt;http://www.orange-bat.com&lt;/a&gt;</description>
                    </item>
                <item>
            <title>Command line version of OSR's DeviceTree</title>
                            <pubDate>Tue, 16 Dec 2008 10:10:14 -0600</pubDate>
                                        <link>https://www.openrce.org/blog/view/1330/Command_line_version_of_OSR's_DeviceTree</link>
                                        <author>g &lt;email-suppressed@example.com&gt;</author>
                                                    <description>Get it here: &lt;a href=&quot;http://orange-bat.com/code/device.tree.cmd.rar&quot;&gt;http://orange-bat.com/code/device.tree.cmd.rar&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Sample output:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
Unloading ObjInfo driver&lt;br /&gt;
Loading driver: D:\tools\devicetree\i386\OBJINFO.SYS&lt;br /&gt;
No service, creating...&lt;br /&gt;
Service not running, starting...&lt;br /&gt;
Service started.&lt;br /&gt;
Driver object: 0x89c98a08&lt;br /&gt;
Service name: nvata&lt;br /&gt;
Device name: \Device\00000138, type: 0x00000007&lt;br /&gt;
Device name: \Device\NvAta2, type: 0x00000001&lt;br /&gt;
Device name: \Device\NvAta1, type: 0x00000001&lt;br /&gt;
Device name: \Device\NvAta0, type: 0x00000001&lt;br /&gt;
&lt;br /&gt;
Driver object: 0x89c8a8d0&lt;br /&gt;
Service name: NDIS&lt;br /&gt;
Device name: \Device\Ndis, type: 0x00000012&lt;br /&gt;
&lt;br /&gt;
Driver object: 0x89cdad28&lt;br /&gt;
Service name: KSecDD&lt;br /&gt;
Device name: \Device\KsecDD, type: 0x00000039&lt;br /&gt;
&lt;br /&gt;
Driver object: 0x8897b218&lt;br /&gt;
Service name: Beep&lt;br /&gt;
Device name: \Device\Beep, type: 0x00000001&lt;br /&gt;
&lt;br /&gt;
Driver object: 0x899e7418&lt;br /&gt;
Service name: Raspti&lt;br /&gt;
Device name: \Device\{AA56C973-4F1C-4D19-8BAC-4FA6F14D80CB}, type: 0x00000017&lt;br /&gt;
&lt;br /&gt;
Driver object: 0x89aab928&lt;br /&gt;
Service name: Mouclass&lt;br /&gt;
Device name: \Device\PointerClass1, type: 0x0000000f&lt;br /&gt;
Device name: \Device\PointerClass0, type: 0x00000000&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
&lt;/code&gt;</description>
                    </item>
                <item>
            <title>Fighting Oreans'  VM (code virtualizer flavour)</title>
                            <pubDate>Tue, 19 Aug 2008 12:27:29 -0500</pubDate>
                                        <link>https://www.openrce.org/blog/view/1248/Fighting_Oreans'__VM_(code_virtualizer_flavour)</link>
                                        <author>g &lt;email-suppressed@example.com&gt;</author>
                                                    <description>If you don't know what code virtualizer is, or how it works, you should read this first:&lt;br /&gt;
&lt;a href=&quot;http://rapidshare.com/files/16968098/Inside_Code_Virtualizer.rar&quot;&gt;http://rapidshare.com/files/16968098/Inside_Code_Virtualizer.rar&lt;/a&gt;&lt;br /&gt;
(Inside Code Virtualizer by scherzo)&lt;br /&gt;
&lt;br /&gt;
Now, as you probably already know from paper by scherzo ;), one possible way recover virtualized code is to identify each mutated handler (find corresponding non-mutated version). After this done, we can trace virtual opcodes and &amp;quot;decompile&amp;quot; them to VM instructions. Having &amp;quot;clean&amp;quot; decompiled output, we can translate it to x86 assembly. I consider the last step, to be simple &amp;quot;find and replace&amp;quot; job with flex/yacc. &lt;br /&gt;
&lt;br /&gt;
The problem is, oreans' vm engine can be a bitch. Consider this piece of code:&lt;br /&gt;
&lt;br /&gt;
continued at:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.woodmann.com/forum/showthread.php?t=12015&quot;&gt;http://www.woodmann.com/forum/showthread.php?t=12015&lt;/a&gt;</description>
                    </item>
            </channel>
</rss>
