push 0 //tid
push 0 //flag
sub rsp, 20
mov r9,0 //parameter
mov rcx,0 //security attribute
mov rdx, 0 //stacksize
mov r8,threadmem //address
call kernel32.createthread
我以这种方式调用createthread。
但是,如果我在参数中输入任何地址,我的代码将无法正常工作。 只是使我的PC滞后,什么也没有发生,好像创建了线程,但是我的代码没有执行。 但是,如果我不放置参数并将其自身保留为0,则它可以工作。 谁能帮我吗?
答案 0 :(得分:-1)
您并不严格遵循x64调用约定。 Push和sub rsp可能仅出现在序言中。
Windows会反汇编您的代码,因此无法访问的代码仍会挂起。我不得不完全放弃。