일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- AjouUniv #Whois #정보보안교육 #Pwnable
- ftz
- N0Named
- AjouUniv #Whois #정보보안교육
- python
- 스케줄링
- systemhacking
- Variable Partition
- 코딩도장
- Whois #AjouUniv #정보보안교육 #Pwnable
- N0NamedWargame #mandu-mandu #forensics #길에서주어온만두
- Whois #정보보안교육 #Ajou
- 사이버보안학과
- Whois #정보보안교육 #webhacking.kr
- 운영체제
- N0NamedWargame #mandu-mandu #forensics #left_side_B
- HackCTF
- AjouUniv #Whois #Reversing
- hackerschool
- webhacking
- AjouUniv #SuniNatas #Web
- N0NamedWargame #AjouUniv #mandu-mandu #forensics
- 아주대학교 #Whois #정보보안교육 #4주차
- Allocation Starategy
- Whois #정보보안교육 #AjouUniv #Pwnable
- Dreamhack
- Memory Virtualization
- Pwnable
- SuNiNaTaS #mandu-mandu #AjouUniv #forensics
- 아주대학교
- Today
- Total
chipkkang9's story
[Whois 정보보안교육] RootMe PE x86 - 0 protection 풀이 본문
준비물
x32dbg.exe
x64dbg
Built on open-source libraries x64dbg uses Qt, TitanEngine, Zydis, Yara, Scylla, Jansson, lz4, XEDParse, asmjit and snowman.
x64dbg.com
문제소개
문제풀이
정보보안교육 5주차 첫 번째 과제 문제는 root-me라는 사이트에 있는
PE x86 - 0 protection 이라는 문제이다.
문제 파일을 다운받고 x32dbg 디버거에 넣어 실행시키면
문제소개와 같은 화면이 나오게 된다.
프로그램을 실행시키고 디버거에서 F9를 통해서 실행시키다 보면
3~4번 동작 후에 자동으로 종료될 것이다.
딱히 할 수 있는 것은 아무것도 없어 보였다.
이럴 때, 찾아야 하는 것이 해당 프로그램을 제작할 때 작성했던 내용
즉, 코드에 존재하는 메인 함수를 찾아야 한다.
어셈블리 마당에서 메인 함수 찾는 법!
(dreamhack 참고, hello-world.exe 기준)
1. 정해진 패턴
일반적으로 함수는 시작할때 어셈블리언어로
push ebp
mov ebp esp
와 같은 프롤로그로 시작하고,
leave
ret
과 같은 에필로그로 끝이나기 때문에
이와 같은 패턴을 찾아주면 함수를 찾을 수 있다.
2. 문자열 검색
말 그대로 문자열을 검색하는 방법이다.
해당 아이콘(A_2)을 클릭해주고,
문자열을 읽어내려가면서 사용자가 직접 작성했을 법한 문자열을 발견한 후,
더블클릭하면 해당 문자열이 변환된 어셈블리값이 속한 곳이 메인함수일 것이다.
3. 임포트(import)한 함수 찾기
임포트한 함수를 찾는 방법은 해당 휴대전화 모양 아이콘을 클릭해주고,
원하는 함수를 호출하는 줄을 읽어내려가며 찾은 후,
더블클릭하면 메인함수로 이동하는 원리이다.
이 문제에서는 2. 문자열 검색의 방법을 이용해서 메인함수를 찾았다.
딱 봐도 수상한 냄새가 나는 문자열인 것이
프로그램에서 자체적으로 생성한 문자열은 아닐 것이다.
문자열을 더블클릭하여 메인함수로 이동하자.
메인함수로 이동한 결과, 위와 같은 화면이 나왔다.
함수의 프롤로그와 그에 이어지는 분기문들이 연속해서 등장하였다.
나름대로의 해석 결과는,
SPaCIoS
라는 문자열이 만족되어야만, Gratz man :)이라고 뜨는 것 같아보인다.
예측이 맞았다!
Root-Me 사이트에 접속해 해당 문제에 키값을 입력한 후,
정답임을 확인하는 데에 성공했다.
출처
해커들의 놀이터, Dreamhack
해킹과 보안에 대한 공부를 하고 싶은 학생, 안전한 코드를 작성하고 싶은 개발자, 보안 지식과 실력을 업그레이드 시키고 싶은 보안 전문가까지 함께 공부하고 연습하며 지식을 나누고 실력 향
dreamhack.io
'CTF > Reversing' 카테고리의 다른 글
[Reversing.kr] Easy Crack 문제 write-up (0) | 2022.02.07 |
---|---|
[Whois 정보보안교육] EasyReverseMe 문제풀이 (0) | 2021.11.08 |