일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- System
- 리버싱
- TCP
- 시스템
- hacking
- 시스템해킹
- 웹해킹
- 모의해킹
- 비박스
- 소프트웨어
- 웹
- 네트워크보안
- Webhaking
- network
- 알고리즘
- bee-box
- 해킹
- 소프트웨어보안
- WarGame
- 순서도
- ftz
- webhacking
- XSS
- reversing
- Web
- 워게임
- 드림핵
- 네트워크
- CodeEngn
- dreamhack
- Today
- Total
목록CodeEngn (6)
Without a Break

실행 파일을 실행하면 위와 같이 뜬다. 잘못된 비밀번호 입력 시, "Bad Luck! Try again!" 문구가 뜨게 된다. 디버거로 실행 파일이 열리지 않아 peid로 패킹되었는지 확인해봤다. 13.exe 파일은 .NET으로 패킹되어 있었다. .NET으로 패킹된 파일을 열어보기 위해 dotpeek을 설치해줬다. https://www.jetbrains.com/decompiler/ dotPeek: Free .NET Decompiler & Assembly Browser by JetBrains dotPeek is a free tool based on ReSharper. It can reliably decompile any .NET assembly into C# or IL code. www.jetbrains...

OEP는 Original Entry Point로, 패킹된 실제 파일의 시작 부분이다. 실행 파일을 upx -d 06.exe 명령으로 언패킹 해준다. 디버거로 실행 파일을 열면 OEP가 00401360이라는 것을 알 수 있다. 파일을 실행하면 위와 같이 시리얼 넘버를 입력하는 창이 뜨고, 오답 입력 시 "Wrong serial!!!"이라는 팝업이 뜨는 것을 알 수 있다. 문자열만 볼 수 있는 곳을 가면, Good Job!위에 시리얼 넘버를 찾을 수 있다. 코드엔진으로 돌아와 OEP+Serial 넘버를 입력하면 성공이다.

peid로 05.exe 파일을 살펴보면 패킹되어 있는 것을 알 수 있다. 문제 파일을 upx가 있는 위치로 옮긴 후, upx -d 파일명.확장자로 언패킹 해준다. peid로 다시 확인하면 패킹이 잘 된 것을 확인할 수 있다. 디버거로 실행 파일을 열어주고, F9로 파일을 실행하면 위와 같은 화면이 뜬다. Register now ! 를 누르면 다시 시도하라는 팝업창이 뜬다. text string을 확인해보면 "CrackMe cracked successfully"라는 성공 문구 위에 답을 찾을 수 있다.

문제 파일을 실행하면 cmd창이 함께 실행된다. F8로 계속 진행하다보면 00408454을 진행했을 때 cmd창에 "디버깅 당함"이라는 문구가 출력된다. F7로 함수 안으로 들어가 살펴보면 답을 찾을 수 있다.

스트링 비교함수는 strcmp이다. 문제 파일을 디버거로 연 뒤, 다음과 같이 모듈 전체를 볼 수 있는 곳으로 들어가서 strcmp를 찾는다. 다음과 같이 답을 찾을 수 있다. HxD로도 strcmp를 찾다보면 정답을 찾을 수 있다.