<?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>How to hook a SEH?</title>
                            <pubDate>Wed, 09 Nov 2005 08:13:20 -0600</pubDate>
                                        <link>https://www.openrce.org/blog/view/74/How_to_hook_a_SEH?</link>
                                        <author>Mattwood &lt;email-suppressed@example.com&gt;</author>
                                                    <description>I writed a tutorial wich explain how to hook a SEH to give answer to the people who wanna know how i worked.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.pastapolis.info/?eax=00000002&quot;&gt;http://www.pastapolis.info/?eax=00000002&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.pastapolis.info/tutorials/Bypass%20Hardware%20Breakpoint%20Protection.pdf&quot;&gt;http://www.pastapolis.info/tutorials/Bypass%20Hardware%20Breakpoint%20Protection.pdf&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I writed a program which hook hiself :&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.pastapolis.info/misc/standalone_hooker.c&quot;&gt;http://www.pastapolis.info/misc/standalone_hooker.c&lt;/a&gt;</description>
                    </item>
                <item>
            <title>Anti Anti Hardware Breakpoint plugin [ollydbg]</title>
                            <pubDate>Wed, 09 Nov 2005 08:11:28 -0600</pubDate>
                                        <link>https://www.openrce.org/blog/view/73/Anti_Anti_Hardware_Breakpoint_plugin_[ollydbg]</link>
                                        <author>Mattwood &lt;email-suppressed@example.com&gt;</author>
                                                    <description>Ollydbg Anti Anti Hardware Breakpoint&lt;br /&gt;
 Copyright (c) 2005 - Mattwood^FRET - mattwood9@gmail.com - www.pastapolis.info - http://reverseengineering.online.fr/spip/&lt;br /&gt;
&lt;br /&gt;
- *How install it?&lt;br /&gt;
&lt;br /&gt;
set olly_hardware_breakpoint.dll in the ollydbg dir.&lt;br /&gt;
&lt;br /&gt;
And if you want to use the user32.dll global loadlibrary add ravioli.dll in the System32 directory and ravioli.dll to the registery.&lt;br /&gt;
else set ravioli.dll in the same dir as olly_hardware_breakpoint.dll.&lt;br /&gt;
&lt;br /&gt;
- * What does this plugin?&lt;br /&gt;
&lt;br /&gt;
It hook ntdll i writed a tutorial about it.&lt;br /&gt;
&lt;a href=&quot;http://reverseengineering.online.fr/spip/article.php3?id_article=53&quot;&gt;http://reverseengineering.online.fr/spip/article.php3?id_article=53&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
- * How to use it?&lt;br /&gt;
&lt;br /&gt;
If the target doesn't use user32.dll :&lt;br /&gt;
	When you load a program do a F7 or F8 and in the menu and Force to load the dll.&lt;br /&gt;
&lt;br /&gt;
Else it's good :)&lt;br /&gt;
&lt;br /&gt;
If you wanna remove the hook in ntdll goto the menu and Remove the hook :].&lt;br /&gt;
&lt;br /&gt;
- * Note?&lt;br /&gt;
&lt;br /&gt;
Yep, it's a simple version. I load the dll like a pig :]&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
&lt;br /&gt;
Mattwood^FRET</description>
                    </item>
                <item>
            <title>Ooops sorry !</title>
                            <pubDate>Wed, 09 Nov 2005 08:06:46 -0600</pubDate>
                                        <link>https://www.openrce.org/blog/view/72/Ooops_sorry_!</link>
                                        <author>Mattwood &lt;email-suppressed@example.com&gt;</author>
                                                    <description>I just see i forgotten to alert you that my polymorphic breakpoint got a bug :] a dumb bug :]&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://ollydbg.win32asmcommunity.net/index.php?action=vthread&amp;amp;forum=2&amp;amp;topic=1516&quot;&gt;http://ollydbg.win32asmcommunity.net/index.php?action=vthread&amp;amp;forum=2&amp;amp;topic=1516&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The new version can be found here :&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://reverseengineering.online.fr/spip/article.php3?id_article=50&quot;&gt;http://reverseengineering.online.fr/spip/article.php3?id_article=50&lt;/a&gt;</description>
                    </item>
                <item>
            <title>Polymorphic Breakpoint For Ollydbg</title>
                            <pubDate>Sat, 15 Oct 2005 07:30:13 -0500</pubDate>
                                        <link>https://www.openrce.org/blog/view/59/Polymorphic_Breakpoint_For_Ollydbg</link>
                                        <author>Mattwood &lt;email-suppressed@example.com&gt;</author>
                                                    <description>It's a newplugin for ollydbg i have coded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can download it at : &lt;a href=&quot;http://reverseengineering.online.fr/spip/article.php3?id_article=50&quot;&gt;http://reverseengineering.online.fr/spip/article.php3?id_article=50&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
README:&lt;br /&gt;
Ollydbg Polymorphic Breakpoint Manager&lt;br /&gt;
 Copyright (c) 2005 - Mattwood^FRET - mattwood9@gmail.com - http://reverseengineering.online.fr/spip/&lt;br /&gt;
