- UID
- 169543
- 帖子
- 123
- 主題
- 12
- 精華
- 0
- 積分
- 22
- 楓幣
- 422
- 威望
- 21
- 存款
- 0
- 贊助金額
- 0
- 推廣
- 0
- GP
- 27
- 閱讀權限
- 10
- 性別
- 男
- 在線時間
- 14 小時
- 註冊時間
- 2016-11-7
- 最後登入
- 2023-7-25
|
本帖最後由 仁二 於 2022-3-29 22:44 編輯
liyaodong 發表於 2022-3-29 02:40
大佬好久不见,64位更新以后很多地方都不熟悉,想请教一下吸怪call
以前的32位都是push 00 push 00 push 64 ...
rsp+内容查看(进call后rsp-08)
00 08 10 18
[rsp] rcx rdx r8d
20 28 30 38
r9d [rsp+20][rsp+28][rsp+30]
call内的[rsp+28]
是
call前的[rsp+20]
--------------------------------------------
这个是我之前刚刚认识X64做的笔记 但是不全对。。因为call前的20的空间用来记录保护别的暂存器的也有
调用吸怪call有点麻烦 要认真分析一下他有一个的参数了 不能直接丢0好像
虽然我已经调用成功了 但是还没做稳定性测试 我说一下大概调用
依次push 一下需要保护的暂存器
sub rsp,100//这个数值只是个例子 看自己需要申请rsp的空间
mov [rsp+80],00
mov [rsp+78],00
mov [rsp+70],00
mov [rsp+68],00
mov [rsp+60],00
mov [rsp+58],#???? //技能ID
mov [rsp+50],64
mov [rsp+48],00
mov [rsp+40],00
mov eax,[人物y]
mov [rsp+38],eax
mov eax,[人物x]
mov [rsp+30],eax
mov [rsp+28],12//控怪模式
mov [rsp+20],01
lea r9,[xxxx???] //这个可能是自己需要去分析的参数
mov r8d,01
mov edx,07
mov rcx,r14
call Move_Mob //调用吸怪call
add rsp,100//还原rsp保持堆栈平衡
依次pop出来还原
|
|