정보 보안/시스템 보안

시스템 보안 Day 10 (2)

0_0; 2019. 9. 30. 00:46

 

▣ 어셈 블리어 및 gdb 디버그 확인

 


  ⓐ 'assem1.c' 작성

  [level1@ftz level1]$ cd tmp
  [level1@ftz tmp]$ vi assem1.c

 


  [level1@ftz tmp]$ gcc -S -o assem1.a assem1.c
  [level1@ftz tmp]$ file assem1.a
  [level1@ftz tmp]$ file assem1.c


  [level1@ftz tmp]$ cat assem1.a

 


  [level1@ftz tmp]$ gcc -o assem1 assem1.c
  [level1@ftz tmp]$ file assem1                                 →  ELF : Linux 실행 파일 


  [level1@ftz tmp]$ gdb -q assem1
  (gdb) disas main
  (gdb) disas function

 


   
ⓑ 'assem2.c' 작성  

  [level1@ftz tmp]$ vi assem2.c

 


  [level1@ftz tmp]$ gcc -o assem2 assem2.c
  [level1@ftz tmp]$ gdb -q assem2
  (gdb) disas main

 



ⓒ 'assem3.c' 작성

  [level1@ftz tmp]$ vi assem3.c

 


  [level1@ftz tmp]$ gcc -o assem3 assem3.c
  [level1@ftz tmp]$ gdb -q assem3
  (gdb) disas main

 


ⓓ 'assem4.c' 작성 

  [level1@ftz tmp]$ vi assem4.c

 

 
  [level1@ftz tmp]$ gcc -o assem4 assem4.c
  [level1@ftz tmp]$ gdb -q assem4
  (gdb) disas main
  (gdb) disas sub

 

 

  (gdb) b *main                            → Break Point 설정 
  (gdb) run

  (gdb) disas main
  (gdb) x/12x $esp                      → x : 16진수 / 12x: 12개 추출 / $esp : esp 레지스터 
  (gdb) info reg                            → 레지스터 확인
  (gdb) ni                                        → 한 단계씩 진행 / 함수 실행시 (gdb) si 

 

 

ⓔ 'assem5.c' 작성 

 

  [level1@ftz tmp]$ vi assem5.c

 

 

  [level1@ftz tmp]$ gcc -o assem5 assem5.c

  [level1@ftz tmp]$ gdb -q assem5

  (gdb) disas main

 

  (gdb) x/s 0x8048408

   ─

     0x8048408:     "a:%d"

   ─