Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Безопасность (https://forum.antichat.xyz/forumdisplay.php?f=41)
-   -   Linux Kernel IA32 Syscall Emulation (https://forum.antichat.xyz/showthread.php?t=117802)

b10NT 26.04.2009 13:46

Linux Kernel IA32 Syscall Emulation
 
Ай нид хелп - есть хост, ядро 2.4.30 #2 SMP , выбрал вот этот сплоит http://www.securityfocus.com/data/vulnerabilities/exploits/linux-ia32-emul-exp.c , но не могу скомпилить - сначало ругалось на андефайн ORIG_RAX, поставил его 120, теперь выдает следующее:
Код:

Assembler message:
****.s:12 Error: suffix or operand invalid for 'movq'
****.s:120 Error: suffix or operand invalid for 'movq'

я так понимаю из-за этой строчки:
Код:

        __asm__("\n"
        "\tmovq $0x101, %rax\n"
        "\tint $0x80\n");

Что делать и кто виноват?

razb 26.04.2009 14:54

У самого очень часто такие траблы появляются при сборке чего либо под х86_64, приходится подкручивать.
По сабжу, напиши просто mov вместо movq

b10NT 03.05.2009 13:05

Все равно не получаеться...
Код:

/tmp/ccMRs3sA.s: Assembler messages:
/tmp/ccMRs3sA.s:129: Error: bad register name `%rax'

Вообще команда "\tmovq $0x101, %rax\n", должно быть наоборот, в регистр засовываеться число, но я попробывал так тоже не компилиться..
Какой регистр должен быть на месте %rax%?

winterfrost 17.05.2009 09:47

не должна быть на оборот, это синтаксис такой AT&T. А rax это вроде-как аналог eax в 64-битной системе. Похоже что ты на 32-битной системе компилируеш, отсюда и ошибки.

razb 17.05.2009 13:45

если собираешь под 32битную архитектуру то %rax замени на %eax


Время: 12:45