Приветствую вас, SO.Ошибка сборки встроенной сборки, попытки компиляции gcc-gc
У меня есть код, который я пытался скомпилировать с использованием gcc, но мои попытки были сорваны. Может ли кто-нибудь более разбираться в этом вопросе, возможно, что-то мне не хватает.
Я компилирую этот код на Linux Kitchen 2.6.28-15-generiC# 49-Ubuntu SMP Вт Авг 18 19:25:34 UTC 2009 x86_64 GNU/Linux.
int
main(void)
{
__asm__(
"xorq %rdx,%rdx"
"movq $0x68732f6e69622fff, %rdx"
"shr $0x8, %rbx"
"push %rbx"
"movq %rsp,%rdi"
"xorq %rax,%rax"
"pushq %rax"
"pushq %rdi"
"movq %rsp,%rsi"
"mov $0x3b, %al"
"syscall"
"pushq $0x1"
"pop %rdi"
"pushq $0x3c"
"pop %rax"
"syscall"
);
return 0;
}
ошибка, которая возвращает:
$ gcc -o shellcode shellcode.c
shellcode.c: Assembler messages:
shellcode.c:4: Error: bad register name `%rdxmovq $0x68732f6e69622fff'
Спасибо всем.
вы можете также встраивать сборку (если вам это проще). См. Http://stackoverflow.com/questions/3139772/check-if-carry-flag-is-set/6399855#6399855. – jww