<?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>Good script for IAT resolving for HASP envelop(cracklab.ru)</title>
                            <pubDate>Fri, 18 Jul 2008 09:22:34 -0500</pubDate>
                                        <link>https://www.openrce.org/blog/view/1196/Good_script_for_IAT_resolving_for_HASP_envelop(cracklab.ru)</link>
                                        <author>ktoto &lt;email-suppressed@example.com&gt;</author>
                                                    <description>/*&lt;br /&gt;
/////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
	HASP_HL Envelop 1.2x/1.3x import resolver script v0.1a&lt;br /&gt;
	Author:	s0cpy&lt;br /&gt;
	Email : s0cpy.store@gmail.com&lt;br /&gt;
	OS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: WinXP SP2, Ollydbg 1.1, ODbgScript 1.65.4&lt;br /&gt;
	Date&amp;nbsp;&amp;nbsp;: 2008-01-12&lt;br /&gt;
&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;Action: Fix IAT, but not fix emulated functions.&lt;br /&gt;
	Config: Ignore all exceptions, start from OEP.&lt;br /&gt;
/////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
var prtc_sec&lt;br /&gt;
var iat_cell&lt;br /&gt;
var ss&lt;br /&gt;
var es&lt;br /&gt;
var gtc&lt;br /&gt;
var endp&lt;br /&gt;
var iatstart&lt;br /&gt;
var iatend&lt;br /&gt;
var gtc_c&lt;br /&gt;
var sysmod&lt;br /&gt;
&lt;br /&gt;
gpa &amp;quot;GetTickCount&amp;quot;, &amp;quot;kernel32.dll&amp;quot;&lt;br /&gt;
mov gtc, $RESULT&lt;br /&gt;
ask &amp;quot;Enter start code section address&amp;quot;&lt;br /&gt;
cmp $RESULT, 0&lt;br /&gt;
je @halt&lt;br /&gt;
mov ss, $RESULT&lt;br /&gt;
mov es, $RESULT&lt;br /&gt;
ask &amp;quot;Enter start address of IAT&amp;quot;&lt;br /&gt;
cmp $RESULT, 0&lt;br /&gt;
je @halt&lt;br /&gt;
mov iatstart, $RESULT&lt;br /&gt;
ask &amp;quot;Enter end address of IAT&amp;quot;&lt;br /&gt;
cmp $RESULT, 0&lt;br /&gt;
je @halt&lt;br /&gt;
mov iatend, $RESULT&lt;br /&gt;
ask &amp;quot;Enter start address of `.protect` section&amp;quot;&lt;br /&gt;
cmp $RESULT, 0&lt;br /&gt;
je @halt&lt;br /&gt;
mov prtc_sec, $RESULT&lt;br /&gt;
ask &amp;quot;Enter start address of system modules memory&amp;quot;&lt;br /&gt;
cmp $RESULT, 0&lt;br /&gt;
je @halt&lt;br /&gt;
mov sysmod, $RESULT&lt;br /&gt;
&lt;br /&gt;
@end_point:&lt;br /&gt;
find prtc_sec, #FFFF82D18BE55DC3#&lt;br /&gt;
mov endp, $RESULT&lt;br /&gt;
add endp, 4&lt;br /&gt;
bphws endp, &amp;quot;x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@search:&lt;br /&gt;
cmp iat_cell, iatend&lt;br /&gt;
je @halt&lt;br /&gt;
mov iat_cell, iatstart&lt;br /&gt;
cmp [iatstart], 00000000&lt;br /&gt;
add iatstart, 4&lt;br /&gt;
je @search&lt;br /&gt;
cmp [iat_cell], sysmod&lt;br /&gt;
ja @search&lt;br /&gt;
&lt;br /&gt;
@scan:&lt;br /&gt;
mov eip, [iat_cell]&lt;br /&gt;
jmp @run&lt;br /&gt;
&lt;br /&gt;
@count:&lt;br /&gt;
inc gtc_c&lt;br /&gt;
cmp gtc_c, 2&lt;br /&gt;
je @fix&lt;br /&gt;
&lt;br /&gt;
@run:&lt;br /&gt;
run&lt;br /&gt;
sti&lt;br /&gt;
sti&lt;br /&gt;
sti&lt;br /&gt;
cmp eip, gtc&lt;br /&gt;
je @count&lt;br /&gt;
cmp gtc_c, 0&lt;br /&gt;
je @search&lt;br /&gt;
&lt;br /&gt;
@zero_c:&lt;br /&gt;
mov gtc_c, 0&lt;br /&gt;
&lt;br /&gt;
@fix:&lt;br /&gt;
mov [iat_cell], eip&lt;br /&gt;
cmp iat_cell, iatend&lt;br /&gt;
je @halt&lt;br /&gt;
jmp @search&lt;br /&gt;
&lt;br /&gt;
@halt:&lt;br /&gt;
bphwc endp&lt;br /&gt;
mov eip, oep&lt;br /&gt;
an eip&lt;br /&gt;
pause&lt;br /&gt;
ret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
</description>
                    </item>
            </channel>
</rss>
