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

编写Windows x64的shellcode

之前的博客文章一样,我们将创建一个简单的shellcode,使用user32.dll导出的SwapMouseButton函数交换鼠标按钮,并使用kernel32.dll导出的ExitProcess函数...ASM for x64 为了继续,需要理解大会中的多个差异。在这里,我们将讨论与我们将要做的事情相关的x86和x64之间最重要的变化。 请注意,本文仅用于教育目的。...x86类似,返回值将在RAX寄存器中可用。 函数调用者将为寄存器中使用的参数(称为“阴影空间”或“家庭空间”)分配堆栈空间。...为此,一些函数可能在堆栈上分配40个(0x28)字节(4个寄存器为32个字节,8个字节用于将堆栈先前的用法对齐 - 堆栈上返回的Rip地址)。你可以在这里找到更多细节。...Shellcode开发很有趣,需要从x86到x64的转换,因为x86将来不会用得太多。 或者,我将在Shellcode Compiler中添加对Windows x64的支持。

1.3K40

X64汇编之指令格式解析

总要有人来完成剩下的工作吧,这里我就把研究一天的x64汇编指令格式共享给大家。 一.首先打开Inter手册,看到x64汇编指令格式有多大改动,不多说,看图。 ?...很明显,比x86多出了一点东西,Legacy Prefix 按功能组别,我将这个指令序列分为 4 个部分: Prefix Opcode ModRM SIB Displacement... Immediate 其中,只有 opcode 是必须的,其它组成部分都可选!...REX prefix 仅存在于 x64 的 64-bit 模式中,在 legacy x86 模式下,REX prefix 是无效的,但是在 x64 的 64-bit 模式下 Legacy prefix...在非 64 位模式下,它们是 inc dec 指令,也就是说这些指令在 64 位模式下被重定义为 REX prefix 关于Prefix的介绍真的是少之又少,不过我在x86/x64 指令编码内幕(

3.9K30
领券