主题:请教一个搜索内存问题
问题是这样的:
我需要在目标程序代码中搜索一个存放 0x442AFF 或 442AFB 数据的地址
我在它的进程用消息勾子加载一个DLL
下面是C++在DLL中搜索的函数:
DWORD SearchAddress(){
//从 0x4200000 - 5500000 搜索地址(已知该地址会在这个区间)
DWORD Address=0;
_asm{
pushad
mov edi,0x4200000
SearchStar:
mov eax,dword ptr ds:[edi]
cmp eax,0x442AFB
jz SearchEnd
cmp eax,0x442AFF
jz SearchEnd
add edi,1
cmp edi,0x5500000
ja SearchFail
jmp SearchStar
SearchEnd:
mov Address,edi
SearchFail:
popad
}
return Address;
}
但结果返回的总是0,(我确定该地址区间一定有这二个值之一)
请高手指教一下哪里有错误
我需要在目标程序代码中搜索一个存放 0x442AFF 或 442AFB 数据的地址
我在它的进程用消息勾子加载一个DLL
下面是C++在DLL中搜索的函数:
DWORD SearchAddress(){
//从 0x4200000 - 5500000 搜索地址(已知该地址会在这个区间)
DWORD Address=0;
_asm{
pushad
mov edi,0x4200000
SearchStar:
mov eax,dword ptr ds:[edi]
cmp eax,0x442AFB
jz SearchEnd
cmp eax,0x442AFF
jz SearchEnd
add edi,1
cmp edi,0x5500000
ja SearchFail
jmp SearchStar
SearchEnd:
mov Address,edi
SearchFail:
popad
}
return Address;
}
但结果返回的总是0,(我确定该地址区间一定有这二个值之一)
请高手指教一下哪里有错误