-
์ด์ ๋ธ๋ฆฌ ์ฝ๋ ๋ถ์ 4 - example 4 :: ํจ์SECURITY/REVERSING 2020. 7. 15. 15:58
* ์ด ๊ฒ์๊ธ์ AT&T ๋ฌธ๋ฒ์ ๋ฐ๋ผ ์์ฑ๋์์ต๋๋ค.
(AT&T ์ Intel ์ฐจ์ด ์ฐธ๊ณ -
.file "example4.c" .section .rodata .LC0: .string "result : %d\n" .text .globl function .type function, @function function: .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 %edi, -4(%rbp) movl %esi, -8(%rbp) movl -4(%rbp), %eax imull -8(%rbp), %eax movl %eax, %esi movl $.LC0, %edi movl $0, %eax call printf leave .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE0: .size function, .-function .globl main .type main, @function main: .LFB1: .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 $50, -8(%rbp) movl $60, -4(%rbp) movl -4(%rbp), %edx movl -8(%rbp), %eax movl %edx, %esi movl %eax, %edi call function movl $0, %eax leave .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE1: .size main, .-main .ident "GCC: (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4" .section .note.GNU-stack,"",@progbits
์ด๋ฒ์๋ ์๋ก์ด ํจ์ function ์ด ๋ฑ์ฅํ๋ค.
function ์ ๋ด์ฉ์ด ํท๊ฐ๋ ค์ ๋ ๊ฐ์ง๋ฅผ ๋ง๋ค๊ณ ๋น๊ตํด๋ณด์๋ค.
์ฒซ ๋ฒ์งธ๋ a = a*b
#include <stdio.h> int function(int a, int b) { a = a * b; printf("result : %d\n", a); return 0; } int main() { int a = 50, b = 60; function(a, b); return 0; }
a ๊ฐ ์๋ 8(%ebp) ์ ์ ์ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๋ ๋ฒ์งธ๋ printf ์์ a*b
#include <stdio.h> int function(int a, int b) { // int a2 = a, b2 = b; printf("result : %d\n", a*b); return 0; } int main() { int a = 50, b = 60; function(a, b); return 0; }
์ฃผ์ด์ง ์์ ์ฝ๋์ ๋ด์ฉ์ด ๋์จ ๊ฒ์ ๋ณผ ์ ์๋ค.
imull -8(%rbp), %eax
์ด ๋ถ๋ถ์ด ํท๊ฐ๋ฆฐ ๊ฒ์ด์๋๋ฐ,
eax ์ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅ ํ๋ค๋ ๊ฒ์ eax ์คํ์ push ํ๋ ๊ฒ์ด๋ฏ๋ก a ์ ๋์ ํ๋ ๊ฒ ์๋์ ์๊ฒ ๋์๋ค.
'SECURITY > REVERSING' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฆฌ๋ ์ค(Linux) ๊ธฐ์ด - 02 Permission, chmod, ํ์ดํ๋ผ์ธ(|), ๋ฆฌ๋ค์ด๋ ์ (>) (0) 2020.07.16 ์ด์ ๋ธ๋ฆฌ ์ฝ๋ ๋ถ์ 5 - example 5 :: ๋ฐ๋ณต๋ฌธ (0) 2020.07.15 ์ด์ ๋ธ๋ฆฌ ์ฝ๋ ๋ถ์ 3 - example 3 :: ์กฐ๊ฑด๋ฌธ (0) 2020.07.15 ์ด์ ๋ธ๋ฆฌ์ด ๋ถ์ 2 - example 2 (2) 2020.07.14 ์ด์ ๋ธ๋ฆฌ์ด ๋ถ์ 1 - example 1 (0) 2020.07.14