请大家帮忙把VC++ 的几句汇编代码转成DELPHI 的, 我的可用积分不多,谢谢了!!! ( 积分: 36 )

  • 主题发起人 主题发起人 SuKiDelphi
  • 开始时间 开始时间
S

SuKiDelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
原文如下:

操作函数

游戏基于面向对象思想设计,对对象的操作是通过pObject指针指向的一个函数实现的,分析发现,许多动

作(如攻击怪物、拾取物品等)的操作函数是一致的(0043BC10),通过对该函数的调用关系进行分析写出

该函数的模拟调用函数DoObject如下:(idx是对象的索引)

void DoObject(long idx)
{
unsigned char * pPlayer = (unsigned char *)(*(long *)0x11EaC88)

(*(long *) 0xB0FF58) = idx;
long addr = 0x43BC10;
_asm
{
mov ecx,pPlayer
push 0
push 0x78
push 3
call addr
}
}

有了这个函数,很多事情就好办多了,例如:对怪物DoObject一次是锁定,第二次就可进行攻击,对物体DoObject

一次,即可自动拾取物品等等。。。
 
在delphi里,也是可以直接调用汇编程序的
格式:
procedure DoObject()
asm
mov ecx,pPlayer
。。。。。。
end
 
从楼主贴的程序来看
pPlayer是一个指定字符串的地址,而且地址固定
addr是一个指定函数入口的地址,也是地址固定

整个程序就可以直接通过汇编程序实现,把相应的地址写入寄存器中就可以了
当然,注意一下,idx变量对某个地址赋值了!
 
接受答案了.
 
后退
顶部