読者です 読者をやめる 読者になる 読者になる

cookies.txt      .scr

ただのテキストファイルのようだ

syscalls

linux 備忘録
    • Linux前提で話を進めます --
    • 完全に自分の環境の話ですLinux3.9.7 --

まあ、自分で全部書いたことなんて実はないんだけど、
いろんなところからshellcodeをダウンロードしてきます。//今なら書ける気がする
そうすると必ずint $0x80ってのがあるわけです。x86だと。
これがsyscallなわけですが、eaxにその番号をいれますよね。気になったので。

man syscallより

arch/ABI instruction syscall # retval Notes
arm/OABI swi NR - a1 NR is syscall #
arm/EABI swi 0x0 r7 r1 -
blackfin excpt 0x0 P0 R0 -
i386 int $0x80 eax eax -
ia64 break 0x100000 r15 r10/r8 -
parisc ble 0x100(%sr2, %r0) r20 r28 -
sparc/32 t 0x10 g1 o0 -
sparc/64 t 0x6d g1 o0 -
x86_64 syscall rax rax -


で、asm/unistd.hから

  1. i386ならasm/unistd_32.hの通り
  2. defined(ILP32)ならasm/unistd_x32.hの通り、但し__X32_SYSCALL_BIT==0x40000000
  3. else asm/unistd_64.hの通りとなる。(x86_64かな?)

ちなみになじみ深いexecveは,

arch dec hex
32 11 B
x32 1073742344 40000208
64 59 3B

となる。


以上、メモ。