<?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>2 anti-trace mechanisms specific to windows x64</title>
                            <pubDate>Fri, 08 Mar 2013 16:13:08 -0600</pubDate>
                                        <link>https://www.openrce.org/blog/view/4515/2_anti-trace_mechanisms_specific_to_windows_x64</link>
                                        <author>everdox &lt;email-suppressed@example.com&gt;</author>
                                                    <description>&lt;a href=&quot;http://everdox.blogspot.com/2013/03/2-anti-tracing-mechanisms-specific-to.html&quot;&gt;http://everdox.blogspot.com/2013/03/2-anti-tracing-mechanisms-specific-to.html&lt;/a&gt;</description>
                    </item>
                <item>
            <title>Advanced debugging techniques</title>
                            <pubDate>Thu, 07 Mar 2013 09:02:54 -0600</pubDate>
                                        <link>https://www.openrce.org/blog/view/4513/Advanced_debugging_techniques</link>
                                        <author>everdox &lt;email-suppressed@example.com&gt;</author>
                                                    <description>This article explains how from user-mode we can use NtSetInformationProcess to install an InstrumentationCallback which we can use to monitor access to the following callbacks, without actually hooking them in memory.&lt;br /&gt;
&lt;br /&gt;
This member only exists in x64 versions of windows.&lt;br /&gt;
&lt;br /&gt;
LdrInitializeThunk&lt;br /&gt;
KiUserExceptionDispatcher&lt;br /&gt;
KiRaiseUserExceptionDispatcher&lt;br /&gt;
KiUserApcDispatcher&lt;br /&gt;
KiUserCallbackDispatcher&lt;br /&gt;
&lt;br /&gt;
as well as all system calls.&lt;br /&gt;
&lt;br /&gt;
Please note that the InstrumentationCallback member of KPROCESS can only be set from user-mode if the target process is NOT running in the wow64 thunk layer. If you want to use this feature for wow64 processes you must use a driver or go in manually with KD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.codeproject.com/Articles/543542/Windows-x64-system-service-hooks-and-advanced-debu&quot;&gt;http://www.codeproject.com/Articles/543542/Windows-x64-system-service-hooks-and-advanced-debu&lt;/a&gt;</description>
                    </item>
                <item>
            <title>Branch tracing and LBR access from user-mode in windows.</title>
                            <pubDate>Wed, 06 Mar 2013 10:48:32 -0600</pubDate>
                                        <link>https://www.openrce.org/blog/view/4512/Branch_tracing_and_LBR_access_from_user-mode_in_windows.</link>
                                        <author>everdox &lt;email-suppressed@example.com&gt;</author>
                                                    <description>This article is an in-depth explanation of leveraging access to the debug_ctl MSR's from user-mode and how windows provides access to LBRs in it's ExceptionInformation[] structure.&lt;br /&gt;
&lt;br /&gt;
The article goes on to explain a quick trick I discovered where the last branch can be located when a caller nukes it's call stack prior to a branch.&lt;br /&gt;
&lt;br /&gt;
The article also explains how the features can be used to detect whether or not the program runs under the control of certain hyper-visors. &lt;br /&gt;
&lt;br /&gt;
The in depth article can be found here: &lt;a href=&quot;http://www.codeproject.com/Articles/517466/Last-branch-records-and-branch-tracing&quot;&gt;http://www.codeproject.com/Articles/517466/Last-branch-records-and-branch-tracing&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
An older article not by me discussing these features can also be found here: &lt;a href=&quot;http://www.openrce.org/blog/view/535/Branch_Tracing_with_Intel_MSR_Registers&quot;&gt;http://www.openrce.org/blog/view/535/Branch_Tracing_with_Intel_MSR_Registers&lt;/a&gt;</description>
                    </item>
                <item>
            <title>Using pre-paged in virtual memory as an anti-dumping and anti-debugging mechanism</title>
                            <pubDate>Tue, 05 Mar 2013 14:00:25 -0600</pubDate>
                                        <link>https://www.openrce.org/blog/view/4511/Using_pre-paged_in_virtual_memory_as_an_anti-dumping_and_anti-debugging_mechanism</link>
                                        <author>everdox &lt;email-suppressed@example.com&gt;</author>
                                                    <description>&lt;a href=&quot;http://everdox.blogspot.com/2013/03/utilizing-paged-virtual-memory-as-anti.html&quot;&gt;http://everdox.blogspot.com/2013/03/utilizing-paged-virtual-memory-as-anti.html&lt;/a&gt;</description>
                    </item>
                <item>
            <title>Context switches and cycle time counting as anti-debug mechanism</title>
                            <pubDate>Tue, 05 Mar 2013 13:59:02 -0600</pubDate>
                                        <link>https://www.openrce.org/blog/view/4510/Context_switches_and_cycle_time_counting_as_anti-debug_mechanism</link>
                                        <author>everdox &lt;email-suppressed@example.com&gt;</author>
                                                    <description>&lt;a href=&quot;http://everdox.blogspot.com/2013/02/infer-debugger-presense-by-counting.html&quot;&gt;http://everdox.blogspot.com/2013/02/infer-debugger-presense-by-counting.html&lt;/a&gt;</description>
                    </item>
            </channel>
</rss>
