В чем разница между syscall setreuid в C/C++ и asm?
наткнулся на непонятную моему скудному уму проблему: при вызове setreuid(0,0) в asm ловлю (неясную мне) ошибку (скр. 1), при данном системном вызове в проге C++/C тоже возвращается -1, но при запуске с sudo (скр. 4) возвращается 0 (успешно), дизассемблирование файла показыает, что регистры и сискол те же (скр. 2-3), так в чем проблема то тогда, ведь asm файл я тоже от root запускаю?
а по ходу нельзя из elf64 вызывать системные вызовы через int 0x80. Так что либо замени int 0x80 на syscall (и, кстати, _NR_exit для x86_64 -- это 60), либо используй nasm -static -f elf32 и ld -m elf_i386 (и тогда _NR_setreuid будет 70).