21,458
社区成员
发帖
与我相关
我的任务
分享
_qHeapAlloc typedef proto stdcall :dword, :dword, :dword
_pHeapAlloc typedef ptr _qHeapAlloc
myAPI STRUCT
DefaultHeap dd ? ;这个是默认堆,我也已经获取好了。
HeapAlloc _pHeapAlloc ?
…… 还有其他的API
myAPI ENDS
assume ebx:ptr myAPI ;假设我给存储的结构体已经放入ebx了。
mov ecx, 123 ;--------------注意这里,实际没什么用,但正是我要问的问题。。。
invoke [ebx].HeapAlloc, [ebx].DefaultHeap, 0, edx ;假设我要申请的尺寸在edx中
;这里返回的eax是正确的,我已经测试过是个有效的内存指针,读写都没问题,这不是我要问的,所以这里不去管他;
mov eax, ecx ;-------------------这里我晕了,不应该是123吗?结果竟然是好几万的数字。。
push edx
push 00000000h
push dword ptr [ebx]
call dword ptr [ebx+04h]