void call_寻路(int x,int y)
{
int x基址=0x00400000+基址_x座标;
int y基址=0x00400000+基址_y座标;
char x字串[10],y字串[10];
while(*(int*)(0x00400000+基址_画面读取状态)==0x01)
{
Sleep(2000);
}
if(*(int*)(0x00400000+基址_画面读取状态)==0x00)
{
if(ConditionalCompilation==1)
{
Error=fopen_s(&FileNumber,RunLogPath,"a+");//建个運行日誌文件
if(Error==0)
{
fprintf(FileNumber,"call_寻路%d,%d\n",x,y);
}
fclose(FileNumber);
}
_itoa_s(x,x字串,10,10);
_itoa_s(y,y字串,10,10);
_asm
{
lea ebx,x字串
mov ebx,[ebx]
mov ecx,x基址
mov [ecx],ebx
lea ebx,y字串
mov ebx,[ebx]
mov ecx,y基址
mov [ecx],ebx
}
call_按钮点击(*(int*)((*(int*)(0x00400000+基址_寻路基址))+0x01c*4));
}
}
这函数的流程是,把整数转成ascii码,例如x座标整数型为111的话,就转变成0x31,0x31,0x31
然後写入座标的基址里面,只是我觉得_itoa_s(x,x字串,10,10);这样的代码看起来很别扭,
是不是能用指针直接转成0x31,0x31,0x31这样的数据??
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)