Ghajdix 发表于 2015-4-18 20:20:49

为什么码码注入器调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 指令。求大神指点。。新手。 谢谢啊

haifon 发表于 2015-4-18 20:21:08

movecx,

change:

mov ecx,0x00D0DF1C
mov ecx,

try it now

juanzi 发表于 2015-4-18 20:21:40

先 mov ecx,0x00D0DF1C
然后再 mov ecx,

rg9695c36 发表于 2015-4-18 20:22:13

    _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
    }

zhuzhuli 发表于 2015-4-18 20:22:41

_asm
{
      MOV XXX,DWORD PTR DS:

robot 发表于 2015-5-8 13:57:13

顶楼主啦..希望楼主多发精品好帖啦....

a6596069 发表于 2015-9-1 21:25:14

回帖纯属支持楼主,希望楼主多奉献好的作品。

q1071622523 发表于 2015-9-3 11:11:22

撒娇看喇叭那块临急抱佛脚卡拉苏立峰
页: [1]
查看完整版本: 为什么码码注入器调Call能用。VC++写了用不了,游戏崩溃