为什么码码注入器调Call能用。VC++写了用不了,游戏崩溃
movecx,movecx,
movecx,
movecx,
movecx,
movecx,
push145
call 00489bc0
这个用代码注入器没用问题。
用VC写的
voidUgead()
{
_asm
{
movecx,
movecx,
movecx,
movecx,
movecx,
movecx,
push0x145
moveax,0x00489bc0
calleax
}
}这代码直接崩溃,不知道怎么回事。点调试指向 movecx,这一句,这里两句movecx,注释起来又指向movecx, 这一句。只要是纯数字就崩溃了,
然后我又改成
voidUgead()
{
int *p = NULL;
p = (int *)0x00D0DF1C;
p =(int *)(p+0x1c);
p =(int *)(p+0x8);
p =(int *)(p+0x1c);
p =(int *)(p+0x8);
p =(int *)(p+0x28);
_asm
{
movecx,p
push0x145
mov edx,0x00489bc0
call edx
}
}
这个游戏倒不崩了。但和实际的功能还是有点差别。不知道怎么回事。求指点。。
另外:
void CallJiNeng()
{
_asm
{
push 0
push 0
push -1
push -1
push 0
push 0
push 0x0f
movecx,
movecx,
movecx,
movedx,0x00492140
call edx
}
}
这CALL也是直接崩溃。改成C++针指的也不行。。 好像是push 的时候就崩了。都没有执行到mov 指令。求大神指点。。新手。 谢谢啊
movecx,
change:
mov ecx,0x00D0DF1C
mov ecx,
try it now 先 mov ecx,0x00D0DF1C
然后再 mov ecx, _asm
{
pushad
movecx,0xD0DF1C
mov ecx,
movecx,
movecx,
movecx,
movecx,
movecx,
push0x145
moveax,0x489bc0
calleax
paoad
}
DWORD oneecx=*(DWORD*)(*(DWORD*)(*(DWORD*)(*(DWORD*)(*(DWORD*)(*(DWORD*)(0xD0DF1C)+0x1C)+0x8)+0x1C)+0x8)+0x28);
_asm
{
pushad
movecx,oneecx
push0x145
moveax,0x489bc0
calleax
paoad
}
_asm
{
pushad
push 0x0
push 0x0
push -0x1
push -0x1
push 0x0
push 0x0
push 0xF
movecx,0xD0DF1C
mov ecx,
movecx,
movecx,
movedx,0x492140
call edx
popad
}
DWORD oneecx=*(DWORD*)(*(DWORD*)(*(DWORD*)(0xD0DF1C)+0x1C)+0x28);
_asm
{
pushad
push 0x0
push 0x0
push -0x1
push -0x1
push 0x0
push 0x0
push 0xF
mov ecx,oneecx
movedx,0x492140
call edx
popad
}
_asm
{
MOV XXX,DWORD PTR DS: 顶楼主啦..希望楼主多发精品好帖啦.... 回帖纯属支持楼主,希望楼主多奉献好的作品。 撒娇看喇叭那块临急抱佛脚卡拉苏立峰
页:
[1]