Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- packet flow
- REDIS
- 취약점
- epoll_wait
- vtable
- .net core 7
- Compiler
- architecture
- ioctl
- rfc5508
- .nret core 배포
- 풀이
- iptables
- ncurses
- C언어
- level trigger
- mvwin
- wnourefresh
- cbpf
- Docker
- 어셈블리어
- epoll
- BOF
- doupdate
- DOCKER-USER
- NAPT
- wrefresh
- LOB
- edge trigger
- packet filter
Archives
- Today
- Total
Tuuna Computer Science
Hitcon Training LAB 1 본문
Hitcon Training LAB 1
gdb 사용하기 -> hitcon training lab1을 열면
sysmagic 바이너리파일과 sysmagic.c파일이 보인다.
sysmagic 바이너리파일과 sysmagic.c파일이 보인다.
사진의 C 코드로 구성되어 있다.
코드에서 보다싶이 if문(조건문)에서 password값과 사용자 입력값을 비교하고 있다.
이것을 gdb sysmagic 명령어로 디버깅해보자!
만약 중요 명령어 부분을 뚜렷이 보고싶다면
disassemble main(get_flag)대신 pd main(get_flag)를 쳐보자
disassemble main(get_flag)대신 pd main(get_flag)를 쳐보자
중요한 부분에 색깔을 덮고 싶다면 ./pd main or get_flag를
get_flag()함수를 어셈블리어형태로 살펴보면 아까 c 코드로 보듯이 if문을 통해 password를 비교하듯이
어셈블리어형태의 조건문 cmp(조건분기문)를 볼 수 있다.
어셈블리어형태의 조건문 cmp(조건분기문)를 볼 수 있다.
이 cmp값을 통해 참, 거짓을 분별해 조건분기를 한다.
즉, 틀리면 틀린값을 맞으면 FLAG값을 내놓는다.
즉, 틀리면 틀린값을 맞으면 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!}
'Reversing' 카테고리의 다른 글
[ UPack의 PE 헤더 분석 ] (0) | 2018.06.12 |
---|---|
plt와 got 개념알기 feat. static or dynamic(Linking) (0) | 2018.05.09 |
[Reversing.kr] Easy_ELF 비밀번호 찾기 (리버싱) (0) | 2018.04.15 |
[Reversing.kr] Easy_Crackme! 비밀번호찾기(find password) (0) | 2018.04.12 |
abex ' 2nd crackme:1 (시리얼 값 찾기) (0) | 2018.04.11 |
Comments