一个数组赋值的问题
对于这个我老郁闷了,我要读一段内存,然后把和 value 的值相同的内存地址放入数组 Find 中,代码如下.data
Find db 4096*4 dup(0)
.code
.......
_Find proc
local @Buf[5000]:BYTE
local @buffer[256]:BYTE
mov Base,00401000h
.while Base < 007fffffh
invoke ReadProcessMemory,NULL,Base,addr @Buf,4096,NULL
.if eax
mov i,0
.while i < 4096
mov ebx,i
mov dx,value
.if WORD ptr @Buf[ebx] == dx
mov ecx,i
add ecx,Base
mov DWORD ptr Find[ebx*4],ecx ;在这把地址放进去
invoke wsprintf,addr @buffer,addr szMemory,ecx,value ;szMemory的格式是 '地址%08x 值%d'
invoke SendDlgItemMessage,hWinMain,IDC_LISTBOX,LB_ADDSTRING,0,addr @buffer ;这是列表框,把符合的结果写入
.endif
inc i
.endw
.endif
mov eax,Base
add eax,4096
mov Base,eax
.endw
结果非常郁闷,Find 中的值始终为零,比如我在后面希望将存入的地址写在另一个列表框上
mov i,0
mov ebx,i
.while DWORD ptr Find[ebx*4] != 0
invoke wsprintf,addr @buffer,addr szMemory,DWORD ptr Find[ebx*4],value
invoke SendDlgItemMessage,hWinMain,IDC_LISTBOX2,LB_ADDSTRING,0,addr @buffer
inc i
mov ebx,i
.endw
完全不行啊……真是弄得我不得其解,求高手赐教