#getpriv.s
#c0d3r: ev1lut10n
#a simple code to check our privilege
#for: freebsd 32 bit

section .rodata
w00t:
  .ascii "w00t we g0t r00t privilege\n"
  blew00t = . - w00t
n0_r00t:
  .ascii "S0rry we're n0t r00t\n"
  blen0_r00t = . - n0_r00t

globl  _start
_start:

pr3p4r3_0pt:
       pushl %ebx
       pushl %esi
       pushl %edi
       pushl %ebp
       jmp utama

get_privilege:
       pushl %ebp
       movl %esp, %ebp
       movl $24,%eax
       pushl %eax
       int $0x80

       cmpb $0,%al
       jz g0tr00t
       jmp n0tr00t
       movl %ebp, %esp
       popl %ebp
       lret

utama:
       pushl %ebp
       movl %esp, %ebp


       call get_privilege

       movl %ebp, %esp
       popl %ebp

g0tr00t:
       pushl %ebp
       movl %esp, %ebp
       pushl $blew00t
       pushl $w00t
       pushl $1
       movl $4,%eax
       pushl %eax
       int $0x80
       movl %ebp, %esp
       popl %ebp
       jmp out

n0tr00t:
       pushl %ebp
       movl %esp, %ebp
       pushl $blen0_r00t
       pushl $n0_r00t
       pushl $1
       movl $4,%eax
       pushl %eax
       int $0x80
       movl %ebp, %esp
       popl %ebp
       jmp out

out:
       movl $1, %eax
       pushl $0
       pushl %eax
       int $0x80