-
puts 어셈블리 프로그래밍Hack/Pwnable 2015. 10. 6. 03:00
.globl main
main:
push %ebp
mov %esp, %ebp
mov $helloworld, %ebx
call strlen
call puts
leave
ret
puts:
push %ebp
mov %esp, %ebp
mov 0x8(%ebp), %ecx
push %ecx
call strlen
mov 0x8(%ebp), %ecx
mov %eax, %edx
mov %ecx, %esi
add %esi, %edx
movb $0x0a, (%esi)
inc %edx
mov $4, %eax
mov $1, %ebx
mov $helloworld, %ecx
mov $14, %edx
int $0x80
leave
ret
strlen:
push %ebp
mov %esp, %ebp
mov 0x8(%ebp), %eax
mov $0x0, %ecx
call l1
leave
ret
l1:
movb (%eax), %bl
cmpb $0x0, %bl
je .finished
inc %ecx
inc %eax
loop l1
.finished:
mov %ecx, %eax
leave
ret
이상하게도 세그먼트 폴트가나는데 계속해서 수정해봐야겠다
'Hack > Pwnable' 카테고리의 다른 글
Sigreturn Oriented Programming(SROP) (0) 2015.11.24 Improper Null Termination (SSP) (0) 2015.11.20 어셈블리 프로그래밍 (0) 2015.10.05 SSP Leak Prob (0) 2015.09.30 RTL Chaining 문서 (0) 2015.09.27