x64汇编调用call 堆栈问题
如果程序是.net是不是不能用x64汇编调用call不管怎么写一调用就崩溃之前也尝试调用过go写的程序发现也是一调用call 就崩溃 但c写的项目调用call 就啥事没有不会崩溃
我怀疑是不是这些语言的垃圾回收机制问题
CE的汇编
x64dbg
断点我也下过 RCX,RDX,R8 这三个参数的的值不会变
但是我去call x64的MessageBoxW api就啥事没有
代码很简单就一个按钮点击一下弹出信息框
测试例子
链接:https://pan.baidu.com/s/1xMJqq2XTSKC8QPObGxk1tA?pwd=m6cq
提取码:m6cq 学过x86的汇编,x64不太懂 kenxy 发表于 2023-1-6 10:29
学过x86的汇编,x64不太懂
{:1_926:}
x86也一样崩溃 push两个参数 也一样会崩溃 如果你需要我可以给你生成x86的 确保call内函数过程为 __stdcall 的风格,否则在堆栈恢复现场时候会内存错误 本帖最后由 lushihao 于 2023-1-6 11:34 编辑
PETiger 发表于 2023-1-6 11:07
确保call内函数过程为 __stdcall 的风格,否则在堆栈恢复现场时候会内存错误
x64 似乎默认是 fastcall我看入参rdx,和rcx、上面那几条代码似乎是垃圾回收的附加入参
页:
[1]