&lt;br /&gt;
- * What does this plugin do?&lt;br /&gt;
&lt;br /&gt;
Classical breakpoint like 0CCh or 0EBh,0FEh are very easy to find just with a little antibreakpoint tricks likes :&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;00DE31FA&amp;nbsp;&amp;nbsp;|.&amp;nbsp;&amp;nbsp;B8 60060000&amp;nbsp;&amp;nbsp; MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EAX,660&lt;br /&gt;
00DE31FF&amp;nbsp;&amp;nbsp;|.&amp;nbsp;&amp;nbsp;C1E8 03&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SHR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EAX,3&lt;br /&gt;
00DE3202&amp;nbsp;&amp;nbsp;|.&amp;nbsp;&amp;nbsp;F2:AE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REPNE&amp;nbsp;&amp;nbsp; SCAS BYTE PTR ES:[EDI]&lt;br /&gt;
00DE3204&amp;nbsp;&amp;nbsp;|.&amp;nbsp;&amp;nbsp;85C9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TEST&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ECX,ECX&lt;br /&gt;
00DE3206&amp;nbsp;&amp;nbsp;|.&amp;nbsp;&amp;nbsp;74 04&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SHORT &amp;lt;0x90f.badboy&amp;gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
The common way was to set a 0EBh,0FEh for bypass this little protection, but it's not very efficient.&lt;br /&gt;
&lt;br /&gt;
The way of the plugin is to set a polymorphic EBFE likes :&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;00DE321C&amp;nbsp;&amp;nbsp; .&amp;nbsp;&amp;nbsp;E8 02000000&amp;nbsp;&amp;nbsp; CALL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0x90f.00DE3223&lt;br /&gt;
00DE3221&amp;nbsp;&amp;nbsp; .&amp;nbsp;&amp;nbsp;DCED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FSUB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ST(5),ST&lt;br /&gt;
00DE3223&amp;nbsp;&amp;nbsp; $&amp;nbsp;&amp;nbsp;813424 371300&amp;gt;XOR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DWORD PTR SS:[ESP],1337&lt;br /&gt;
00DE322A&amp;nbsp;&amp;nbsp; .- FF2424&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JMP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NEAR DWORD PTR SS:[ESP]&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Here the routine decrypt DCED with 1337 and the word at [00DE3221] = EBFE, but this way need to special right : the section must be writable.&lt;br /&gt;
&lt;br /&gt;
So i have created a second way wich use the stack :&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;00DE320C&amp;nbsp;&amp;nbsp; &amp;gt; \E8 00000000&amp;nbsp;&amp;nbsp; CALL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0x90f.00DE3211&lt;br /&gt;
00DE3211&amp;nbsp;&amp;nbsp; $&amp;nbsp;&amp;nbsp;66:68 21FE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PUSH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0FE21&lt;br /&gt;
00DE3215&amp;nbsp;&amp;nbsp; .&amp;nbsp;&amp;nbsp;803424 CA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XOR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BYTE PTR SS:[ESP],0CA&lt;br /&gt;
00DE3219&amp;nbsp;&amp;nbsp; .- FFE4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JMP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NEAR ESP&lt;/code&gt;&lt;br /&gt;
This way is universal.&lt;br /&gt;
&lt;br /&gt;
- * The Polymorphic isn't to big for small function?&lt;br /&gt;
&lt;br /&gt;
I already look at function likes GetCommandLineA :), they have a very nice padding :)&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;GetCommand&amp;gt;&amp;nbsp;&amp;nbsp;A1 F435887C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EAX,DWORD PTR DS:[7C8835F4]&lt;br /&gt;
7C812C92&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RETN&lt;br /&gt;
7C812C93&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NOP&lt;br /&gt;
7C812C94&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NOP&lt;br /&gt;
7C812C95&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NOP&lt;br /&gt;
7C812C96&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NOP&lt;br /&gt;
7C812C97&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NOP&lt;br /&gt;
7C812C98&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FFFF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;???&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;; Unknown command&lt;br /&gt;
7C812C9A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FFFF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;???&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;; Unknown command&lt;br /&gt;
7C812C9C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BYTE PTR DS:[EAX],AL&lt;br /&gt;
7C812C9E&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ADD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BYTE PTR DS:[EAX],AL&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
nice no? :)&lt;br /&gt;
&lt;br /&gt;
- * How to delete this breakpoint?&lt;br /&gt;
&lt;br /&gt;
I coded a manager for this plugin who can delete breakpoint.&lt;br /&gt;
&lt;br /&gt;
- * Note?&lt;br /&gt;
&lt;br /&gt;
Yep, it's a concept of the polymorphic breakpoint so i suggest you to change the default breakpoint wich i added.&lt;br /&gt;
&lt;br /&gt;
Cheers,&lt;br /&gt;
&lt;br /&gt;
Mattwood^FRET</description>
                    </item>
            </channel>
</rss>
