Halo World

[크랙미] Simples 크랙미 14번 풀이 본문

보안/REVERSE ENGINEERING

[크랙미] Simples 크랙미 14번 풀이

_Yeony 2016. 5. 8. 01:05

심플즈 크랙미 14번 문제는

 

Key 값이 154C-6505-D2ADD0F3-A223-2870 일때 Name은 무엇인가
힌트 : Name은 두자리인데.. 알파벳일수도 있고 숫자일수도 있고..

정답인증은 Name의 MD5 해쉬값(대문자)

 

이다. 지금까지는 주로 키 값을 찾는 문제였다면 이번 문제는 키에 맞는 Name 값을 찾는 문제이다.

지금까지 포스팅하며 풀었던 크랙미 문제 중에서 가장 어려웠던 것 같다..

 

첫 실행시 화면이다. 예시로 위와 같이 입력해 보았다.

키 값이 틀려 성공메시지가 뜨지 않는다.

 F8로 실행시켜서 성공메시지가 있는 곳으로 가보았다.

위쪽에 하나씩 브레이트 포인트를 걸며 실행시켜보면

위 사진의 브레이크 포인트 부분을 지나면 키 값이 생성되는 것을 알 수 있다.

 내가 입력한 haloworld에 대한 키 값은 위와 같다.

 F7로 함수 내부로 들어가서 좀더 자세히 살펴보다 보면 위와 같은 부분이 나오는데,

이 부분이 키 값중, 가장 처음 부분 즉 제시된 키 값중 154C 값을 생성하는 부분이라는 것을 알 수 있다.

어셈블리어로 보면 복잡하므로 위 부분을 C코드로 바꾸어 실행해보면 Name 값을 구할 수 있다.

 

위와 같이 C코드를 작성한다.

알파벳을 경우에 수에 맞게 하나씩 대입하여 키 값을 생성하고, 생성된 키 값과 154C 값을 비교해 보는 것이다.

이렇게 작성하고 실행시켜보면

 

Name 값은 CT가 나온다!