BLOG main image
분류 전체보기 (224)
Reversing (13)
Pwnable (4)
Linux Kernel (3)
Crypto (2)
Wargames (68)
Programming (18)
Write Up (32)
Project (22)
Web (2)
My Life (52)
Memo (3)
etc (2)
발표자료 (1)
40,483 Visitors up to today!
Today 0 hit, Yesterday 13 hit
daisy rss
tistory 티스토리 가입하기!
2015.07.26 22:59


JFF3의 Reversing_Damnida 입니다.

먼저 Exeinfo에 넣어보면


64비트 이미지라고 나옵니다. 한 번 실행시켜 보겠습니다.


그 어떠한 것도 뜨지 않고 시커먼 창에 커서만 깜빡이네요.

딱히 찾아낼 수 있는 것이 없어 보입니다. 바로 IDA로 열어보겠습니다.


main함수 내에 1자형으로 쭈욱 이어져 있습니다. 보기 좋네요.

문자열을 찾아 보면


눈이 가는 문자열이 몇 개 보입니다. 저 main함수를 분석해 보면 안티디버깅도

굉장히 많이 박혀 있구요.


의미 없는 분기문들도 보이구요. 


NOP 떡칠한 곳도 보입니다. 난독화가 되어있거나 바이너리에 이상한 짓을 해 놓은 것 같습니다.


좀 더 보면

이렇게 어떤 값을 출력하는 부분도 볼 수 있고


키를 얻었다고 알려주는 부분도 있습니다. 그 다음 저는 x64 Dbg를 이용해서 디버깅을 했습니다.


Entry Point 입니다. 여기서 조금만 진행하면 


이렇게 main함수로 들어가는 부분을 볼 수 있습니다. 들어가고 나서는 IDA와 코드를 비교하면서 프로그램의 흐름이 아까 보았던 Get_Key :) 이 쪽으로 향하게 해 주면 됩니다. 


안티디버깅들도 우회 하면서 잘 따라가 줍니다.

쭉쭉 진행을 하다 보면 갑자기


여기서 K5y Is : 라는 문자열이 보입니다. 언뜻 보면 키를 출력해 줄 것 같으나 페이크 입니다. 어떤 값을 출력해 주기는 하지만 키가 깨져 있구요. 우리는 아까 봤던 Get_Key :)부분으로 가야 합니다. 순조롭게 진행을 하다 보면


갑자기 :( crashed 크래시가 났답니다. 물론 페이크 입니다. 크래시가 났지만 우리는 꿋꿋이 플래그를 향해 나아가 줍니다.


중간에서 귀엽게 IsDebbugerPresent함수도 한 번 등장해 줍니다. 근데 이것도 페이크 입니다.ㅋㅋㅋㅋㅋㅋ 여기서 좀 더 주의해서 보면은 디버깅 중일때는 정상적으로 나아가고 제로 플래그나 분기문을 수정해 주면 exit()함수로 끝내 버립니다. 

아무것도 건들지 말고 쭉쭉 나아가 주면


드디어 Get_Key :)가 나왔습니다. 여기서는 딱히 하는게 없고 더 나아가서 매우 긴 NOP 더미들을 지나가면


이런 부분들이 보입니다. 여기서 ResumeThread라는 함수를 호출하게 되면


이렇게 프로그램이 크래시가 나면서 플래그를 출력해 줍니다. 사실 이 크래시도 페이크 입니다. 저기서 프로그램 닫기 누르고 정상적으로 디버깅을 또 진행할 수 있더라구요.ㅋㅋㅋㅋ


이제 저 값들을 아스키로 변경해 주시면 


이렇게 완성된 플래그가 나오게 됩니다.


Reversing.kr의 미니 Twist1을 푸는 기분이었습니다.ㅋㅋㅋㅋㅋ

문제의 의도만 파악하면 그렇게 어렵지 않게 풀 수 있었을 것 같은데 생각보다 배점이 높더라구요.. 400점...


이렇게 Damnida의 풀이를 마치겠습니다.


Flag : _jfF_M4dC10wn_:)


'Write Up' 카테고리의 다른 글

정보보호올림피아드2015 본선 Q3  (0) 2015.10.17
정보보호올림피아드2015 본선 Q2  (2) 2015.10.17
Layer7 CTF Write-UP  (2) 2015.09.01
YISF 2015 Write-Up 예선  (0) 2015.08.12
[Just For Fun3] Reversing_AVReversing  (0) 2015.07.26
[Just For Fun3] Reversing_Damnida  (0) 2015.07.26
Name
Password
Homepage
Secret
Easy Crack - 100pt
[보호되어 있는 글입니다. 비밀번호를 입력해 주세요.]

Secret Entry! Enter Password