sundry

CodeEngn Basic RCE L01~L20 (풀이후기)

파이s 2010. 8. 11. 14:35

CodeEngn Basic L01~L20 풀이 후기

challenge 문제 한번 풀기 시작하면 끝을 봐야 되서 잘 안할려고 하는데, (리버싱은 더더욱 잘 못함)
어떻게 하다 보니...20문제 모두 풀게 되었네요. 모두 푸는데 2~3일 정도 소요되었는데(업무시간중 틈틈히.....) 다른분들 푸신거 보니...저는 문제를 빨리 풀고 끝내고 싶은 마음에 야로(?)로 원리 생각 없이 무작정 문제만 푼것 같네요.-_-;;;
아래 내용은 제가 풀었던 방법에서 추가적인 힌트?를 걍 한번 적어봤습니다. (흔적을 좀 남기게요;;)

-> 최종후기 : 문제를 풀고 있는 제 모습을 본 후임이 안랩에서 사람 뽑으니 지원해 보라는...-_-;;;

■ Reverse L01 StartAuthor : abex
문제1) HDD를 CD-Rom으로 인식시키기 위해서는 GetDriveTypeA의 리턴값이 무엇이 되어야 하는가 ?

-> 추가 힌트 : MSDN를 참고 하면 될듯 합니다.

■ Reverse L02 StartAuthor : ArturDents
패스워드로 인증하는 실행파일이 손상되어 실행이 안되는 문제가 생겼다. 패스워드가 무엇인지 분석하시오

-> 추가 힌트 : 저는 손상된 파일을 복구 하지 않고 ollydbg로 아무생각 없이 열고 아무 작업 없이 바로 해결했습니다.

■ Reverse L03 StartAuthor : Blaster99 [DCD]
비주얼베이직에서 스트링 비교함수 이름은?

-> 추가힌트 : 그냥 눈에 보였어요;;

■ Reverse L04 StartAuthor : CodeEngn / Lee Kang-Seok
이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가

-> 추가힌트 : 그냥 눈에 보였어요;;

■ Reverse L05 StartAuthor : Acid Bytes [CFF]
이 프로그램의 등록키는 무엇인가 ?

-> 추가힌트 : 문자열 때문에 살짝 햇갈렸지만..이 역시 그냥 눈에 보였어요;;

■ Reverse L06 StartAuthor : Raz0r
Unpack을 한 후 Serial을 찾으시오. 정답인증은 OEP + Serial

-> 추가 힌트 : Execute till user code 방법을 안다면 금방 풀 수 있더군요

■ Reverse L07 StartAuthor : abex
컴퓨터 C 드라이브의 이름이 CodeEngn 일경우 시리얼이 생성될때 CodeEngn은 "어떤것"으로 변경되는가

-> 추가 힌트 : crackme 바이너리 수정없이 그냥 할 수 있는 방법이 있더군요;;;;

■ Reverse L08 StartAuthor : Rekenmachine
OEP를 구하시오

-> 추가힌트 : 그닥;;;;;;;;;;;;

■ Reverse L09 StartAuthor : abex
StolenByte를 구하시오

-> 추가힌트 : StolenByte 네이버에 검색하면 많이 나오네요 ^^;

■ Reverse L10 StartAuthor : ArturDents
OEP를 구한 후 "등록성공"으로 가는 분기점의 OPCODE를 구하시오. 정답인증은 OEP + OPCODE

-> 추가힌트 : 그닥;;;;;;;;;;;;;;

■ Reverse L11 StartAuthor : abex
OEP를 찾으시오. Ex) 00401000 / Stolenbyte 를 찾으시오. Ex) FF35CA204000E84D000000
정답인증은 OEP+ Stolenbyte

-> 추가힌트 : 위 문제를 푸셨다면 이것도 그닥;;;;;;;;;;

■ Reverse L12 StartAuthor : Basse 2002
Key를 구한 후 입력하게 되면 성공메시지를 볼 수 있다
이때 성공메시지 대신 Key 값이 MessageBox에 출력 되도록 하려면 파일을 HexEdit로 오픈 한 다음
0x???? ~ 0x???? 영역에 Key 값을 overwrite 하면 된다.
문제 : Key값과 + 주소영역을 찾으시오

-> 추가힌트 : 주소영역은 키 값의 길이만!!!을 winhex에서 구하면 되더군요

■ Reverse L13 StartAuthor : Basse 2002
정답은 무엇인가

-> 추가힌트 : .Net Reflector란 아주 훌륭한 프로그램이 있더군요. 첨 알았습니다... 감솨!

■ Reverse L14 StartAuthor : BENGALY
Name이 CodeEngn 일때 Serial을 구하시오
(이 문제는 정답이 여러개 나올 수 있는 문제이며 5개의 숫자로 되어있는 정답을 찾아야함, bruteforce 필요)
Ex) 11111

-> 추가힌트 : bruteforce 없이 쉽게 풀....렸습니다.

■ Reverse L15 StartAuthor : uBc - bRiANbuSY
Name이 CodeEngn일때 Serial을 구하시오

-> 추가힌트 : 14번 풀면 금방 푸실 수 있습니다.

■ Reverse L16 StartAuthor : ReWrit
Name이 CodeEngn일때 Serial을 구하시오

-> 추가힌트 : 15번 풀면 금방 푸실 수 있습니다.

■ Reverse L17 StartAuthor : WarRock
Key 값이 BEDA-2F56-BC4F4368-8A71-870B 일때 Name은 무엇인가
힌트 : Name은 한자리인데.. 알파벳일수도 있고 숫자일수도 있고..
정답인증은 Name의 MD5 해쉬값(대문자)

-> 추가힌트 : 바이너리를 절대 수정하면 안되는줄 알았습니다.(살짝 고민했음) 즉 3글자 이상 받게 되어 있는 놈을 1글자 이상 받게끔 수정하고 나서 입력해 보면 답이 금방 나옵니다.

■ Reverse L18 Start Author : Xsp!d3r
Name이 CodeEngn일때 Serial은 무엇인가

-> 추가힌트 : 16번 풀면 금방 푸실 수 있습니다.

■ Reverse L19 StartAuthor : CodeEngn / Lee Kang-Seok
이 프로그램은 몇 밀리세컨드 후에 종료 되는가 ?

-> 추가힌트 :  전 의외로 쉽게 풀렸습니다. messagebox부터 추적해 들어가면 되더군요

■ Reverse L20 StartAuthor : Cruehead / MiB
이 프로그램은 Key파일을 필요로 하는 프로그램이다.

사용자 삽입 이미지

위 문구가 출력되도록 하려면 crackme3.key 파일안의 데이터는 무엇이 되어야 하는가
Ex) 41424344454647

-> 추가힌트 : 굉장히 해맷습니다...그래서 검색을 좀 이용했습니다(ㅠ_ㅠ..초보의 설움). 약간의 팁은 crackme3.key 에 입력되어지는 값은 헥사값입니다.

문제를 다 풀면 아래와 같은 화면이 나옵니다.


엄밀히 말해 짱은 아니구요 -_-;; (박보영 사진은 이쁘네요)
어찌되었던 끝났네요.
27번째로 문제를 푼것 같은데...아마도 보고서를 내야만 순위에 반영이 되나봅니다.
여하튼...
이제 다른 문제는 안 풀렵니다...
실력도 없지만서도, 푸~욱 빠질까봐서...^^;;