Tuuna Computer Science

Hitcon Training LAB 1 본문

Reversing

Hitcon Training LAB 1

GuTTe 2018. 4. 11. 00:21

 Hitcon Training LAB 1  



gdb 사용하기 -> hitcon training lab1을 열면

 sysmagic 바이너리파일과 sysmagic.c파일이 보인다. 




cat sysmagic.c  명령어로 sysmagic.c파일을 뜯어보면

 사진의 C 코드로 구성되어 있다.

코드에서 보다싶이 if문(조건문)에서 password값과 사용자 입력값을 비교하고 있다. 




이것을 gdb sysmagic 명령어로 디버깅해보자!

만약 중요 명령어 부분을 뚜렷이 보고싶다면

 disassemble main(get_flag)대신 pd main(get_flag)를 쳐보자


중요한 부분에 색깔을 덮고 싶다면 ./pd main or get_flag를




get_flag()함수를 어셈블리어형태로 살펴보면 아까 c 코드로 보듯이 if문을 통해 password를 비교하듯

어셈블리어형태의 조건문 cmp(조건분기문)를 볼 수 있다. 

이 cmp값을 통해 참, 거짓을 분별해 조건분기를 한다.

 즉, 틀리면 틀린값을 맞으면 FLAG값을 내놓는다.

이 주소에 브레이크를 걸고 run명령어를 실행한다.

b *get_flag+389  브레이크걸자




그리고 cmp eax edx이니 eax레지스터의 값을 변조하면 FLAG값이 나올 것이다.

set $eax=0x4b885d03




브레이크를건 상태에서 continue(c)를 하면 flag값을 얻을 수 있다.

FLAG : {deburgger_1s_so_p0werful_1n_dyn4mlc_4n4lySis!}




Comments