-
์ด์ ๋ธ๋ฆฌ์ด ๋ถ์ 2 - example 2SECURITY/REVERSING 2020. 7. 14. 18:53
* ์ด ๊ฒ์๊ธ์ AT&T ๋ฌธ๋ฒ์ ๋ฐ๋ผ ์์ฑ๋์์ต๋๋ค.
(AT&T ์ Intel ์ฐจ์ด ์ฐธ๊ณ -
.file "example2.c" .section .rodata .LC0: .string "result : %d \n" .text .globl main .type main, @function main: .LFB0: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 subq $16, %rsp movl $10, -12(%rbp) movl $20, -8(%rbp) movl -8(%rbp), %eax movl -12(%rbp), %edx addl %edx, %eax movl %eax, -4(%rbp) movl -8(%rbp), %eax movl -12(%rbp), %edx addl %edx, %eax movl %eax, %esi movl $.LC0, %edi movl $0, %eax call printf movl $0, %eax leave .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE0: .size main, .-main .ident "GCC: (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4" .section .note.GNU-stack,"",@progbits
subq $16, %rsp : ์คํ ํฌ์ธํฐ rsp ๋ฅผ 16 ๋งํผ ๊ฐ์ํ๋ ๊ฒ.
์คํ ๊ณต๊ฐ์ 16 byte ๋งํผ ํ๋ณดํ๊ฒ ๋๋ค.
Allocate 16 bytes for stack frame
movl $10, -12(%rbp) : 10์ rbp ๋ ์ง์คํฐ์ -12 ๋งํผ์ ์ฃผ์์ ์ ์ฅ(offset -12 in the stack to edx)
: ์ซ์ 10 ์ rbp ๋ก๋ถํฐ 12 byte ๊ณต๊ฐ์ ํ ๋นํ ํ, ๊ทธ ์๋ฆฌ์ ๋ฃ์ ๊ฒ
์ฆ, 12 byte ๋งํผ์ ์์ ๊ณต๊ฐ์ ํ ๋นํ์ฌ ์ซ์ 10์ ์คํ์ ๋ฃ๋ ๊ฒ์ด๋ค.
- ๋ค์ ์ฐ์ฐ์ ์ํ ์ค๋น ์์
movl $20, -8(%rbp) : 20์ rbp ๋ ์ง์คํฐ์ -8 ๋งํผ์ ์ฃผ์์ ์ ์ฅ
movl -8(%rbp), %eax : eax ๋ ์ง์คํฐ์ 20 ์ ์ฅrbp ๋ก๋ถํฐ 8 byte ์๋์ ๊ณต๊ฐ์ ์ ์ฅ๋์ด ์๋ ๊ฐ์ eax ๋ ์ง์คํฐ์ ์ ์ฅ
movl -12(%rbp), %edx : edx ๋ ์ง์คํฐ์ (-12(%rbp) ์ ์๋) 10 ์ ์ฅ
addl %edx, %eax : 10 + 20
movl %eax, -4(%rbp) : eax (30) ์ -4(%rbp) ์ ์ ์ฅ
movl -8(%rbp), %eax : 20 ์ eax ์ ์ ์ฅ
movl -12(%rbp), %edx : edx ์ 10 ์ ์ฅ
addl %edx, %eax : 10 + 20movl %eax, %esi : esi ์ eax ๊ฐ (30) ์ ์ฅ
c์ธ์ด๋ก ํด์ํ ๊ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
#include <stdio.h> int main(void){ int a = 10; int b = 20; int c = a + b; printf("result : %d \n", a + b); return 0; }
'SECURITY > REVERSING' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ด์ ๋ธ๋ฆฌ ์ฝ๋ ๋ถ์ 4 - example 4 :: ํจ์ (0) 2020.07.15 ์ด์ ๋ธ๋ฆฌ ์ฝ๋ ๋ถ์ 3 - example 3 :: ์กฐ๊ฑด๋ฌธ (0) 2020.07.15 ์ด์ ๋ธ๋ฆฌ์ด ๋ถ์ 1 - example 1 (0) 2020.07.14 ๋ฆฌ๋ ์ค(Linux) ๊ธฐ์ด - 01 ๋ช ๋ น์ด (0) 2020.07.14 REVERSING ์์ํ๊ธฐ - VMware & Ubuntu Linux 32 bit and 64 bit ์ค์นํ๊ธฐ (1) 2020.07.09