IsBadWritePtr を書き換えてみた
IsBadXxxxPtr系APIは使用禁止 - yohhoyの日記
こんなのを見かけたのだけど
拡張カーネルの中で実はIsBadWritePtrを使っている ・ω・
こんなのを見かけたのだけど
拡張カーネルの中で実はIsBadWritePtrを使っている ・ω・
_declspec(naked) _declspec(dllexport) bool IsBadReadPtr2(void* p,int size)
{
_asm{
push ebp
mov ebp,esp
sub esp,0x20
push esi
push 1ch
lea edx,[ebp-0x20]
push edx
mov esi,[ebp+0xc]
add esi,[ebp+0x8]
push DWORD PTR[ebp+8]
call DWORD PTR VirtualQuery
test eax,eax
jz L1
xor eax,eax
sub esi,dword ptr [ebp-14h]
sub esi,dword ptr [ebp-20h]
jnc L1
mov edx,dword ptr [ebp-0Ch]
test edx,0x101 // PAGE_NOACCESS | PAGE_GUARD
jz L2
and edx,0xcc // PAGE_READWRITE | PAGE_WRITECOPY | PAGE_EXECUTE_READWRITE|PAGE_EXECUTE_WRITECOPY
neg edx
sbb edx,edx
add edx,1
mov eax,edx
mov eax,edx
jmp L2
L1: inc eax
L2:
pop esi
add esp,0x20
leave
retn 8
}
}
and edx,0xcc のところを変えれば、IsBadReadになるね・ω・
Comments