var iatw
var fi
var ff15
var tmp1
var tmp2
var tmp3
var tmp4
bpwm 401000, 1
esto
BPMC
gmemi eip,MEMORYBASE
mov fi,$RESULT
find fi,
cmp $RESULT,0
je error
mov iatw,$RESULT
mov [iatw],
find fi,
cmp $RESULT,0
je error
bphws $RESULT,"x"
esto
bphwc
mov [iatw],
find fi,
cmp $RESULT,0
je error
mov ff15,$RESULT
mov [ff15-3],
find fi,
cmp $RESULT,0
je error
mov tmp,$RESULT
bphws tmp,"x"
esto
bphwc
alloc 1000
mov tmp1,$RESULT
mov tmp2,tmp
mov [tmp1],
add tmp2,6
eval "jmp {tmp2}"
mov tmp3,$RESULT
asm tmp1+10,tmp3
asm tmp1+26,tmp3
eval "jmp {tmp1}"
asm eip,$RESULT
find fi,
cmp $RESULT,0
je error
mov fixff15,$RESULT
mov [fixff15],
find fi,
cmp $RESULT,0
je error
bphws $RESULT,"x"
find fi,
cmp $RESULT,0
je error
mov tmp4,$RESULT
mov [tmp4+3],
esto
bphwc
mov [ff15-3],
mov [tmp],
mov [fixff15],
mov [tmp4+3],
findoep:
gpa "VirtualProtect","kernel32.dll"
bpcnd $RESULT, "[esp+4]==00401000"
esto
bc
rtu
GMEMI 00401000, MEMORYSIZE
bprm 401000, $RESULT
esto
esto
bpmc
ret
暂时只支持VC程序修复IAT