.text:00401000 ; int __cdecl main(int argc,const char **argv,const char *envp)
.text:00401000 _main proc near ; CODE XREF: start+16Ep
.text:00401000 push 1Ch //这里是PlayerInfo的信息 可是他怎么知道PlayerInfo的长度的呢
又没用sizeof什么的函数计算过 怎么莫名奇妙就知道1cH?
.text:00401002 call ??2@YAPAXI@Z ; operator new(uint)
.text:00401007 mov dword_40A740, eax //过完new PlayerInfo后 eax的地址总是不变 无论用od加载几次 就是没变过 不是说new是在堆里动态分配内存吗? 这里怎么不是动态的啊????
.text:0040100C add esp, 4
.text:0040100F xor ecx, ecx
.text:00401011 mov [eax], ecx
.text:00401013 mov [eax+4], ecx
.text:00401016 mov [eax+8], ecx
.text:00401019 mov [eax+0Ch], ecx
.text:0040101C mov [eax+10h], ecx
.text:0040101F mov [eax+14h], ecx
.text:00401022 mov [eax+18h], ecx
#include "stdafx.h"
#include "common.h"
PlayerInfo *pPlayer;
main()
{
pPlayer=new PlayerInfo;
ZeroMemory(pPlayer,sizeof(PlayerInfo));
while(true)
{
system("cls");
。。。
}
}
common.h:
struct PlayerInfo
{
int x;
int y;
int z; //
int hp;
int hp_max;
int mp;
int mp_max;
};
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课