晚风CE lua调用汇编函数规则

发布于 2021-05-10  14 次阅读


asmStart(0)--0为游戏地址  0-10000为创建内存地址大小  10000+为直接引用地址
--asmStart(0,'rcx,rdx,rbx') -----'rcx,rdx,rbx'为入栈  内存汇编不需要第二个参数
--远程汇编默认 push rbx
asmAdd('mov rax,149BEE910')--人物基址
asmAdd('mov rax,[rax]')
local char=asmGet('rax')--获取寄存器rax的值  存到char(返回值)里

asmAdd('mov rcx,rax')
asmAdd('mov rdx,'..tostring(1))--  = mov rdx,1
asmAdd('mov r8,rdx')
asmAdd('mov r9,rdx')
asmAdd('mov qword ptr [rsp+20],FFFFFFFFFFFFFFFF')
local r8addr=asmGet('r8')--获取寄存器r8的值  存到r8addr(返回值)里

asmAdd('mov rax,144C705B0')--透明call
asmAdd('call rax')
asmEnd(true)--false为内存汇编  true为createthread远程汇编
--asmEnd(true,'rbx,rdx,rcx') -----'rbx,rdx,rcx'为出栈  内存汇编不需要第二个参数
--远程汇编默认 pop rbx
print(toHex(readQword(char)))--取char的值 (即为rax的值)
print(toHex(readQword(r8addr)))--取r8addr的值 (即为r8的值)

人間になるために生まれて、私はとても悲しいです