首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    x64架构下Linux系统函数调用

    x64架构中增加了8个通用寄存器,C语言采用了寄存器来传递参数,如果参数超过。...在x64系统默认有System V AMD64和Microsoft x64两种C语言函数调用约定,System V AMD64实际是System V AMD64 ABI文档的一部分,类UNIX系统多采用...本文主要讨论x64架构下Linux系统的函数调用约定即System V AMD64调用约定。...三、 x64架构下Linux系统函数调用 3.1 如何传递参数 System V AMD64调用约定规定了caller将第1-6个整型参数分别保存到rdi、rsi、rdx、rcx、r8、r9寄存器中,第...之所以要按照16字节对齐是因为x64架构引入了SSE和AVX指令,这些指令要求必须从16的整数倍地址取数,为了兼顾这些指令所以就要求了16字节对齐。

    10810

    编写Windows x64的shellcode

    当然,这里将介绍Windows上x86和x64 shellcode开发之间的差异,包括ASM。...ASM for x64 为了继续,需要理解大会中的多个差异。在这里,我们将讨论与我们将要做的事情相关的x86和x64之间最重要的变化。 请注意,本文仅用于教育目的。...ret - 从函数返回 在Windows x64上编写ASM 在Windows x64上有多种方法可以编写汇编程序。我将使用NASM和Microsoft Visual Studio社区提供的链接器。...这意味着我们将通过一个链表(LIST_ENTRY结构包含LIST_ENTRY *指针,Flink和Blink,x64各占8个字节)。...Shellcode开发很有趣,需要从x86到x64的转换,因为x86将来不会用得太多。 或者,我将在Shellcode Compiler中添加对Windows x64的支持。

    1.5K40
    领券