- 注册时间
- 2011-3-10
- 最后登录
- 1970-1-1
该用户从未签到
|
procedure Key(KeyName:integer);
var
userkeyName:dword;
begin
userkeyName := $4*KeyName;
asm
pushad
mov eax, dword ptr [$8F04D4]
mov eax, dword ptr [eax+$24] //;此处执行完,EAX保存的是人物基地址
mov eax, dword ptr [eax+$8ec] //;
mov eax, dword ptr [eax+$C] //;
mov eax, dword ptr [eax+userkeyName] //;此处我把值放入了eax 不知会不会影响到其他的地方
mov ecx,eax
mov edx,[ecx]
mov eax,[edx+8]
call eax
popad
end;
end;
以上是刚写的本人汇编很菜,一开始使用mov eax, dword ptr [eax+keyName]
delphi编译说不能用变量传递
于是想是不是keyName 这个位置不能进行有变量的运算,再看看上面的
mov eax, dword ptr [$8F04D4]
mov eax, dword ptr [eax+$24]
于是想到预先定义一个变量算好了 在传进去
于是userkeyName := $4*KeyName;
这样编译通过了,由于没有注入,没有测试这样行不;想问下各位大大 $24 这个在delphi里表示什么样的数据类型 就是这个吗 dword? |
|